ARM GAS /tmp/ccywxtmH.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f3xx_hal_spi.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c" 20 .section .text.SPI_WaitFlagStateUntilTimeout,"ax",%progbits 21 .align 1 22 .syntax unified 23 .thumb 24 .thumb_func 26 SPI_WaitFlagStateUntilTimeout: 27 .LVL0: 28 .LFB177: 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @file stm32f3xx_hal_spi.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * functionalities of the Serial Peripheral Interface (SPI) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * + IO operation functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * + Peripheral Control functions 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * + Peripheral State functions 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### How to use this driver ##### 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The SPI HAL driver can be used as follows: 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Declare a SPI_HandleTypeDef handle structure, for example: 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef hspi; 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#)Initialize the SPI low level resources by implementing the HAL_SPI_MspInit() API: 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Enable the SPIx interface clock 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) SPI pins configuration 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the clock for the SPI GPIOs 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure these SPI pins as alternate function push-pull 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) NVIC configuration if you need to use interrupt process 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the SPIx interrupt priority 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the NVIC SPI IRQ handle ARM GAS /tmp/ccywxtmH.s page 2 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) DMA Configuration if you need to use DMA process 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive Stream 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the DMAx clock 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the DMA handle parameters 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the DMA Tx or Rx Stream/Channel 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Associate the initialized hdma_tx(or _rx) handle to the hspi DMA Tx or Rx hand 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Program the Mode, BidirectionalMode , Data size, Baudrate Prescaler, NSS 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** management, Clock polarity and phase, FirstBit and CRC configuration in the hspi Init str 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Initialize the SPI registers by calling the HAL_SPI_Init() API: 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) This API configures also the low level Hardware GPIO, CLOCK, CORTEX...etc) 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** by calling the customized HAL_SPI_MspInit() API. 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Circular mode restriction: 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The DMA circular mode cannot be used when the SPI is configured in these modes: 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Master 2Lines RxOnly 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Master 1Line Rx 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The CRC feature is not managed when the DMA circular mode is enabled 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) When the SPI DMA Pause/Stop features are used, we must use the following APIs 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_DMAPause()/ HAL_SPI_DMAStop() only under the SPI callbacks 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Master Receive mode restriction: 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) In Master unidirectional receive-only mode (MSTR =1, BIDIMODE=0, RXONLY=1) or 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** bidirectional receive mode (MSTR=1, BIDIMODE=1, BIDIOE=0), to ensure that the SPI 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** does not initiate a new transfer the following procedure has to be respected: 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) HAL_SPI_DeInit() 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) HAL_SPI_Init() 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Callback registration: 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The compilation flag USE_HAL_SPI_REGISTER_CALLBACKS when set to 1U 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** allows the user to configure dynamically the driver callbacks. 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Use Functions HAL_SPI_RegisterCallback() to register an interrupt callback. 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Function HAL_SPI_RegisterCallback() allows to register following callbacks: 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxCpltCallback : SPI Tx Completed callback 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxCpltCallback : SPI Rx Completed callback 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxCpltCallback : SPI TxRx Completed callback 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxHalfCpltCallback : SPI Tx Half Completed callback 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxHalfCpltCallback : SPI Rx Half Completed callback 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) ErrorCallback : SPI Error callback 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) AbortCpltCallback : SPI Abort callback 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspInitCallback : SPI Msp Init callback 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspDeInitCallback : SPI Msp DeInit callback 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and a pointer to the user callback function. 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Use function HAL_SPI_UnRegisterCallback to reset a callback to the default 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** weak function. 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_UnRegisterCallback takes as parameters the HAL peripheral handle, 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the Callback ID. 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This function allows to reset following callbacks: 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxCpltCallback : SPI Tx Completed callback ARM GAS /tmp/ccywxtmH.s page 3 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxCpltCallback : SPI Rx Completed callback 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxCpltCallback : SPI TxRx Completed callback 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxHalfCpltCallback : SPI Tx Half Completed callback 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxHalfCpltCallback : SPI Rx Half Completed callback 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) ErrorCallback : SPI Error callback 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) AbortCpltCallback : SPI Abort callback 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspInitCallback : SPI Msp Init callback 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspDeInitCallback : SPI Msp DeInit callback 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** By default, after the HAL_SPI_Init() and when the state is HAL_SPI_STATE_RESET 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** all callbacks are set to the corresponding weak functions: 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** examples HAL_SPI_MasterTxCpltCallback(), HAL_SPI_MasterRxCpltCallback(). 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Exception done for MspInit and MspDeInit functions that are 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** reset to the legacy weak functions in the HAL_SPI_Init()/ HAL_SPI_DeInit() only when 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** these callbacks are null (not registered beforehand). 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** If MspInit or MspDeInit are not null, the HAL_SPI_Init()/ HAL_SPI_DeInit() 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Callbacks can be registered/unregistered in HAL_SPI_STATE_READY state only. 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** in HAL_SPI_STATE_READY or HAL_SPI_STATE_RESET state, 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** using HAL_SPI_RegisterCallback() before calling HAL_SPI_DeInit() 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** or HAL_SPI_Init() function. 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** When the compilation define USE_HAL_PPP_REGISTER_CALLBACKS is set to 0 or 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** not defined, the callback registering feature is not available 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and weak (surcharged) callbacks are used. 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Using the HAL it is not possible to reach all supported SPI frequency with the different SPI 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the following table resume the max SPI frequency reached with data size 8bits/16bits, 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** according to frequency of the APBx Peripheral Clock (fPCLK) used by the SPI instance. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Additional table : 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** DataSize = SPI_DATASIZE_8BIT: 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | Process | Transfer mode |---------------------|----------------------|------------------- 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | Master | Slave | Master | Slave | Master | Slave 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========================================================================================== 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Polling | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | / | Interrupt | Fpclk/4 | Fpclk/16 | NA | NA | NA | NA 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R |----------------|----------|----------|-----------|----------|-----------|------- 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/4 | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/ 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- ARM GAS /tmp/ccywxtmH.s page 4 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R | Interrupt | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/8 | Fpclk/ 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/4 | Fpclk/2 | Fpclk/2 | Fpclk/16 | Fpclk/2 | Fpclk/ 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/8 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/16 | Fpclk/ 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** DataSize = SPI_DATASIZE_16BIT: 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | Process | Transfer mode |---------------------|----------------------|------------------- 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | Master | Slave | Master | Slave | Master | Slave 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========================================================================================== 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Polling | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | / | Interrupt | Fpclk/4 | Fpclk/16 | NA | NA | NA | NA 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R |----------------|----------|----------|-----------|----------|-----------|------- 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/4 | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/ 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R | Interrupt | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/8 | Fpclk/ 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/4 | Fpclk/2 | Fpclk/2 | Fpclk/16 | Fpclk/2 | Fpclk/ 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/8 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/16 | Fpclk/ 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @note The max SPI frequency depend on SPI data size (4bits, 5bits,..., 8bits,...15bits, 16bi 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI mode(2 Lines fullduplex, 2 lines RxOnly, 1 line TX/RX) and Process mode (Polling, 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @note 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) TX/RX processes are HAL_SPI_TransmitReceive(), HAL_SPI_TransmitReceive_IT() and HAL 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) RX processes are HAL_SPI_Receive(), HAL_SPI_Receive_IT() and HAL_SPI_Receive_DMA() 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) TX processes are HAL_SPI_Transmit(), HAL_SPI_Transmit_IT() and HAL_SPI_Transmit_DMA 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ****************************************************************************** 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @attention 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *

© Copyright (c) 2016 STMicroelectronics. 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * All rights reserved.

192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This software component is licensed by ST under BSD 3-Clause license, 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the "License"; You may not use this file except in compliance with the 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * License. You may obtain a copy of the License at: 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * opensource.org/licenses/BSD-3-Clause 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ****************************************************************************** 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Includes ------------------------------------------------------------------*/ ARM GAS /tmp/ccywxtmH.s page 5 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #include "stm32f3xx_hal.h" 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup STM32F3xx_HAL_Driver 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI SPI 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI HAL module driver 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #ifdef HAL_SPI_MODULE_ENABLED 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private typedef -----------------------------------------------------------*/ 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private defines -----------------------------------------------------------*/ 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Private_Constants SPI Private Constants 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #define SPI_DEFAULT_TIMEOUT 100U 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private macros ------------------------------------------------------------*/ 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private variables ---------------------------------------------------------*/ 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private function prototypes -----------------------------------------------*/ 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Private_Functions SPI Private Functions 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma); 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma); 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma); 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma); 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma); 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma); 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma); 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma); 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart); 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart); 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi); ARM GAS /tmp/ccywxtmH.s page 6 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi); 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi); 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi); 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi); 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t T 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Exported functions --------------------------------------------------------*/ 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions SPI Exported Functions 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Initialization and Configuration functions 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Initialization and de-initialization functions ##### 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] This subsection provides a set of functions allowing to initialize and 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** de-initialize the SPIx peripheral: 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) User must implement HAL_SPI_MspInit() function in which he configures 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) Call the function HAL_SPI_Init() to configure the selected device with 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the selected configuration: 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Mode 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Direction 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Data Size 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Clock Polarity and Phase 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) NSS Management 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) BaudRate Prescaler 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) FirstBit 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TIMode 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Calculation 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Polynomial if CRC enabled 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Length, used only with Data8 and Data16 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) FIFO reception threshold 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) Call the function HAL_SPI_DeInit() to restore the default configuration 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** of the selected SPIx peripheral. 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Initialize the SPI according to the specified parameters 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * in the SPI_InitTypeDef and initialize the associated handle. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ ARM GAS /tmp/ccywxtmH.s page 7 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi == NULL) 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the parameters */ 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_MODE(hspi->Init.Mode)); 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION(hspi->Init.Direction)); 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize)); 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSS(hspi->Init.NSS)); 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode)); 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Mode == SPI_MODE_MASTER) 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Force polarity and phase to TI protocaol requirements */ 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPolarity = SPI_POLARITY_LOW; 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_CALCULATION(hspi->Init.CRCCalculation)); 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_LENGTH(hspi->Init.CRCLength)); 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_RESET) 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Allocate lock resource and initialize it */ ARM GAS /tmp/ccywxtmH.s page 8 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Lock = HAL_UNLOCKED; 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the SPI Callback settings */ 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->MspInitCallback == NULL) 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit */ 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC... */ 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback(hspi); 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC... */ 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_MspInit(hspi); 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY; 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the selected SPI peripheral */ 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Align by default the rs fifo threshold on the data size */ 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** frxth = SPI_RXFIFO_THRESHOLD_HF; 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** frxth = SPI_RXFIFO_THRESHOLD_QF; 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC calculation is valid only for 16Bit and 8 Bit */ 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize != SPI_DATASIZE_16BIT) && (hspi->Init.DataSize != SPI_DATASIZE_8BIT)) 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC must be disabled */ 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : SPI Mode, Communication Mode, Clock polarity and phase, NSS management, 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Communication speed, First bit and CRC calculation state */ 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.Direction & (SPI_CR1_RXONLY | SPI_CR1_BIDIMODE)) | 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CLKPolarity & SPI_CR1_CPOL) | 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CLKPhase & SPI_CR1_CPHA) | 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.NSS & SPI_CR1_SSM) | 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.BaudRatePrescaler & SPI_CR1_BR_Msk) | ARM GAS /tmp/ccywxtmH.s page 9 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*---------------------------- SPIx CRCL Configuration -------------------*/ 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Align the CRC Length on the data size */ 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_DATASIZE) 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC Length aligned on the data size : value set by default */ 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCLength = SPI_CRC_LENGTH_16BIT; 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCLength = SPI_CRC_LENGTH_8BIT; 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : CRC Length */ 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCL); 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : NSS management, TI Mode, NSS Pulse, Data size and Rx Fifo threshold */ 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.TIMode & SPI_CR2_FRF) | 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.NSSPMode & SPI_CR2_NSSP) | 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.DataSize & SPI_CR2_DS_Msk) | 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (frxth & SPI_CR2_FRXTH))); 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*---------------------------- SPIx CRCPOLY Configuration ------------------*/ 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : CRC Polynomial */ 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CRCPR, (hspi->Init.CRCPolynomial & SPI_CRCPR_CRCPOLY_Msk)); 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined(SPI_I2SCFGR_I2SMOD) 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* SPI_I2SCFGR_I2SMOD */ 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief De-Initialize the SPI peripheral. ARM GAS /tmp/ccywxtmH.s page 10 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi) 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi == NULL) 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check SPI Instance parameter */ 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY; 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI Peripheral Clock */ 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->MspDeInitCallback == NULL) 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit */ 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback(hspi); 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_MspDeInit(hspi); 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Initialize the SPI MSP. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_MspInit should be implemented in the user file 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 11 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief De-Initialize the SPI MSP. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_MspDeInit should be implemented in the user file 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Register a User SPI Callback 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * To be used instead of the weak predefined callback 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi Pointer to a SPI_HandleTypeDef structure that contains 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI. 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param CallbackID ID of the callback to be registered 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pCallback pointer to the Callback function 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef Callb 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** pSPI_CallbackTypeDef pCallback) 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef status = HAL_OK; 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (pCallback == NULL) 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode |= HAL_SPI_ERROR_INVALID_CALLBACK; 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_SPI_STATE_READY == hspi->State) 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_COMPLETE_CB_ID : 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = pCallback; 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_COMPLETE_CB_ID : 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = pCallback; 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_COMPLETE_CB_ID : 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = pCallback; 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; ARM GAS /tmp/ccywxtmH.s page 12 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_HALF_COMPLETE_CB_ID : 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = pCallback; 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_HALF_COMPLETE_CB_ID : 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = pCallback; 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = pCallback; 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ERROR_CB_ID : 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = pCallback; 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ABORT_CB_ID : 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = pCallback; 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = pCallback; 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = pCallback; 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else if (HAL_SPI_STATE_RESET == hspi->State) 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = pCallback; 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = pCallback; 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; ARM GAS /tmp/ccywxtmH.s page 13 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return status; 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Unregister an SPI Callback 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * SPI callback is redirected to the weak predefined callback 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi Pointer to a SPI_HandleTypeDef structure that contains 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI. 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param CallbackID ID of the callback to be unregistered 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef Cal 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef status = HAL_OK; 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_SPI_STATE_READY == hspi->State) 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_COMPLETE_CB_ID : 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_COMPLETE_CB_ID : 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_COMPLETE_CB_ID : 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_HALF_COMPLETE_CB_ID : 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallbac 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_HALF_COMPLETE_CB_ID : 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallbac 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallb ARM GAS /tmp/ccywxtmH.s page 14 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ERROR_CB_ID : 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ABORT_CB_ID : 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else if (HAL_SPI_STATE_RESET == hspi->State) 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 15 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return status; 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group2 IO operation functions 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Data transfers functions 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### IO operation functions ##### 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to manage the SPI 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** data transfers. 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] The SPI supports master and slave mode : 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) There are two modes of transfer: 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Blocking mode: The communication is performed in polling mode. 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL status of all data processing is returned by the same function 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** after finishing transfer. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) No-Blocking mode: The communication is performed using Interrupts 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** or DMA, These APIs return the HAL status. 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The end of the data processing will be indicated through the 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** dedicated SPI IRQ when using Interrupt mode or the DMA IRQ when 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** using DMA mode. 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL_SPI_TxCpltCallback(), HAL_SPI_RxCpltCallback() and HAL_SPI_TxRxCpltCallback() u 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will be executed respectively at the end of the transmit or Receive process 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL_SPI_ErrorCallback()user callback will be executed when a communication error is 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) APIs provided for these 2 transfer modes (Blocking mode or Non blocking mode using either I 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** exist for 1Line (simplex) and 2Lines (full duplex) modes. 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in blocking mode. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 16 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); ARM GAS /tmp/ccywxtmH.s page 17 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->TxXferCount > 0U) 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag is set to send data */ 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 8 Bit mode */ 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* write on the data register in packing mode */ 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr); 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->TxXferCount > 0U) 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag is set to send data */ 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) ARM GAS /tmp/ccywxtmH.s page 18 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* write on the data register in packing mode */ 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr); 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received is not read */ 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccywxtmH.s page 19 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in blocking mode. 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be received 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES)) 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive(hspi, pData, pData, Size, Timeout); 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 20 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* this is done to handle the CRCNEXT before the latest data */ 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the Rx Fifo threshold */ 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction: 1Line */ 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 8 Bit mode */ 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize <= SPI_DATASIZE_8BIT) 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transfer loop */ 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->RxXferCount > 0U) 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the RXNE flag */ 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* read the received data */ 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (* (uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; ARM GAS /tmp/ccywxtmH.s page 21 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transfer loop */ 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->RxXferCount > 0U) 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the RXNE flag */ 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Handle the CRC Transmission */ 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* freeze the CRC before the latest data */ 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read the latest data */ 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* the latest data has not been received */ 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive last data in 16 Bit mode */ 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive last data in 8 Bit mode */ 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait the CRC data */ 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) ARM GAS /tmp/ccywxtmH.s page 22 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16B 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, Timeout, tickstart) != HAL_OK) 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) ARM GAS /tmp/ccywxtmH.s page 23 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in blocking mode. 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxDa 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout) 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_RxXferCount; 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t spi_cr1; 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t spi_cr2; 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Variable used to alternate Rx and Tx during transfer */ 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t txallowed = 1U; 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_RxXferCount = Size; 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** spi_cr1 = READ_REG(hspi->Instance->CR1); 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** spi_cr2 = READ_REG(hspi->Instance->CR2); ARM GAS /tmp/ccywxtmH.s page 24 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the Rx Fifo threshold */ 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (initial_RxXferCount > 1U)) 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 8bit */ 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 25 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 16 Bit mode */ 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((READ_BIT(spi_cr1, SPI_CR1_MSTR) == 0U) && (READ_BIT(spi_cr2, SPI_CR2_NSSP) == SPI_CR 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNE flag */ 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 8 Bit mode */ 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 26 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((READ_BIT(spi_cr1, SPI_CR1_MSTR) == 0U) && (READ_BIT(spi_cr2, SPI_CR2_NSSP) == SPI_CR 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag is reset */ 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; ARM GAS /tmp/ccywxtmH.s page 27 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold before to switch on 8 bit data size */ 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout = 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC from DR to close CRC calculation process */ 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag */ 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ ARM GAS /tmp/ccywxtmH.s page 28 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear CRC Flag */ 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with Interrupt. 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; ARM GAS /tmp/ccywxtmH.s page 29 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_16BIT; 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_8BIT; 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); ARM GAS /tmp/ccywxtmH.s page 30 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with Interrupt. 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_IT(hspi, pData, pData, Size); 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the data size to adapt Rx threshold and the set the function for IT treatment */ 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 31 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Note : The SPI must be enabled after unlocking current process 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to avoid the risk of SPI interrupt handle execution before current 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** process unlock */ 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccywxtmH.s page 32 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with Interrupt. 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pR 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BIT; 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; ARM GAS /tmp/ccywxtmH.s page 33 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BIT; 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if packing mode is enabled and if there is more than 2 data to receive */ 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (Size >= 2U)) 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with DMA. 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer ARM GAS /tmp/ccywxtmH.s page 34 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ ARM GAS /tmp/ccywxtmH.s page 35 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA Half transfer complete callback */ 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt; 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA transfer complete callback */ 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt; 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = SPI_DMAError; 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmatx->Init.MemDataAlignment == DMA_MDA 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the even/odd of the data size + crc if enabled */ 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount & 0x1U) == 0U) 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instanc 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ ARM GAS /tmp/ccywxtmH.s page 36 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with DMA. 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note In case of MASTER mode and SPI_DIRECTION_2LINES direction, hdmatx shall be defined. 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pData Length must be Size + 1. 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx dma handle */ 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size); 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; ARM GAS /tmp/ccywxtmH.s page 37 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 38 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI RxDMA Half transfer complete callback */ 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA transfer complete callback */ 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBu 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with DMA. 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pRxData Length must be Size + 1 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *p 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t Size) 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 39 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx & tx dma handles */ 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ ARM GAS /tmp/ccywxtmH.s page 40 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset the threshold bit */ 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX | SPI_CR2_LDMARX); 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The packing mode management is enabled by the DMA settings according the spi data size */ 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferSize & 0x1U) == 0x0U) 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 41 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if we are in Rx only or in Rx/Tx Mode and configure the DMA transfer complete callback * 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA Half transfer complete callback */ 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx/Rx DMA Half transfer complete callback */ 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt; 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBu 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** is performed in DMA reception complete callback */ 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = NULL; 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instanc 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 42 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (blocking mode). 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ ARM GAS /tmp/ccywxtmH.s page 43 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */ 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK) 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN)); 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) ARM GAS /tmp/ccywxtmH.s page 44 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */ 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK) 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable peripheral */ 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXDMAEN)); 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->state to ready */ 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; ARM GAS /tmp/ccywxtmH.s page 45 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (Interrupt mode). 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - At abort completion, call user abort complete callback 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * considered as completed only when user abort complete callback is executed (not when ex 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi) 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Change Rx and Tx Irq Handler to Disable TXEIE, RXNEIE and ERRIE interrupts */ 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 46 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If DMA Tx and/or DMA Rx Handles are associated to SPI Handle, DMA Abort complete callbacks sho 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** before any call to DMA Abort functions */ 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Tx Handle is valid */ 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback; 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Rx Handle is valid */ 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback; 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel */ 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK) 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; ARM GAS /tmp/ccywxtmH.s page 47 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel */ 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK) 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (abortcplt == 1U) 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 48 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Pause the DMA Transfer. 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi) 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Resume the DMA Transfer. 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi) 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI DMA Tx & Rx requests */ 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Stop the DMA Transfer. 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi) 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to call the HAL SPI API under callbacks HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() o 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the correspond call back is executed HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA tx Stream/Channel */ ARM GAS /tmp/ccywxtmH.s page 49 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmatx)) 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA rx Stream/Channel */ 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmarx)) 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI interrupt request. 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Receiver ----------------------------------------------------*/ 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR(hspi); 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Transmitter -------------------------------------------------*/ 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_TXE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_TXE) 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR(hspi); 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in Error Treatment --------------------------------------------------*/ 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Overrun error interrupt occurred ----------------------------------*/ 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 50 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_TX) 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Mode Fault error interrupt occurred -------------------------------*/ 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Frame error interrupt occurred ------------------------------------*/ 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable all interrupts */ 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((HAL_IS_BIT_SET(itsource, SPI_CR2_TXDMAEN)) || (HAL_IS_BIT_SET(itsource, SPI_CR2_RXDMAEN) 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx channel */ 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx channel */ 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); ARM GAS /tmp/ccywxtmH.s page 51 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx Transfer completed callback. 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxCpltCallback should be implemented in the user file 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx Transfer completed callback. 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxCpltCallback should be implemented in the user file 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx and Rx Transfer completed callback. 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 52 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxCpltCallback should be implemented in the user file 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx Half Transfer completed callback. 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxHalfCpltCallback should be implemented in the user file 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx Half Transfer completed callback. 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx and Rx Half Transfer callback. 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccywxtmH.s page 53 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI error callback. 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_ErrorCallback should be implemented in the user file 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and user can use HAL_SPI_GetError() API to check the latest error occurred 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI Abort Complete callback. 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_AbortCpltCallback can be implemented in the user file. 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI control functions 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Peripheral State and Errors functions ##### 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to control the SPI. 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetState() API can be helpful to check in run-time the state of the SPI peripheral 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetError() check in run-time Errors occurring during communication 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI handle state. 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI state ARM GAS /tmp/ccywxtmH.s page 54 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi) 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->State; 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI error code. 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI error code in bitmap format 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi) 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->ErrorCode; 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup SPI_Private_Functions 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Private functions 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit process complete callback. 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) ARM GAS /tmp/ccywxtmH.s page 55 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received data is not read */ 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx complete callback */ 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI receive process complete callback. 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 56 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag */ 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) ! 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstar 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if we are in Master RX 2 line mode */ 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request (done by default to handle the case master rx direction 2 lines) 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Normal case */ 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) ARM GAS /tmp/ccywxtmH.s page 57 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit receive process complete callback. 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 58 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_8BI 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_QUARTER_FULL, SPI_DEFAULT 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart) != HAL_OK) 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_HALF_FULL, SPI_DEFAULT_TI 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request */ 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 59 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit process complete callback. 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx half complete callback */ 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback(hspi); 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxHalfCpltCallback(hspi); 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half receive process complete callback 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx half complete callback */ 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback(hspi); 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxHalfCpltCallback(hspi); 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 60 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit receive process complete callback. 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx half complete callback */ 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback(hspi); 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxHalfCpltCallback(hspi); 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication error callback. 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma) 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Stop the disable DMA transfer on SPI side */ 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication abort callback, when initiated by HAL services on Error 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else ARM GAS /tmp/ccywxtmH.s page 61 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Tx communication abort callback, when initiated by user 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Rx DMA Handle. 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->XferAbortCallback != NULL) 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); ARM GAS /tmp/ccywxtmH.s page 62 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Rx communication abort callback, when initiated by user 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Tx DMA Handle. 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->XferAbortCallback != NULL) 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; ARM GAS /tmp/ccywxtmH.s page 63 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 8 Bit mode */ 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = *((__IO uint8_t *)&hspi->Instance->DR); 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 64 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BITCRC; 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 8-bit handler for Transmit and Receive in Interrupt mode. 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ ARM GAS /tmp/ccywxtmH.s page 65 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount >= 2U) 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 8 Bit mode */ 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transmission */ 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 16-bit handler for Transmit and Receive in Interrupt mode. 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) ARM GAS /tmp/ccywxtmH.s page 66 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BITCRC; 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 16-bit handler for Transmit and Receive in Interrupt mode. 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) ARM GAS /tmp/ccywxtmH.s page 67 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 8-bit receive in Interrupt context. 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the receive 8-bit in Interrupt context. 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); ARM GAS /tmp/ccywxtmH.s page 68 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BITCRC; 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive in Interrupt context. 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the 16-bit receive in Interrupt context. 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); ARM GAS /tmp/ccywxtmH.s page 69 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BITCRC; 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 8-bit transmit in Interrupt mode. 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 16-bit transmit in Interrupt mode. 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ ARM GAS /tmp/ccywxtmH.s page 70 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI Communication Timeout. 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Flag SPI flag to check 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State flag state to check 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 29 .loc 1 3936 1 view -0 30 .cfi_startproc 31 @ args = 4, pretend = 0, frame = 8 32 @ frame_needed = 0, uses_anonymous_args = 0 33 .loc 1 3936 1 is_stmt 0 view .LVU1 34 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 35 .cfi_def_cfa_offset 32 36 .cfi_offset 4, -32 37 .cfi_offset 5, -28 38 .cfi_offset 6, -24 39 .cfi_offset 7, -20 40 .cfi_offset 8, -16 41 .cfi_offset 9, -12 42 .cfi_offset 10, -8 43 .cfi_offset 14, -4 44 0004 82B0 sub sp, sp, #8 45 .cfi_def_cfa_offset 40 46 0006 0546 mov r5, r0 47 0008 8846 mov r8, r1 48 000a 1746 mov r7, r2 49 000c 1E46 mov r6, r3 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 50 .loc 1 3937 3 is_stmt 1 view .LVU2 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 51 .loc 1 3938 3 view .LVU3 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 52 .loc 1 3939 3 view .LVU4 ARM GAS /tmp/ccywxtmH.s page 71 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 53 .loc 1 3942 3 view .LVU5 54 .loc 1 3942 30 is_stmt 0 view .LVU6 55 000e FFF7FEFF bl HAL_GetTick 56 .LVL1: 57 .loc 1 3942 44 view .LVU7 58 0012 0A9B ldr r3, [sp, #40] 59 0014 1B1A subs r3, r3, r0 60 .loc 1 3942 17 view .LVU8 61 0016 03EB0609 add r9, r3, r6 62 .LVL2: 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 63 .loc 1 3943 3 is_stmt 1 view .LVU9 64 .loc 1 3943 19 is_stmt 0 view .LVU10 65 001a FFF7FEFF bl HAL_GetTick 66 .LVL3: 67 001e 8246 mov r10, r0 68 .LVL4: 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); 69 .loc 1 3946 3 is_stmt 1 view .LVU11 70 .loc 1 3946 43 is_stmt 0 view .LVU12 71 0020 284B ldr r3, .L16 72 0022 1B68 ldr r3, [r3] 73 .loc 1 3946 50 view .LVU13 74 0024 C3F3CB33 ubfx r3, r3, #15, #12 75 .loc 1 3946 23 view .LVU14 76 0028 09FB03F3 mul r3, r9, r3 77 .loc 1 3946 9 view .LVU15 78 002c 0193 str r3, [sp, #4] 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) 79 .loc 1 3948 3 is_stmt 1 view .LVU16 80 .LVL5: 81 .L3: 82 .loc 1 3948 57 view .LVU17 83 .loc 1 3948 11 is_stmt 0 view .LVU18 84 002e 2B68 ldr r3, [r5] 85 0030 9C68 ldr r4, [r3, #8] 86 .loc 1 3948 48 view .LVU19 87 0032 38EA0404 bics r4, r8, r4 88 0036 0CBF ite eq 89 0038 0123 moveq r3, #1 90 003a 0023 movne r3, #0 91 .loc 1 3948 57 view .LVU20 92 003c BB42 cmp r3, r7 93 003e 3DD0 beq .L12 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 94 .loc 1 3950 5 is_stmt 1 view .LVU21 95 .loc 1 3950 8 is_stmt 0 view .LVU22 96 0040 B6F1FF3F cmp r6, #-1 97 0044 F3D0 beq .L3 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 72 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 98 .loc 1 3952 7 is_stmt 1 view .LVU23 99 .loc 1 3952 13 is_stmt 0 view .LVU24 100 0046 FFF7FEFF bl HAL_GetTick 101 .LVL6: 102 .loc 1 3952 27 view .LVU25 103 004a A0EB0A00 sub r0, r0, r10 104 .loc 1 3952 10 view .LVU26 105 004e 4845 cmp r0, r9 106 0050 07D2 bcs .L13 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if(count == 0U) 107 .loc 1 3982 7 is_stmt 1 view .LVU27 108 .loc 1 3982 16 is_stmt 0 view .LVU28 109 0052 019A ldr r2, [sp, #4] 110 .loc 1 3982 9 view .LVU29 111 0054 02B1 cbz r2, .L9 112 0056 4A46 mov r2, r9 113 .L9: 114 .LVL7: 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 115 .loc 1 3986 7 is_stmt 1 view .LVU30 116 .loc 1 3986 12 is_stmt 0 view .LVU31 117 0058 019B ldr r3, [sp, #4] 118 005a 013B subs r3, r3, #1 119 005c 0193 str r3, [sp, #4] ARM GAS /tmp/ccywxtmH.s page 73 120 005e 9146 mov r9, r2 121 0060 E5E7 b .L3 122 .LVL8: 123 .L13: 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 124 .loc 1 3959 9 is_stmt 1 view .LVU32 125 0062 2A68 ldr r2, [r5] 126 0064 5368 ldr r3, [r2, #4] 127 0066 23F0E003 bic r3, r3, #224 128 006a 5360 str r3, [r2, #4] 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 129 .loc 1 3961 9 view .LVU33 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 130 .loc 1 3961 24 is_stmt 0 view .LVU34 131 006c 6B68 ldr r3, [r5, #4] 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 132 .loc 1 3961 12 view .LVU35 133 006e B3F5827F cmp r3, #260 134 0072 0BD0 beq .L14 135 .L5: 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 136 .loc 1 3969 9 is_stmt 1 view .LVU36 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 137 .loc 1 3969 23 is_stmt 0 view .LVU37 138 0074 AB6A ldr r3, [r5, #40] 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 139 .loc 1 3969 12 view .LVU38 140 0076 B3F5005F cmp r3, #8192 141 007a 14D0 beq .L15 142 .L7: 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 143 .loc 1 3971 11 is_stmt 1 discriminator 1 view .LVU39 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 144 .loc 1 3974 9 discriminator 1 view .LVU40 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 145 .loc 1 3974 21 is_stmt 0 discriminator 1 view .LVU41 146 007c 0123 movs r3, #1 147 007e 85F85D30 strb r3, [r5, #93] 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 148 .loc 1 3977 9 is_stmt 1 discriminator 1 view .LVU42 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 149 .loc 1 3977 9 discriminator 1 view .LVU43 150 0082 0023 movs r3, #0 151 0084 85F85C30 strb r3, [r5, #92] 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 152 .loc 1 3977 9 discriminator 1 view .LVU44 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 153 .loc 1 3979 9 discriminator 1 view .LVU45 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 154 .loc 1 3979 16 is_stmt 0 discriminator 1 view .LVU46 155 0088 0320 movs r0, #3 156 008a 18E0 b .L8 157 .L14: 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 158 .loc 1 3961 65 discriminator 1 view .LVU47 159 008c AB68 ldr r3, [r5, #8] 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN ARM GAS /tmp/ccywxtmH.s page 74 160 .loc 1 3961 50 discriminator 1 view .LVU48 161 008e B3F5004F cmp r3, #32768 162 0092 02D0 beq .L6 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 163 .loc 1 3962 54 view .LVU49 164 0094 B3F5806F cmp r3, #1024 165 0098 ECD1 bne .L5 166 .L6: 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 167 .loc 1 3965 11 is_stmt 1 view .LVU50 168 009a 2A68 ldr r2, [r5] 169 009c 1368 ldr r3, [r2] 170 009e 23F04003 bic r3, r3, #64 171 00a2 1360 str r3, [r2] 172 00a4 E6E7 b .L5 173 .L15: 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 174 .loc 1 3971 11 view .LVU51 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 175 .loc 1 3971 11 view .LVU52 176 00a6 2A68 ldr r2, [r5] 177 00a8 1368 ldr r3, [r2] 178 00aa 23F40053 bic r3, r3, #8192 179 00ae 1360 str r3, [r2] 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 180 .loc 1 3971 11 view .LVU53 181 00b0 2A68 ldr r2, [r5] 182 00b2 1368 ldr r3, [r2] 183 00b4 43F40053 orr r3, r3, #8192 184 00b8 1360 str r3, [r2] 185 00ba DFE7 b .L7 186 .L12: 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 187 .loc 1 3990 10 is_stmt 0 view .LVU54 188 00bc 0020 movs r0, #0 189 .L8: 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 190 .loc 1 3991 1 view .LVU55 191 00be 02B0 add sp, sp, #8 192 .cfi_def_cfa_offset 32 193 @ sp needed 194 00c0 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 195 .LVL9: 196 .L17: 197 .loc 1 3991 1 view .LVU56 198 .align 2 199 .L16: 200 00c4 00000000 .word SystemCoreClock 201 .cfi_endproc 202 .LFE177: 204 .section .text.SPI_WaitFifoStateUntilTimeout,"ax",%progbits 205 .align 1 206 .syntax unified 207 .thumb ARM GAS /tmp/ccywxtmH.s page 75 208 .thumb_func 210 SPI_WaitFifoStateUntilTimeout: 211 .LVL10: 212 .LFB178: 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI FIFO Communication Timeout. 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Fifo Fifo to check 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State Fifo state to check 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 213 .loc 1 4005 1 is_stmt 1 view -0 214 .cfi_startproc 215 @ args = 4, pretend = 0, frame = 8 216 @ frame_needed = 0, uses_anonymous_args = 0 217 .loc 1 4005 1 is_stmt 0 view .LVU58 218 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 219 .cfi_def_cfa_offset 32 220 .cfi_offset 4, -32 221 .cfi_offset 5, -28 222 .cfi_offset 6, -24 223 .cfi_offset 7, -20 224 .cfi_offset 8, -16 225 .cfi_offset 9, -12 226 .cfi_offset 10, -8 227 .cfi_offset 14, -4 228 0004 82B0 sub sp, sp, #8 229 .cfi_def_cfa_offset 40 230 0006 0646 mov r6, r0 231 0008 0C46 mov r4, r1 232 000a 1546 mov r5, r2 233 000c 1F46 mov r7, r3 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 234 .loc 1 4006 3 is_stmt 1 view .LVU59 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 235 .loc 1 4007 3 view .LVU60 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 236 .loc 1 4008 3 view .LVU61 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t * ptmpreg8; 237 .loc 1 4009 3 view .LVU62 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 238 .loc 1 4010 3 view .LVU63 239 .loc 1 4010 17 is_stmt 0 view .LVU64 240 000e 0023 movs r3, #0 241 .LVL11: 242 .loc 1 4010 17 view .LVU65 243 0010 8DF80330 strb r3, [sp, #3] 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); ARM GAS /tmp/ccywxtmH.s page 76 244 .loc 1 4013 3 is_stmt 1 view .LVU66 245 .loc 1 4013 28 is_stmt 0 view .LVU67 246 0014 FFF7FEFF bl HAL_GetTick 247 .LVL12: 248 .loc 1 4013 42 view .LVU68 249 0018 0A9B ldr r3, [sp, #40] 250 001a 1B1A subs r3, r3, r0 251 .loc 1 4013 15 view .LVU69 252 001c 03EB0708 add r8, r3, r7 253 .LVL13: 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 254 .loc 1 4014 3 is_stmt 1 view .LVU70 255 .loc 1 4014 19 is_stmt 0 view .LVU71 256 0020 FFF7FEFF bl HAL_GetTick 257 .LVL14: 258 0024 8146 mov r9, r0 259 .LVL15: 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 260 .loc 1 4017 3 is_stmt 1 view .LVU72 261 .loc 1 4017 35 is_stmt 0 view .LVU73 262 0026 D6F800A0 ldr r10, [r6] 263 .LVL16: 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 35U) >> 20U); 264 .loc 1 4020 3 is_stmt 1 view .LVU74 265 .loc 1 4020 43 is_stmt 0 view .LVU75 266 002a 304B ldr r3, .L35 267 002c 1B68 ldr r3, [r3] 268 002e 03EB8303 add r3, r3, r3, lsl #2 269 0032 C3EBC303 rsb r3, r3, r3, lsl #3 270 .loc 1 4020 50 view .LVU76 271 0036 1B0D lsrs r3, r3, #20 272 .loc 1 4020 23 view .LVU77 273 0038 08FB03F3 mul r3, r8, r3 274 .loc 1 4020 9 view .LVU78 275 003c 0193 str r3, [sp, #4] 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->Instance->SR & Fifo) != State) 276 .loc 1 4022 3 is_stmt 1 view .LVU79 277 .loc 1 4022 9 is_stmt 0 view .LVU80 278 003e 02E0 b .L21 279 .LVL17: 280 .L20: 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((Fifo == SPI_SR_FRLVL) && (State == SPI_FRLVL_EMPTY)) 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Flush Data Register by a blank read */ 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 281 .loc 1 4032 5 is_stmt 1 view .LVU81 ARM GAS /tmp/ccywxtmH.s page 77 282 .loc 1 4032 8 is_stmt 0 view .LVU82 283 0040 B7F1FF3F cmp r7, #-1 284 0044 12D1 bne .L30 285 .L21: 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 286 .loc 1 4022 38 is_stmt 1 view .LVU83 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 287 .loc 1 4022 15 is_stmt 0 view .LVU84 288 0046 3368 ldr r3, [r6] 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 289 .loc 1 4022 25 view .LVU85 290 0048 9B68 ldr r3, [r3, #8] 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 291 .loc 1 4022 30 view .LVU86 292 004a 03EA040C and ip, r3, r4 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 293 .loc 1 4022 38 view .LVU87 294 004e AC45 cmp ip, r5 295 0050 47D0 beq .L31 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 296 .loc 1 4024 5 is_stmt 1 view .LVU88 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 297 .loc 1 4024 8 is_stmt 0 view .LVU89 298 0052 B4F5C06F cmp r4, #1536 299 0056 F3D1 bne .L20 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 300 .loc 1 4024 32 discriminator 1 view .LVU90 301 0058 002D cmp r5, #0 302 005a F1D1 bne .L20 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 303 .loc 1 4027 7 is_stmt 1 view .LVU91 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 304 .loc 1 4027 17 is_stmt 0 view .LVU92 305 005c 9AF80C30 ldrb r3, [r10, #12] @ zero_extendqisi2 306 0060 DBB2 uxtb r3, r3 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 307 .loc 1 4027 15 view .LVU93 308 0062 8DF80330 strb r3, [sp, #3] 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 309 .loc 1 4029 7 is_stmt 1 view .LVU94 310 0066 9DF80330 ldrb r3, [sp, #3] @ zero_extendqisi2 311 006a E9E7 b .L20 312 .L30: 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 313 .loc 1 4034 7 view .LVU95 314 .loc 1 4034 13 is_stmt 0 view .LVU96 315 006c FFF7FEFF bl HAL_GetTick 316 .LVL18: 317 .loc 1 4034 27 view .LVU97 318 0070 A0EB0900 sub r0, r0, r9 319 .loc 1 4034 10 view .LVU98 320 0074 4045 cmp r0, r8 321 0076 07D2 bcs .L32 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master ARM GAS /tmp/ccywxtmH.s page 78 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if(count == 0U) 322 .loc 1 4064 7 is_stmt 1 view .LVU99 323 .loc 1 4064 16 is_stmt 0 view .LVU100 324 0078 019A ldr r2, [sp, #4] 325 .loc 1 4064 9 view .LVU101 326 007a 02B1 cbz r2, .L27 327 007c 4246 mov r2, r8 328 .L27: 329 .LVL19: 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 330 .loc 1 4068 7 is_stmt 1 view .LVU102 331 .loc 1 4068 12 is_stmt 0 view .LVU103 332 007e 019B ldr r3, [sp, #4] 333 0080 013B subs r3, r3, #1 334 0082 0193 str r3, [sp, #4] 335 0084 9046 mov r8, r2 336 0086 DEE7 b .L21 337 .LVL20: 338 .L32: 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 339 .loc 1 4041 9 is_stmt 1 view .LVU104 340 0088 3268 ldr r2, [r6] 341 008a 5368 ldr r3, [r2, #4] 342 008c 23F0E003 bic r3, r3, #224 343 0090 5360 str r3, [r2, #4] 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 344 .loc 1 4043 9 view .LVU105 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN ARM GAS /tmp/ccywxtmH.s page 79 345 .loc 1 4043 24 is_stmt 0 view .LVU106 346 0092 7368 ldr r3, [r6, #4] 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 347 .loc 1 4043 12 view .LVU107 348 0094 B3F5827F cmp r3, #260 349 0098 0BD0 beq .L33 350 .L23: 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 351 .loc 1 4051 9 is_stmt 1 view .LVU108 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 352 .loc 1 4051 23 is_stmt 0 view .LVU109 353 009a B36A ldr r3, [r6, #40] 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 354 .loc 1 4051 12 view .LVU110 355 009c B3F5005F cmp r3, #8192 356 00a0 14D0 beq .L34 357 .L25: 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 358 .loc 1 4053 11 is_stmt 1 discriminator 1 view .LVU111 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 359 .loc 1 4056 9 discriminator 1 view .LVU112 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 360 .loc 1 4056 21 is_stmt 0 discriminator 1 view .LVU113 361 00a2 0123 movs r3, #1 362 00a4 86F85D30 strb r3, [r6, #93] 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 363 .loc 1 4059 9 is_stmt 1 discriminator 1 view .LVU114 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 364 .loc 1 4059 9 discriminator 1 view .LVU115 365 00a8 0023 movs r3, #0 366 00aa 86F85C30 strb r3, [r6, #92] 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 367 .loc 1 4059 9 discriminator 1 view .LVU116 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 368 .loc 1 4061 9 discriminator 1 view .LVU117 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 369 .loc 1 4061 16 is_stmt 0 discriminator 1 view .LVU118 370 00ae 0320 movs r0, #3 371 00b0 18E0 b .L26 372 .L33: 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 373 .loc 1 4043 65 discriminator 1 view .LVU119 374 00b2 B368 ldr r3, [r6, #8] 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 375 .loc 1 4043 50 discriminator 1 view .LVU120 376 00b4 B3F5004F cmp r3, #32768 377 00b8 02D0 beq .L24 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 378 .loc 1 4044 54 view .LVU121 379 00ba B3F5806F cmp r3, #1024 380 00be ECD1 bne .L23 381 .L24: 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 382 .loc 1 4047 11 is_stmt 1 view .LVU122 383 00c0 3268 ldr r2, [r6] 384 00c2 1368 ldr r3, [r2] 385 00c4 23F04003 bic r3, r3, #64 ARM GAS /tmp/ccywxtmH.s page 80 386 00c8 1360 str r3, [r2] 387 00ca E6E7 b .L23 388 .L34: 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 389 .loc 1 4053 11 view .LVU123 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 390 .loc 1 4053 11 view .LVU124 391 00cc 3268 ldr r2, [r6] 392 00ce 1368 ldr r3, [r2] 393 00d0 23F40053 bic r3, r3, #8192 394 00d4 1360 str r3, [r2] 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 395 .loc 1 4053 11 view .LVU125 396 00d6 3268 ldr r2, [r6] 397 00d8 1368 ldr r3, [r2] 398 00da 43F40053 orr r3, r3, #8192 399 00de 1360 str r3, [r2] 400 00e0 DFE7 b .L25 401 .L31: 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 402 .loc 1 4072 10 is_stmt 0 view .LVU126 403 00e2 0020 movs r0, #0 404 .L26: 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 405 .loc 1 4073 1 view .LVU127 406 00e4 02B0 add sp, sp, #8 407 .cfi_def_cfa_offset 32 408 @ sp needed 409 00e6 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 410 .LVL21: 411 .L36: 412 .loc 1 4073 1 view .LVU128 413 00ea 00BF .align 2 414 .L35: 415 00ec 00000000 .word SystemCoreClock 416 .cfi_endproc 417 .LFE178: 419 .section .text.SPI_EndRxTxTransaction,"ax",%progbits 420 .align 1 421 .syntax unified 422 .thumb 423 .thumb_func 425 SPI_EndRxTxTransaction: 426 .LVL22: 427 .LFB180: 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RX transaction complete. 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ ARM GAS /tmp/ccywxtmH.s page 81 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RXTX or TX transaction complete. 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 428 .loc 1 4120 1 is_stmt 1 view -0 429 .cfi_startproc 430 @ args = 0, pretend = 0, frame = 0 431 @ frame_needed = 0, uses_anonymous_args = 0 432 .loc 1 4120 1 is_stmt 0 view .LVU130 433 0000 70B5 push {r4, r5, r6, lr} 434 .cfi_def_cfa_offset 16 435 .cfi_offset 4, -16 436 .cfi_offset 5, -12 437 .cfi_offset 6, -8 438 .cfi_offset 14, -4 439 0002 82B0 sub sp, sp, #8 440 .cfi_def_cfa_offset 24 441 0004 0446 mov r4, r0 442 0006 0D46 mov r5, r1 443 0008 1646 mov r6, r2 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the TX fifo is empty */ 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FTLVL, SPI_FTLVL_EMPTY, Timeout, Tickstart) != H 444 .loc 1 4122 3 is_stmt 1 view .LVU131 ARM GAS /tmp/ccywxtmH.s page 82 445 .loc 1 4122 7 is_stmt 0 view .LVU132 446 000a 0092 str r2, [sp] 447 000c 0B46 mov r3, r1 448 000e 0022 movs r2, #0 449 .LVL23: 450 .loc 1 4122 7 view .LVU133 451 0010 4FF4C051 mov r1, #6144 452 .LVL24: 453 .loc 1 4122 7 view .LVU134 454 0014 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 455 .LVL25: 456 .loc 1 4122 6 view .LVU135 457 0018 B0B9 cbnz r0, .L42 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 458 .loc 1 4129 3 is_stmt 1 view .LVU136 459 .loc 1 4129 7 is_stmt 0 view .LVU137 460 001a 0096 str r6, [sp] 461 001c 2B46 mov r3, r5 462 001e 0022 movs r2, #0 463 0020 8021 movs r1, #128 464 0022 2046 mov r0, r4 465 0024 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 466 .LVL26: 467 .loc 1 4129 6 view .LVU138 468 0028 A8B9 cbnz r0, .L43 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the RX fifo is empty */ 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != H 469 .loc 1 4136 3 is_stmt 1 view .LVU139 470 .loc 1 4136 7 is_stmt 0 view .LVU140 471 002a 0096 str r6, [sp] 472 002c 2B46 mov r3, r5 473 002e 0022 movs r2, #0 474 0030 4FF4C061 mov r1, #1536 475 0034 2046 mov r0, r4 476 0036 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 477 .LVL27: 478 .loc 1 4136 6 view .LVU141 479 003a 50B1 cbz r0, .L39 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 480 .loc 1 4138 5 is_stmt 1 view .LVU142 481 003c 236E ldr r3, [r4, #96] 482 003e 43F02003 orr r3, r3, #32 483 0042 2366 str r3, [r4, #96] 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 484 .loc 1 4139 5 view .LVU143 ARM GAS /tmp/ccywxtmH.s page 83 485 .loc 1 4139 12 is_stmt 0 view .LVU144 486 0044 0320 movs r0, #3 487 0046 04E0 b .L39 488 .L42: 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 489 .loc 1 4124 5 is_stmt 1 view .LVU145 490 0048 236E ldr r3, [r4, #96] 491 004a 43F02003 orr r3, r3, #32 492 004e 2366 str r3, [r4, #96] 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 493 .loc 1 4125 5 view .LVU146 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 494 .loc 1 4125 12 is_stmt 0 view .LVU147 495 0050 0320 movs r0, #3 496 .L39: 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 497 .loc 1 4143 1 view .LVU148 498 0052 02B0 add sp, sp, #8 499 .cfi_remember_state 500 .cfi_def_cfa_offset 16 501 @ sp needed 502 0054 70BD pop {r4, r5, r6, pc} 503 .LVL28: 504 .L43: 505 .cfi_restore_state 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 506 .loc 1 4131 5 is_stmt 1 view .LVU149 507 0056 236E ldr r3, [r4, #96] 508 0058 43F02003 orr r3, r3, #32 509 005c 2366 str r3, [r4, #96] 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 510 .loc 1 4132 5 view .LVU150 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 511 .loc 1 4132 12 is_stmt 0 view .LVU151 512 005e 0320 movs r0, #3 513 0060 F7E7 b .L39 514 .cfi_endproc 515 .LFE180: 517 .section .text.SPI_EndRxTransaction,"ax",%progbits 518 .align 1 519 .syntax unified 520 .thumb 521 .thumb_func 523 SPI_EndRxTransaction: 524 .LVL29: 525 .LFB179: 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 526 .loc 1 4084 1 is_stmt 1 view -0 527 .cfi_startproc 528 @ args = 0, pretend = 0, frame = 0 529 @ frame_needed = 0, uses_anonymous_args = 0 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 530 .loc 1 4084 1 is_stmt 0 view .LVU153 531 0000 70B5 push {r4, r5, r6, lr} ARM GAS /tmp/ccywxtmH.s page 84 532 .cfi_def_cfa_offset 16 533 .cfi_offset 4, -16 534 .cfi_offset 5, -12 535 .cfi_offset 6, -8 536 .cfi_offset 14, -4 537 0002 82B0 sub sp, sp, #8 538 .cfi_def_cfa_offset 24 539 0004 0446 mov r4, r0 540 0006 0D46 mov r5, r1 541 0008 1646 mov r6, r2 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 542 .loc 1 4085 3 is_stmt 1 view .LVU154 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 543 .loc 1 4085 18 is_stmt 0 view .LVU155 544 000a 4368 ldr r3, [r0, #4] 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 545 .loc 1 4085 6 view .LVU156 546 000c B3F5827F cmp r3, #260 547 0010 0DD0 beq .L51 548 .LVL30: 549 .L45: 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 550 .loc 1 4093 3 is_stmt 1 view .LVU157 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 551 .loc 1 4093 7 is_stmt 0 view .LVU158 552 0012 0096 str r6, [sp] 553 0014 2B46 mov r3, r5 554 0016 0022 movs r2, #0 555 0018 8021 movs r1, #128 556 .LVL31: 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 557 .loc 1 4093 7 view .LVU159 558 001a 2046 mov r0, r4 559 .LVL32: 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 560 .loc 1 4093 7 view .LVU160 561 001c FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 562 .LVL33: 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 563 .loc 1 4093 6 view .LVU161 564 0020 90B9 cbnz r0, .L52 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 565 .loc 1 4099 3 is_stmt 1 view .LVU162 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 566 .loc 1 4099 18 is_stmt 0 view .LVU163 567 0022 6368 ldr r3, [r4, #4] 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 568 .loc 1 4099 6 view .LVU164 569 0024 B3F5827F cmp r3, #260 570 0028 14D0 beq .L53 571 .L48: 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 572 .loc 1 4110 1 view .LVU165 573 002a 02B0 add sp, sp, #8 574 .cfi_remember_state 575 .cfi_def_cfa_offset 16 576 @ sp needed ARM GAS /tmp/ccywxtmH.s page 85 577 002c 70BD pop {r4, r5, r6, pc} 578 .LVL34: 579 .L51: 580 .cfi_restore_state 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 581 .loc 1 4085 59 discriminator 1 view .LVU166 582 002e 8368 ldr r3, [r0, #8] 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 583 .loc 1 4085 44 discriminator 1 view .LVU167 584 0030 B3F5004F cmp r3, #32768 585 0034 02D0 beq .L46 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 586 .loc 1 4086 48 view .LVU168 587 0036 B3F5806F cmp r3, #1024 588 003a EAD1 bne .L45 589 .L46: 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 590 .loc 1 4089 5 is_stmt 1 view .LVU169 591 003c 2268 ldr r2, [r4] 592 .LVL35: 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 593 .loc 1 4089 5 is_stmt 0 view .LVU170 594 003e 1368 ldr r3, [r2] 595 0040 23F04003 bic r3, r3, #64 596 0044 1360 str r3, [r2] 597 0046 E4E7 b .L45 598 .LVL36: 599 .L52: 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 600 .loc 1 4095 5 is_stmt 1 view .LVU171 601 0048 236E ldr r3, [r4, #96] 602 004a 43F02003 orr r3, r3, #32 603 004e 2366 str r3, [r4, #96] 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 604 .loc 1 4096 5 view .LVU172 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 605 .loc 1 4096 12 is_stmt 0 view .LVU173 606 0050 0320 movs r0, #3 607 0052 EAE7 b .L48 608 .L53: 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 609 .loc 1 4099 59 discriminator 1 view .LVU174 610 0054 A368 ldr r3, [r4, #8] 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 611 .loc 1 4099 44 discriminator 1 view .LVU175 612 0056 B3F5004F cmp r3, #32768 613 005a 02D0 beq .L49 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 614 .loc 1 4100 48 view .LVU176 615 005c B3F5806F cmp r3, #1024 616 0060 E3D1 bne .L48 617 .L49: 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 618 .loc 1 4103 5 is_stmt 1 view .LVU177 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 619 .loc 1 4103 9 is_stmt 0 view .LVU178 620 0062 0096 str r6, [sp] ARM GAS /tmp/ccywxtmH.s page 86 621 0064 2B46 mov r3, r5 622 0066 0022 movs r2, #0 623 0068 4FF4C061 mov r1, #1536 624 006c 2046 mov r0, r4 625 006e FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 626 .LVL37: 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 627 .loc 1 4103 8 view .LVU179 628 0072 0028 cmp r0, #0 629 0074 D9D0 beq .L48 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 630 .loc 1 4105 7 is_stmt 1 view .LVU180 631 0076 236E ldr r3, [r4, #96] 632 0078 43F02003 orr r3, r3, #32 633 007c 2366 str r3, [r4, #96] 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 634 .loc 1 4106 7 view .LVU181 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 635 .loc 1 4106 14 is_stmt 0 view .LVU182 636 007e 0320 movs r0, #3 637 0080 D3E7 b .L48 638 .cfi_endproc 639 .LFE179: 641 .section .text.SPI_AbortRx_ISR,"ax",%progbits 642 .align 1 643 .syntax unified 644 .thumb 645 .thumb_func 647 SPI_AbortRx_ISR: 648 .LVL38: 649 .LFB184: 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RXTX transaction. 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi) 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management */ 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) ARM GAS /tmp/ccywxtmH.s page 87 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RX transaction. 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None ARM GAS /tmp/ccywxtmH.s page 88 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi) 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the TX transaction. 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None ARM GAS /tmp/ccywxtmH.s page 89 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE and ERR interrupt */ 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received is not read */ 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Rx transaction. 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi) 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 650 .loc 1 4335 1 is_stmt 1 view -0 651 .cfi_startproc 652 @ args = 0, pretend = 0, frame = 8 653 @ frame_needed = 0, uses_anonymous_args = 0 654 .loc 1 4335 1 is_stmt 0 view .LVU184 ARM GAS /tmp/ccywxtmH.s page 90 655 0000 10B5 push {r4, lr} 656 .cfi_def_cfa_offset 8 657 .cfi_offset 4, -8 658 .cfi_offset 14, -4 659 0002 84B0 sub sp, sp, #16 660 .cfi_def_cfa_offset 24 661 0004 0446 mov r4, r0 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 662 .loc 1 4336 3 is_stmt 1 view .LVU185 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 663 .loc 1 4339 3 view .LVU186 664 0006 0268 ldr r2, [r0] 665 0008 1368 ldr r3, [r2] 666 000a 23F04003 bic r3, r3, #64 667 000e 1360 str r3, [r2] 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 668 .loc 1 4341 3 view .LVU187 669 .loc 1 4341 56 is_stmt 0 view .LVU188 670 0010 1D4B ldr r3, .L62 671 0012 1B68 ldr r3, [r3] 672 0014 1D4A ldr r2, .L62+4 673 0016 A2FB0323 umull r2, r3, r2, r3 674 001a 5B0A lsrs r3, r3, #9 675 .loc 1 4341 31 view .LVU189 676 001c 6422 movs r2, #100 677 001e 02FB03F3 mul r3, r2, r3 678 .loc 1 4341 9 view .LVU190 679 0022 0393 str r3, [sp, #12] 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 680 .loc 1 4344 3 is_stmt 1 view .LVU191 681 0024 0268 ldr r2, [r0] 682 0026 5368 ldr r3, [r2, #4] 683 0028 23F04003 bic r3, r3, #64 684 002c 5360 str r3, [r2, #4] 685 .L57: 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 686 .loc 1 4347 3 view .LVU192 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 687 .loc 1 4349 5 view .LVU193 688 .loc 1 4349 15 is_stmt 0 view .LVU194 689 002e 039B ldr r3, [sp, #12] 690 .loc 1 4349 8 view .LVU195 691 0030 43B1 cbz r3, .L61 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 692 .loc 1 4354 5 is_stmt 1 view .LVU196 ARM GAS /tmp/ccywxtmH.s page 91 693 .loc 1 4354 10 is_stmt 0 view .LVU197 694 0032 039B ldr r3, [sp, #12] 695 0034 013B subs r3, r3, #1 696 0036 0393 str r3, [sp, #12] 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 697 .loc 1 4355 12 is_stmt 1 view .LVU198 698 0038 2368 ldr r3, [r4] 699 003a 5B68 ldr r3, [r3, #4] 700 003c 13F0400F tst r3, #64 701 0040 F5D1 bne .L57 702 0042 03E0 b .L56 703 .L61: 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 704 .loc 1 4351 7 view .LVU199 705 0044 236E ldr r3, [r4, #96] 706 0046 43F04003 orr r3, r3, #64 707 004a 2366 str r3, [r4, #96] 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 708 .loc 1 4352 7 view .LVU200 709 .L56: 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 710 .loc 1 4358 3 view .LVU201 711 .loc 1 4358 7 is_stmt 0 view .LVU202 712 004c FFF7FEFF bl HAL_GetTick 713 .LVL39: 714 .loc 1 4358 7 view .LVU203 715 0050 0090 str r0, [sp] 716 0052 6423 movs r3, #100 717 0054 0022 movs r2, #0 718 0056 8021 movs r1, #128 719 0058 2046 mov r0, r4 720 005a FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 721 .LVL40: 722 .loc 1 4358 6 view .LVU204 723 005e 08B1 cbz r0, .L58 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 724 .loc 1 4360 5 is_stmt 1 view .LVU205 725 .loc 1 4360 21 is_stmt 0 view .LVU206 726 0060 4023 movs r3, #64 727 0062 2366 str r3, [r4, #96] 728 .L58: 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 729 .loc 1 4364 3 is_stmt 1 view .LVU207 730 .loc 1 4364 7 is_stmt 0 view .LVU208 731 0064 FFF7FEFF bl HAL_GetTick 732 .LVL41: 733 0068 0090 str r0, [sp] 734 006a 6423 movs r3, #100 735 006c 0022 movs r2, #0 736 006e 4FF4C061 mov r1, #1536 737 0072 2046 mov r0, r4 ARM GAS /tmp/ccywxtmH.s page 92 738 0074 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 739 .LVL42: 740 .loc 1 4364 6 view .LVU209 741 0078 08B1 cbz r0, .L59 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 742 .loc 1 4366 5 is_stmt 1 view .LVU210 743 .loc 1 4366 21 is_stmt 0 view .LVU211 744 007a 4023 movs r3, #64 745 007c 2366 str r3, [r4, #96] 746 .L59: 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 747 .loc 1 4369 3 is_stmt 1 view .LVU212 748 .loc 1 4369 15 is_stmt 0 view .LVU213 749 007e 0723 movs r3, #7 750 0080 84F85D30 strb r3, [r4, #93] 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 751 .loc 1 4370 1 view .LVU214 752 0084 04B0 add sp, sp, #16 753 .cfi_def_cfa_offset 8 754 @ sp needed 755 0086 10BD pop {r4, pc} 756 .LVL43: 757 .L63: 758 .loc 1 4370 1 view .LVU215 759 .align 2 760 .L62: 761 0088 00000000 .word SystemCoreClock 762 008c F1197605 .word 91625969 763 .cfi_endproc 764 .LFE184: 766 .section .text.SPI_AbortTx_ISR,"ax",%progbits 767 .align 1 768 .syntax unified 769 .thumb 770 .thumb_func 772 SPI_AbortTx_ISR: 773 .LVL44: 774 .LFB185: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Tx or Rx/Tx transaction. 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi) 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 775 .loc 1 4379 1 is_stmt 1 view -0 776 .cfi_startproc 777 @ args = 0, pretend = 0, frame = 8 778 @ frame_needed = 0, uses_anonymous_args = 0 779 .loc 1 4379 1 is_stmt 0 view .LVU217 780 0000 10B5 push {r4, lr} 781 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccywxtmH.s page 93 782 .cfi_offset 4, -8 783 .cfi_offset 14, -4 784 0002 84B0 sub sp, sp, #16 785 .cfi_def_cfa_offset 24 786 0004 0446 mov r4, r0 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 787 .loc 1 4380 3 is_stmt 1 view .LVU218 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 788 .loc 1 4382 3 view .LVU219 789 .loc 1 4382 56 is_stmt 0 view .LVU220 790 0006 384B ldr r3, .L78 791 0008 1B68 ldr r3, [r3] 792 000a 384A ldr r2, .L78+4 793 000c A2FB0323 umull r2, r3, r2, r3 794 0010 5B0A lsrs r3, r3, #9 795 .loc 1 4382 31 view .LVU221 796 0012 6422 movs r2, #100 797 0014 02FB03F3 mul r3, r2, r3 798 .loc 1 4382 9 view .LVU222 799 0018 0393 str r3, [sp, #12] 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE interrupt */ 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE)); 800 .loc 1 4385 3 is_stmt 1 view .LVU223 801 001a 0268 ldr r2, [r0] 802 001c 5368 ldr r3, [r2, #4] 803 001e 23F08003 bic r3, r3, #128 804 0022 5360 str r3, [r2, #4] 805 .L67: 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXEIE is disabled */ 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 806 .loc 1 4388 3 view .LVU224 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 807 .loc 1 4390 5 view .LVU225 808 .loc 1 4390 15 is_stmt 0 view .LVU226 809 0024 039B ldr r3, [sp, #12] 810 .loc 1 4390 8 view .LVU227 811 0026 43B1 cbz r3, .L76 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 812 .loc 1 4395 5 is_stmt 1 view .LVU228 813 .loc 1 4395 10 is_stmt 0 view .LVU229 814 0028 039B ldr r3, [sp, #12] 815 002a 013B subs r3, r3, #1 816 002c 0393 str r3, [sp, #12] 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)); 817 .loc 1 4396 12 is_stmt 1 view .LVU230 818 002e 2368 ldr r3, [r4] 819 0030 5B68 ldr r3, [r3, #4] 820 0032 13F0800F tst r3, #128 821 0036 F5D1 bne .L67 ARM GAS /tmp/ccywxtmH.s page 94 822 0038 03E0 b .L66 823 .L76: 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 824 .loc 1 4392 7 view .LVU231 825 003a 236E ldr r3, [r4, #96] 826 003c 43F04003 orr r3, r3, #64 827 0040 2366 str r3, [r4, #96] 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 828 .loc 1 4393 7 view .LVU232 829 .L66: 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 830 .loc 1 4398 3 view .LVU233 831 .loc 1 4398 7 is_stmt 0 view .LVU234 832 0042 FFF7FEFF bl HAL_GetTick 833 .LVL45: 834 .loc 1 4398 7 view .LVU235 835 0046 0246 mov r2, r0 836 0048 6421 movs r1, #100 837 004a 2046 mov r0, r4 838 004c FFF7FEFF bl SPI_EndRxTxTransaction 839 .LVL46: 840 .loc 1 4398 6 view .LVU236 841 0050 08B1 cbz r0, .L68 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 842 .loc 1 4400 5 is_stmt 1 view .LVU237 843 .loc 1 4400 21 is_stmt 0 view .LVU238 844 0052 4023 movs r3, #64 845 0054 2366 str r3, [r4, #96] 846 .L68: 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 847 .loc 1 4404 3 is_stmt 1 view .LVU239 848 0056 2268 ldr r2, [r4] 849 0058 1368 ldr r3, [r2] 850 005a 23F04003 bic r3, r3, #64 851 005e 1360 str r3, [r2] 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 852 .loc 1 4407 3 view .LVU240 853 .loc 1 4407 7 is_stmt 0 view .LVU241 854 0060 FFF7FEFF bl HAL_GetTick 855 .LVL47: 856 0064 0090 str r0, [sp] 857 0066 6423 movs r3, #100 858 0068 0022 movs r2, #0 859 006a 4FF4C061 mov r1, #1536 860 006e 2046 mov r0, r4 861 0070 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 862 .LVL48: 863 .loc 1 4407 6 view .LVU242 864 0074 08B1 cbz r0, .L69 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 95 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 865 .loc 1 4409 5 is_stmt 1 view .LVU243 866 .loc 1 4409 21 is_stmt 0 view .LVU244 867 0076 4023 movs r3, #64 868 0078 2366 str r3, [r4, #96] 869 .L69: 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check case of Full-Duplex Mode and disable directly RXNEIE interrupt */ 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 870 .loc 1 4413 3 is_stmt 1 view .LVU245 871 .loc 1 4413 7 is_stmt 0 view .LVU246 872 007a 2368 ldr r3, [r4] 873 007c 5A68 ldr r2, [r3, #4] 874 .loc 1 4413 6 view .LVU247 875 007e 12F0400F tst r2, #64 876 0082 2BD0 beq .L70 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 877 .loc 1 4416 5 is_stmt 1 view .LVU248 878 0084 5A68 ldr r2, [r3, #4] 879 0086 22F04002 bic r2, r2, #64 880 008a 5A60 str r2, [r3, #4] 881 .L73: 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 882 .loc 1 4419 5 view .LVU249 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 883 .loc 1 4421 7 view .LVU250 884 .loc 1 4421 17 is_stmt 0 view .LVU251 885 008c 039B ldr r3, [sp, #12] 886 .loc 1 4421 10 view .LVU252 887 008e 43B1 cbz r3, .L77 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 888 .loc 1 4426 7 is_stmt 1 view .LVU253 889 .loc 1 4426 12 is_stmt 0 view .LVU254 890 0090 039B ldr r3, [sp, #12] 891 0092 013B subs r3, r3, #1 892 0094 0393 str r3, [sp, #12] 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 893 .loc 1 4427 14 is_stmt 1 view .LVU255 894 0096 2368 ldr r3, [r4] 895 0098 5B68 ldr r3, [r3, #4] 896 009a 13F0400F tst r3, #64 897 009e F5D1 bne .L73 898 00a0 03E0 b .L72 899 .L77: 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 900 .loc 1 4423 9 view .LVU256 901 00a2 236E ldr r3, [r4, #96] ARM GAS /tmp/ccywxtmH.s page 96 902 00a4 43F04003 orr r3, r3, #64 903 00a8 2366 str r3, [r4, #96] 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 904 .loc 1 4424 9 view .LVU257 905 .L72: 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick() 906 .loc 1 4430 5 view .LVU258 907 .loc 1 4430 9 is_stmt 0 view .LVU259 908 00aa FFF7FEFF bl HAL_GetTick 909 .LVL49: 910 00ae 0090 str r0, [sp] 911 00b0 6423 movs r3, #100 912 00b2 0022 movs r2, #0 913 00b4 8021 movs r1, #128 914 00b6 2046 mov r0, r4 915 00b8 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 916 .LVL50: 917 .loc 1 4430 8 view .LVU260 918 00bc 08B1 cbz r0, .L74 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 919 .loc 1 4432 7 is_stmt 1 view .LVU261 920 .loc 1 4432 23 is_stmt 0 view .LVU262 921 00be 4023 movs r3, #64 922 00c0 2366 str r3, [r4, #96] 923 .L74: 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, H 924 .loc 1 4436 5 is_stmt 1 view .LVU263 925 .loc 1 4436 9 is_stmt 0 view .LVU264 926 00c2 FFF7FEFF bl HAL_GetTick 927 .LVL51: 928 00c6 0090 str r0, [sp] 929 00c8 6423 movs r3, #100 930 00ca 0022 movs r2, #0 931 00cc 4FF4C061 mov r1, #1536 932 00d0 2046 mov r0, r4 933 00d2 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 934 .LVL52: 935 .loc 1 4436 8 view .LVU265 936 00d6 08B1 cbz r0, .L70 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 937 .loc 1 4438 7 is_stmt 1 view .LVU266 938 .loc 1 4438 23 is_stmt 0 view .LVU267 939 00d8 4023 movs r3, #64 940 00da 2366 str r3, [r4, #96] 941 .L70: 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 942 .loc 1 4441 3 is_stmt 1 view .LVU268 943 .loc 1 4441 15 is_stmt 0 view .LVU269 ARM GAS /tmp/ccywxtmH.s page 97 944 00dc 0723 movs r3, #7 945 00de 84F85D30 strb r3, [r4, #93] 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 946 .loc 1 4442 1 view .LVU270 947 00e2 04B0 add sp, sp, #16 948 .cfi_def_cfa_offset 8 949 @ sp needed 950 00e4 10BD pop {r4, pc} 951 .LVL53: 952 .L79: 953 .loc 1 4442 1 view .LVU271 954 00e6 00BF .align 2 955 .L78: 956 00e8 00000000 .word SystemCoreClock 957 00ec F1197605 .word 91625969 958 .cfi_endproc 959 .LFE185: 961 .section .text.HAL_SPI_MspInit,"ax",%progbits 962 .align 1 963 .weak HAL_SPI_MspInit 964 .syntax unified 965 .thumb 966 .thumb_func 968 HAL_SPI_MspInit: 969 .LVL54: 970 .LFB132: 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 971 .loc 1 536 1 is_stmt 1 view -0 972 .cfi_startproc 973 @ args = 0, pretend = 0, frame = 0 974 @ frame_needed = 0, uses_anonymous_args = 0 975 @ link register save eliminated. 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 976 .loc 1 538 3 view .LVU273 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 977 .loc 1 543 1 is_stmt 0 view .LVU274 978 0000 7047 bx lr 979 .cfi_endproc 980 .LFE132: 982 .section .text.HAL_SPI_Init,"ax",%progbits 983 .align 1 984 .global HAL_SPI_Init 985 .syntax unified 986 .thumb 987 .thumb_func 989 HAL_SPI_Init: 990 .LVL55: 991 .LFB130: 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 992 .loc 1 317 1 is_stmt 1 view -0 993 .cfi_startproc 994 @ args = 0, pretend = 0, frame = 0 995 @ frame_needed = 0, uses_anonymous_args = 0 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 996 .loc 1 318 3 view .LVU276 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 997 .loc 1 321 3 view .LVU277 ARM GAS /tmp/ccywxtmH.s page 98 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 998 .loc 1 321 6 is_stmt 0 view .LVU278 999 0000 0028 cmp r0, #0 1000 0002 6FD0 beq .L88 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 1001 .loc 1 317 1 view .LVU279 1002 0004 10B5 push {r4, lr} 1003 .cfi_def_cfa_offset 8 1004 .cfi_offset 4, -8 1005 .cfi_offset 14, -4 1006 0006 0446 mov r4, r0 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_MODE(hspi->Init.Mode)); 1007 .loc 1 327 3 is_stmt 1 view .LVU280 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION(hspi->Init.Direction)); 1008 .loc 1 328 3 view .LVU281 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize)); 1009 .loc 1 329 3 view .LVU282 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSS(hspi->Init.NSS)); 1010 .loc 1 330 3 view .LVU283 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode)); 1011 .loc 1 331 3 view .LVU284 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 1012 .loc 1 332 3 view .LVU285 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); 1013 .loc 1 333 3 view .LVU286 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); 1014 .loc 1 334 3 view .LVU287 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) 1015 .loc 1 335 3 view .LVU288 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1016 .loc 1 336 3 view .LVU289 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1017 .loc 1 336 17 is_stmt 0 view .LVU290 1018 0008 436A ldr r3, [r0, #36] 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1019 .loc 1 336 6 view .LVU291 1020 000a 33B9 cbnz r3, .L83 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); 1021 .loc 1 338 5 is_stmt 1 view .LVU292 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1022 .loc 1 339 5 view .LVU293 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1023 .loc 1 341 5 view .LVU294 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1024 .loc 1 341 19 is_stmt 0 view .LVU295 1025 000c 4368 ldr r3, [r0, #4] 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1026 .loc 1 341 8 view .LVU296 1027 000e B3F5827F cmp r3, #260 1028 0012 05D0 beq .L84 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1029 .loc 1 348 7 is_stmt 1 view .LVU297 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1030 .loc 1 348 36 is_stmt 0 view .LVU298 1031 0014 0023 movs r3, #0 1032 0016 C361 str r3, [r0, #28] 1033 0018 02E0 b .L84 ARM GAS /tmp/ccywxtmH.s page 99 1034 .L83: 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1035 .loc 1 353 5 is_stmt 1 view .LVU299 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 1036 .loc 1 356 5 view .LVU300 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 1037 .loc 1 356 28 is_stmt 0 view .LVU301 1038 001a 0023 movs r3, #0 1039 001c 0361 str r3, [r0, #16] 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1040 .loc 1 357 5 is_stmt 1 view .LVU302 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1041 .loc 1 357 28 is_stmt 0 view .LVU303 1042 001e 4361 str r3, [r0, #20] 1043 .L84: 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1044 .loc 1 367 3 is_stmt 1 view .LVU304 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1045 .loc 1 367 29 is_stmt 0 view .LVU305 1046 0020 0023 movs r3, #0 1047 0022 A362 str r3, [r4, #40] 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1048 .loc 1 370 3 is_stmt 1 view .LVU306 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1049 .loc 1 370 11 is_stmt 0 view .LVU307 1050 0024 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1051 .loc 1 370 6 view .LVU308 1052 0028 002B cmp r3, #0 1053 002a 52D0 beq .L94 1054 .LVL56: 1055 .L85: 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1056 .loc 1 399 3 is_stmt 1 view .LVU309 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1057 .loc 1 399 15 is_stmt 0 view .LVU310 1058 002c 0223 movs r3, #2 1059 002e 84F85D30 strb r3, [r4, #93] 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1060 .loc 1 402 3 is_stmt 1 view .LVU311 1061 0032 2268 ldr r2, [r4] 1062 0034 1368 ldr r3, [r2] 1063 0036 23F04003 bic r3, r3, #64 1064 003a 1360 str r3, [r2] 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1065 .loc 1 405 3 view .LVU312 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1066 .loc 1 405 17 is_stmt 0 view .LVU313 1067 003c E368 ldr r3, [r4, #12] 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1068 .loc 1 405 6 view .LVU314 1069 003e B3F5E06F cmp r3, #1792 1070 0042 4CD9 bls .L89 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1071 .loc 1 407 11 view .LVU315 1072 0044 0022 movs r2, #0 1073 .L86: ARM GAS /tmp/ccywxtmH.s page 100 1074 .LVL57: 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1075 .loc 1 415 3 is_stmt 1 view .LVU316 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1076 .loc 1 415 6 is_stmt 0 view .LVU317 1077 0046 B3F5706F cmp r3, #3840 1078 004a 04D0 beq .L87 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1079 .loc 1 415 51 discriminator 1 view .LVU318 1080 004c B3F5E06F cmp r3, #1792 1081 0050 01D0 beq .L87 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1082 .loc 1 418 5 is_stmt 1 view .LVU319 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1083 .loc 1 418 31 is_stmt 0 view .LVU320 1084 0052 0023 movs r3, #0 1085 0054 A362 str r3, [r4, #40] 1086 .L87: 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.Direction & (SPI_CR1_RXONLY | SPI_CR1_BIDIMODE)) | 1087 .loc 1 424 3 is_stmt 1 view .LVU321 1088 0056 6368 ldr r3, [r4, #4] 1089 0058 03F48273 and r3, r3, #260 1090 005c A168 ldr r1, [r4, #8] 1091 005e 01F40441 and r1, r1, #33792 1092 0062 0B43 orrs r3, r3, r1 1093 0064 2169 ldr r1, [r4, #16] 1094 0066 01F00201 and r1, r1, #2 1095 006a 0B43 orrs r3, r3, r1 1096 006c 6169 ldr r1, [r4, #20] 1097 006e 01F00101 and r1, r1, #1 1098 0072 0B43 orrs r3, r3, r1 1099 0074 A169 ldr r1, [r4, #24] 1100 0076 01F40071 and r1, r1, #512 1101 007a 0B43 orrs r3, r3, r1 1102 007c E169 ldr r1, [r4, #28] 1103 007e 01F03801 and r1, r1, #56 1104 0082 0B43 orrs r3, r3, r1 1105 0084 216A ldr r1, [r4, #32] 1106 0086 01F08001 and r1, r1, #128 1107 008a 0B43 orrs r3, r3, r1 1108 008c A16A ldr r1, [r4, #40] 1109 008e 01F40051 and r1, r1, #8192 1110 0092 2068 ldr r0, [r4] 1111 0094 0B43 orrs r3, r3, r1 1112 0096 0360 str r3, [r0] 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.TIMode & SPI_CR2_FRF) | 1113 .loc 1 459 3 view .LVU322 1114 0098 638B ldrh r3, [r4, #26] 1115 009a 03F00403 and r3, r3, #4 1116 009e 616A ldr r1, [r4, #36] 1117 00a0 01F01001 and r1, r1, #16 1118 00a4 0B43 orrs r3, r3, r1 1119 00a6 616B ldr r1, [r4, #52] 1120 00a8 01F00801 and r1, r1, #8 1121 00ac 0B43 orrs r3, r3, r1 1122 00ae E168 ldr r1, [r4, #12] 1123 00b0 01F47061 and r1, r1, #3840 ARM GAS /tmp/ccywxtmH.s page 101 1124 00b4 0B43 orrs r3, r3, r1 1125 00b6 2168 ldr r1, [r4] 1126 00b8 1A43 orrs r2, r2, r3 1127 .LVL58: 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.TIMode & SPI_CR2_FRF) | 1128 .loc 1 459 3 is_stmt 0 view .LVU323 1129 00ba 4A60 str r2, [r1, #4] 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* SPI_I2SCFGR_I2SMOD */ 1130 .loc 1 476 3 is_stmt 1 view .LVU324 1131 00bc 2268 ldr r2, [r4] 1132 00be D369 ldr r3, [r2, #28] 1133 00c0 23F40063 bic r3, r3, #2048 1134 00c4 D361 str r3, [r2, #28] 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1135 .loc 1 479 3 view .LVU325 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1136 .loc 1 479 19 is_stmt 0 view .LVU326 1137 00c6 0020 movs r0, #0 1138 00c8 2066 str r0, [r4, #96] 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1139 .loc 1 480 3 is_stmt 1 view .LVU327 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1140 .loc 1 480 19 is_stmt 0 view .LVU328 1141 00ca 0123 movs r3, #1 1142 00cc 84F85D30 strb r3, [r4, #93] 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1143 .loc 1 482 3 is_stmt 1 view .LVU329 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1144 .loc 1 483 1 is_stmt 0 view .LVU330 1145 00d0 10BD pop {r4, pc} 1146 .LVL59: 1147 .L94: 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1148 .loc 1 373 5 is_stmt 1 view .LVU331 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1149 .loc 1 373 16 is_stmt 0 view .LVU332 1150 00d2 84F85C30 strb r3, [r4, #92] 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1151 .loc 1 395 5 is_stmt 1 view .LVU333 1152 00d6 2046 mov r0, r4 1153 .LVL60: 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1154 .loc 1 395 5 is_stmt 0 view .LVU334 1155 00d8 FFF7FEFF bl HAL_SPI_MspInit 1156 .LVL61: 1157 00dc A6E7 b .L85 1158 .L89: 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1159 .loc 1 411 11 view .LVU335 1160 00de 4FF48052 mov r2, #4096 1161 00e2 B0E7 b .L86 1162 .LVL62: 1163 .L88: 1164 .cfi_def_cfa_offset 0 1165 .cfi_restore 4 1166 .cfi_restore 14 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 102 1167 .loc 1 323 12 view .LVU336 1168 00e4 0120 movs r0, #1 1169 .LVL63: 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1170 .loc 1 483 1 view .LVU337 1171 00e6 7047 bx lr 1172 .cfi_endproc 1173 .LFE130: 1175 .section .text.HAL_SPI_MspDeInit,"ax",%progbits 1176 .align 1 1177 .weak HAL_SPI_MspDeInit 1178 .syntax unified 1179 .thumb 1180 .thumb_func 1182 HAL_SPI_MspDeInit: 1183 .LVL64: 1184 .LFB133: 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 1185 .loc 1 552 1 is_stmt 1 view -0 1186 .cfi_startproc 1187 @ args = 0, pretend = 0, frame = 0 1188 @ frame_needed = 0, uses_anonymous_args = 0 1189 @ link register save eliminated. 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1190 .loc 1 554 3 view .LVU339 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1191 .loc 1 559 1 is_stmt 0 view .LVU340 1192 0000 7047 bx lr 1193 .cfi_endproc 1194 .LFE133: 1196 .section .text.HAL_SPI_DeInit,"ax",%progbits 1197 .align 1 1198 .global HAL_SPI_DeInit 1199 .syntax unified 1200 .thumb 1201 .thumb_func 1203 HAL_SPI_DeInit: 1204 .LVL65: 1205 .LFB131: 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 1206 .loc 1 492 1 is_stmt 1 view -0 1207 .cfi_startproc 1208 @ args = 0, pretend = 0, frame = 0 1209 @ frame_needed = 0, uses_anonymous_args = 0 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1210 .loc 1 494 3 view .LVU342 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1211 .loc 1 494 6 is_stmt 0 view .LVU343 1212 0000 90B1 cbz r0, .L98 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 1213 .loc 1 492 1 view .LVU344 1214 0002 10B5 push {r4, lr} 1215 .cfi_def_cfa_offset 8 1216 .cfi_offset 4, -8 1217 .cfi_offset 14, -4 1218 0004 0446 mov r4, r0 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 103 1219 .loc 1 500 3 is_stmt 1 view .LVU345 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1220 .loc 1 502 3 view .LVU346 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1221 .loc 1 502 15 is_stmt 0 view .LVU347 1222 0006 0223 movs r3, #2 1223 0008 80F85D30 strb r3, [r0, #93] 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1224 .loc 1 505 3 is_stmt 1 view .LVU348 1225 000c 0268 ldr r2, [r0] 1226 000e 1368 ldr r3, [r2] 1227 0010 23F04003 bic r3, r3, #64 1228 0014 1360 str r3, [r2] 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1229 .loc 1 517 3 view .LVU349 1230 0016 FFF7FEFF bl HAL_SPI_MspDeInit 1231 .LVL66: 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 1232 .loc 1 520 3 view .LVU350 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 1233 .loc 1 520 19 is_stmt 0 view .LVU351 1234 001a 0020 movs r0, #0 1235 001c 2066 str r0, [r4, #96] 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1236 .loc 1 521 3 is_stmt 1 view .LVU352 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1237 .loc 1 521 15 is_stmt 0 view .LVU353 1238 001e 84F85D00 strb r0, [r4, #93] 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1239 .loc 1 524 3 is_stmt 1 view .LVU354 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1240 .loc 1 524 3 view .LVU355 1241 0022 84F85C00 strb r0, [r4, #92] 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1242 .loc 1 524 3 view .LVU356 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1243 .loc 1 526 3 view .LVU357 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1244 .loc 1 527 1 is_stmt 0 view .LVU358 1245 0026 10BD pop {r4, pc} 1246 .LVL67: 1247 .L98: 1248 .cfi_def_cfa_offset 0 1249 .cfi_restore 4 1250 .cfi_restore 14 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1251 .loc 1 496 12 view .LVU359 1252 0028 0120 movs r0, #1 1253 .LVL68: 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1254 .loc 1 527 1 view .LVU360 1255 002a 7047 bx lr 1256 .cfi_endproc 1257 .LFE131: 1259 .section .text.HAL_SPI_Transmit,"ax",%progbits 1260 .align 1 1261 .global HAL_SPI_Transmit ARM GAS /tmp/ccywxtmH.s page 104 1262 .syntax unified 1263 .thumb 1264 .thumb_func 1266 HAL_SPI_Transmit: 1267 .LVL69: 1268 .LFB134: 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1269 .loc 1 824 1 is_stmt 1 view -0 1270 .cfi_startproc 1271 @ args = 0, pretend = 0, frame = 8 1272 @ frame_needed = 0, uses_anonymous_args = 0 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1273 .loc 1 824 1 is_stmt 0 view .LVU362 1274 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 1275 .cfi_def_cfa_offset 28 1276 .cfi_offset 4, -28 1277 .cfi_offset 5, -24 1278 .cfi_offset 6, -20 1279 .cfi_offset 7, -16 1280 .cfi_offset 8, -12 1281 .cfi_offset 9, -8 1282 .cfi_offset 14, -4 1283 0004 83B0 sub sp, sp, #12 1284 .cfi_def_cfa_offset 40 1285 0006 1D46 mov r5, r3 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1286 .loc 1 825 3 is_stmt 1 view .LVU363 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1287 .loc 1 826 3 view .LVU364 1288 .LVL70: 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1289 .loc 1 827 3 view .LVU365 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1290 .loc 1 830 3 view .LVU366 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1291 .loc 1 833 3 view .LVU367 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1292 .loc 1 833 3 view .LVU368 1293 0008 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 1294 .LVL71: 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1295 .loc 1 833 3 is_stmt 0 view .LVU369 1296 000c 012B cmp r3, #1 1297 000e 00F0F680 beq .L128 1298 0012 0446 mov r4, r0 1299 0014 8846 mov r8, r1 1300 0016 9146 mov r9, r2 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1301 .loc 1 833 3 is_stmt 1 discriminator 2 view .LVU370 1302 0018 0123 movs r3, #1 1303 001a 80F85C30 strb r3, [r0, #92] 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1304 .loc 1 833 3 discriminator 2 view .LVU371 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1305 .loc 1 836 3 discriminator 2 view .LVU372 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1306 .loc 1 836 15 is_stmt 0 discriminator 2 view .LVU373 ARM GAS /tmp/ccywxtmH.s page 105 1307 001e FFF7FEFF bl HAL_GetTick 1308 .LVL72: 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1309 .loc 1 836 15 discriminator 2 view .LVU374 1310 0022 0746 mov r7, r0 1311 .LVL73: 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1312 .loc 1 837 3 is_stmt 1 discriminator 2 view .LVU375 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1313 .loc 1 839 3 discriminator 2 view .LVU376 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1314 .loc 1 839 11 is_stmt 0 discriminator 2 view .LVU377 1315 0024 94F85D60 ldrb r6, [r4, #93] @ zero_extendqisi2 1316 0028 F6B2 uxtb r6, r6 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1317 .loc 1 839 6 discriminator 2 view .LVU378 1318 002a 012E cmp r6, #1 1319 002c 40F0D480 bne .L129 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1320 .loc 1 845 3 is_stmt 1 view .LVU379 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1321 .loc 1 845 6 is_stmt 0 view .LVU380 1322 0030 B8F1000F cmp r8, #0 1323 0034 00F0D180 beq .L105 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1324 .loc 1 845 23 discriminator 1 view .LVU381 1325 0038 B9F1000F cmp r9, #0 1326 003c 00F0CD80 beq .L105 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1327 .loc 1 852 3 is_stmt 1 view .LVU382 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1328 .loc 1 852 21 is_stmt 0 view .LVU383 1329 0040 0323 movs r3, #3 1330 0042 84F85D30 strb r3, [r4, #93] 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1331 .loc 1 853 3 is_stmt 1 view .LVU384 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1332 .loc 1 853 21 is_stmt 0 view .LVU385 1333 0046 0023 movs r3, #0 1334 0048 2366 str r3, [r4, #96] 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1335 .loc 1 854 3 is_stmt 1 view .LVU386 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1336 .loc 1 854 21 is_stmt 0 view .LVU387 1337 004a C4F83880 str r8, [r4, #56] 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1338 .loc 1 855 3 is_stmt 1 view .LVU388 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1339 .loc 1 855 21 is_stmt 0 view .LVU389 1340 004e A4F83C90 strh r9, [r4, #60] @ movhi 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1341 .loc 1 856 3 is_stmt 1 view .LVU390 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1342 .loc 1 856 21 is_stmt 0 view .LVU391 1343 0052 A4F83E90 strh r9, [r4, #62] @ movhi 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1344 .loc 1 859 3 is_stmt 1 view .LVU392 ARM GAS /tmp/ccywxtmH.s page 106 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1345 .loc 1 859 21 is_stmt 0 view .LVU393 1346 0056 2364 str r3, [r4, #64] 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1347 .loc 1 860 3 is_stmt 1 view .LVU394 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1348 .loc 1 860 21 is_stmt 0 view .LVU395 1349 0058 A4F84430 strh r3, [r4, #68] @ movhi 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1350 .loc 1 861 3 is_stmt 1 view .LVU396 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1351 .loc 1 861 21 is_stmt 0 view .LVU397 1352 005c A4F84630 strh r3, [r4, #70] @ movhi 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1353 .loc 1 862 3 is_stmt 1 view .LVU398 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1354 .loc 1 862 21 is_stmt 0 view .LVU399 1355 0060 2365 str r3, [r4, #80] 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1356 .loc 1 863 3 is_stmt 1 view .LVU400 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1357 .loc 1 863 21 is_stmt 0 view .LVU401 1358 0062 E364 str r3, [r4, #76] 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1359 .loc 1 866 3 is_stmt 1 view .LVU402 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1360 .loc 1 866 17 is_stmt 0 view .LVU403 1361 0064 A368 ldr r3, [r4, #8] 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1362 .loc 1 866 6 view .LVU404 1363 0066 B3F5004F cmp r3, #32768 1364 006a 1ED0 beq .L135 1365 .L106: 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1366 .loc 1 882 3 is_stmt 1 view .LVU405 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1367 .loc 1 882 12 is_stmt 0 view .LVU406 1368 006c 2368 ldr r3, [r4] 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1369 .loc 1 882 22 view .LVU407 1370 006e 1A68 ldr r2, [r3] 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1371 .loc 1 882 6 view .LVU408 1372 0070 12F0400F tst r2, #64 1373 0074 03D1 bne .L107 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1374 .loc 1 885 5 is_stmt 1 view .LVU409 1375 0076 1A68 ldr r2, [r3] 1376 0078 42F04002 orr r2, r2, #64 1377 007c 1A60 str r2, [r3] 1378 .L107: 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1379 .loc 1 889 3 view .LVU410 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1380 .loc 1 889 17 is_stmt 0 view .LVU411 1381 007e E368 ldr r3, [r4, #12] 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 107 1382 .loc 1 889 6 view .LVU412 1383 0080 B3F5E06F cmp r3, #1792 1384 0084 42D9 bls .L108 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1385 .loc 1 891 5 is_stmt 1 view .LVU413 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1386 .loc 1 891 20 is_stmt 0 view .LVU414 1387 0086 6368 ldr r3, [r4, #4] 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1388 .loc 1 891 8 view .LVU415 1389 0088 13B1 cbz r3, .L109 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1390 .loc 1 891 45 discriminator 1 view .LVU416 1391 008a B9F1010F cmp r9, #1 1392 008e 23D1 bne .L111 1393 .L109: 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1394 .loc 1 893 7 is_stmt 1 view .LVU417 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1395 .loc 1 893 46 is_stmt 0 view .LVU418 1396 0090 A26B ldr r2, [r4, #56] 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1397 .loc 1 893 11 view .LVU419 1398 0092 2368 ldr r3, [r4] 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1399 .loc 1 893 28 view .LVU420 1400 0094 1288 ldrh r2, [r2] 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1401 .loc 1 893 26 view .LVU421 1402 0096 DA60 str r2, [r3, #12] 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1403 .loc 1 894 7 is_stmt 1 view .LVU422 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1404 .loc 1 894 11 is_stmt 0 view .LVU423 1405 0098 A36B ldr r3, [r4, #56] 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1406 .loc 1 894 24 view .LVU424 1407 009a 0233 adds r3, r3, #2 1408 009c A363 str r3, [r4, #56] 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1409 .loc 1 895 7 is_stmt 1 view .LVU425 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1410 .loc 1 895 11 is_stmt 0 view .LVU426 1411 009e E38F ldrh r3, [r4, #62] 1412 00a0 9BB2 uxth r3, r3 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1413 .loc 1 895 24 view .LVU427 1414 00a2 013B subs r3, r3, #1 1415 00a4 9BB2 uxth r3, r3 1416 00a6 E387 strh r3, [r4, #62] @ movhi 1417 00a8 16E0 b .L111 1418 .L135: 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1419 .loc 1 869 5 is_stmt 1 view .LVU428 1420 00aa 2268 ldr r2, [r4] 1421 00ac 1368 ldr r3, [r2] 1422 00ae 23F04003 bic r3, r3, #64 ARM GAS /tmp/ccywxtmH.s page 108 1423 00b2 1360 str r3, [r2] 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1424 .loc 1 870 5 view .LVU429 1425 00b4 2268 ldr r2, [r4] 1426 00b6 1368 ldr r3, [r2] 1427 00b8 43F48043 orr r3, r3, #16384 1428 00bc 1360 str r3, [r2] 1429 00be D5E7 b .L106 1430 .LVL74: 1431 .L112: 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1432 .loc 1 910 9 view .LVU430 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1433 .loc 1 910 16 is_stmt 0 view .LVU431 1434 00c0 FFF7FEFF bl HAL_GetTick 1435 .LVL75: 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1436 .loc 1 910 30 view .LVU432 1437 00c4 C01B subs r0, r0, r7 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1438 .loc 1 910 12 view .LVU433 1439 00c6 A842 cmp r0, r5 1440 00c8 03D3 bcc .L114 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1441 .loc 1 910 56 discriminator 1 view .LVU434 1442 00ca B5F1FF3F cmp r5, #-1 1443 00ce 40F08E80 bne .L130 1444 .L114: 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1445 .loc 1 910 87 discriminator 3 view .LVU435 1446 00d2 002D cmp r5, #0 1447 00d4 00F08D80 beq .L131 1448 .L111: 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1449 .loc 1 898 30 is_stmt 1 view .LVU436 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1450 .loc 1 898 16 is_stmt 0 view .LVU437 1451 00d8 E38F ldrh r3, [r4, #62] 1452 00da 9BB2 uxth r3, r3 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1453 .loc 1 898 30 view .LVU438 1454 00dc 002B cmp r3, #0 1455 00de 66D0 beq .L116 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1456 .loc 1 901 7 is_stmt 1 view .LVU439 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1457 .loc 1 901 11 is_stmt 0 view .LVU440 1458 00e0 2368 ldr r3, [r4] 1459 00e2 9A68 ldr r2, [r3, #8] 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1460 .loc 1 901 10 view .LVU441 1461 00e4 12F0020F tst r2, #2 1462 00e8 EAD0 beq .L112 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1463 .loc 1 903 9 is_stmt 1 view .LVU442 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1464 .loc 1 903 48 is_stmt 0 view .LVU443 ARM GAS /tmp/ccywxtmH.s page 109 1465 00ea A26B ldr r2, [r4, #56] 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1466 .loc 1 903 30 view .LVU444 1467 00ec 1288 ldrh r2, [r2] 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1468 .loc 1 903 28 view .LVU445 1469 00ee DA60 str r2, [r3, #12] 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1470 .loc 1 904 9 is_stmt 1 view .LVU446 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1471 .loc 1 904 13 is_stmt 0 view .LVU447 1472 00f0 A36B ldr r3, [r4, #56] 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1473 .loc 1 904 26 view .LVU448 1474 00f2 0233 adds r3, r3, #2 1475 00f4 A363 str r3, [r4, #56] 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1476 .loc 1 905 9 is_stmt 1 view .LVU449 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1477 .loc 1 905 13 is_stmt 0 view .LVU450 1478 00f6 B4F83EC0 ldrh ip, [r4, #62] 1479 00fa 1FFA8CFC uxth ip, ip 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1480 .loc 1 905 26 view .LVU451 1481 00fe 0CF1FF3C add ip, ip, #-1 1482 0102 1FFA8CFC uxth ip, ip 1483 0106 A4F83EC0 strh ip, [r4, #62] @ movhi 1484 010a E5E7 b .L111 1485 .LVL76: 1486 .L108: 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1487 .loc 1 921 5 is_stmt 1 view .LVU452 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1488 .loc 1 921 20 is_stmt 0 view .LVU453 1489 010c 6368 ldr r3, [r4, #4] 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1490 .loc 1 921 8 view .LVU454 1491 010e 13B1 cbz r3, .L117 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1492 .loc 1 921 45 discriminator 1 view .LVU455 1493 0110 B9F1010F cmp r9, #1 1494 0114 33D1 bne .L120 1495 .L117: 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1496 .loc 1 923 7 is_stmt 1 view .LVU456 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1497 .loc 1 923 15 is_stmt 0 view .LVU457 1498 0116 E38F ldrh r3, [r4, #62] 1499 0118 9BB2 uxth r3, r3 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1500 .loc 1 923 10 view .LVU458 1501 011a 012B cmp r3, #1 1502 011c 0CD9 bls .L119 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1503 .loc 1 926 9 is_stmt 1 view .LVU459 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1504 .loc 1 926 48 is_stmt 0 view .LVU460 ARM GAS /tmp/ccywxtmH.s page 110 1505 011e A26B ldr r2, [r4, #56] 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1506 .loc 1 926 13 view .LVU461 1507 0120 2368 ldr r3, [r4] 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1508 .loc 1 926 30 view .LVU462 1509 0122 1288 ldrh r2, [r2] 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1510 .loc 1 926 28 view .LVU463 1511 0124 DA60 str r2, [r3, #12] 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1512 .loc 1 927 9 is_stmt 1 view .LVU464 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1513 .loc 1 927 13 is_stmt 0 view .LVU465 1514 0126 A36B ldr r3, [r4, #56] 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1515 .loc 1 927 26 view .LVU466 1516 0128 0233 adds r3, r3, #2 1517 012a A363 str r3, [r4, #56] 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1518 .loc 1 928 9 is_stmt 1 view .LVU467 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1519 .loc 1 928 13 is_stmt 0 view .LVU468 1520 012c E38F ldrh r3, [r4, #62] 1521 012e 9BB2 uxth r3, r3 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1522 .loc 1 928 27 view .LVU469 1523 0130 023B subs r3, r3, #2 1524 0132 9BB2 uxth r3, r3 1525 0134 E387 strh r3, [r4, #62] @ movhi 1526 0136 22E0 b .L120 1527 .L119: 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1528 .loc 1 932 9 is_stmt 1 view .LVU470 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1529 .loc 1 932 56 is_stmt 0 view .LVU471 1530 0138 A26B ldr r2, [r4, #56] 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1531 .loc 1 932 32 view .LVU472 1532 013a 2368 ldr r3, [r4] 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1533 .loc 1 932 51 view .LVU473 1534 013c 1278 ldrb r2, [r2] @ zero_extendqisi2 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1535 .loc 1 932 48 view .LVU474 1536 013e 1A73 strb r2, [r3, #12] 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1537 .loc 1 933 9 is_stmt 1 view .LVU475 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1538 .loc 1 933 13 is_stmt 0 view .LVU476 1539 0140 A36B ldr r3, [r4, #56] 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1540 .loc 1 933 26 view .LVU477 1541 0142 0133 adds r3, r3, #1 1542 0144 A363 str r3, [r4, #56] 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1543 .loc 1 934 9 is_stmt 1 view .LVU478 ARM GAS /tmp/ccywxtmH.s page 111 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1544 .loc 1 934 13 is_stmt 0 view .LVU479 1545 0146 E38F ldrh r3, [r4, #62] 1546 0148 9BB2 uxth r3, r3 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1547 .loc 1 934 26 view .LVU480 1548 014a 013B subs r3, r3, #1 1549 014c 9BB2 uxth r3, r3 1550 014e E387 strh r3, [r4, #62] @ movhi 1551 0150 15E0 b .L120 1552 .LVL77: 1553 .L122: 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1554 .loc 1 951 11 is_stmt 1 view .LVU481 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1555 .loc 1 951 58 is_stmt 0 view .LVU482 1556 0152 A36B ldr r3, [r4, #56] 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1557 .loc 1 951 53 view .LVU483 1558 0154 1B78 ldrb r3, [r3] @ zero_extendqisi2 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1559 .loc 1 951 50 view .LVU484 1560 0156 1373 strb r3, [r2, #12] 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1561 .loc 1 952 11 is_stmt 1 view .LVU485 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1562 .loc 1 952 15 is_stmt 0 view .LVU486 1563 0158 A36B ldr r3, [r4, #56] 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1564 .loc 1 952 27 view .LVU487 1565 015a 0133 adds r3, r3, #1 1566 015c A363 str r3, [r4, #56] 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1567 .loc 1 953 11 is_stmt 1 view .LVU488 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1568 .loc 1 953 15 is_stmt 0 view .LVU489 1569 015e E38F ldrh r3, [r4, #62] 1570 0160 9BB2 uxth r3, r3 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1571 .loc 1 953 28 view .LVU490 1572 0162 013B subs r3, r3, #1 1573 0164 9BB2 uxth r3, r3 1574 0166 E387 strh r3, [r4, #62] @ movhi 1575 0168 09E0 b .L120 1576 .L121: 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1577 .loc 1 959 9 is_stmt 1 view .LVU491 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1578 .loc 1 959 16 is_stmt 0 view .LVU492 1579 016a FFF7FEFF bl HAL_GetTick 1580 .LVL78: 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1581 .loc 1 959 30 view .LVU493 1582 016e C01B subs r0, r0, r7 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1583 .loc 1 959 12 view .LVU494 1584 0170 A842 cmp r0, r5 ARM GAS /tmp/ccywxtmH.s page 112 1585 0172 02D3 bcc .L124 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1586 .loc 1 959 56 discriminator 1 view .LVU495 1587 0174 B5F1FF3F cmp r5, #-1 1588 0178 3DD1 bne .L132 1589 .L124: 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1590 .loc 1 959 87 discriminator 3 view .LVU496 1591 017a 002D cmp r5, #0 1592 017c 3DD0 beq .L133 1593 .L120: 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1594 .loc 1 937 30 is_stmt 1 view .LVU497 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1595 .loc 1 937 16 is_stmt 0 view .LVU498 1596 017e E38F ldrh r3, [r4, #62] 1597 0180 9BB2 uxth r3, r3 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1598 .loc 1 937 30 view .LVU499 1599 0182 A3B1 cbz r3, .L116 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1600 .loc 1 940 7 is_stmt 1 view .LVU500 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1601 .loc 1 940 11 is_stmt 0 view .LVU501 1602 0184 2268 ldr r2, [r4] 1603 0186 9368 ldr r3, [r2, #8] 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1604 .loc 1 940 10 view .LVU502 1605 0188 13F0020F tst r3, #2 1606 018c EDD0 beq .L121 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1607 .loc 1 942 9 is_stmt 1 view .LVU503 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1608 .loc 1 942 17 is_stmt 0 view .LVU504 1609 018e E38F ldrh r3, [r4, #62] 1610 0190 9BB2 uxth r3, r3 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1611 .loc 1 942 12 view .LVU505 1612 0192 012B cmp r3, #1 1613 0194 DDD9 bls .L122 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1614 .loc 1 945 11 is_stmt 1 view .LVU506 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1615 .loc 1 945 50 is_stmt 0 view .LVU507 1616 0196 A36B ldr r3, [r4, #56] 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1617 .loc 1 945 32 view .LVU508 1618 0198 1B88 ldrh r3, [r3] 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1619 .loc 1 945 30 view .LVU509 1620 019a D360 str r3, [r2, #12] 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1621 .loc 1 946 11 is_stmt 1 view .LVU510 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1622 .loc 1 946 15 is_stmt 0 view .LVU511 1623 019c A36B ldr r3, [r4, #56] 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; ARM GAS /tmp/ccywxtmH.s page 113 1624 .loc 1 946 28 view .LVU512 1625 019e 0233 adds r3, r3, #2 1626 01a0 A363 str r3, [r4, #56] 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1627 .loc 1 947 11 is_stmt 1 view .LVU513 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1628 .loc 1 947 15 is_stmt 0 view .LVU514 1629 01a2 E38F ldrh r3, [r4, #62] 1630 01a4 9BB2 uxth r3, r3 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1631 .loc 1 947 29 view .LVU515 1632 01a6 023B subs r3, r3, #2 1633 01a8 9BB2 uxth r3, r3 1634 01aa E387 strh r3, [r4, #62] @ movhi 1635 01ac E7E7 b .L120 1636 .L116: 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1637 .loc 1 976 3 is_stmt 1 view .LVU516 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1638 .loc 1 976 7 is_stmt 0 view .LVU517 1639 01ae 3A46 mov r2, r7 1640 01b0 2946 mov r1, r5 1641 01b2 2046 mov r0, r4 1642 01b4 FFF7FEFF bl SPI_EndRxTxTransaction 1643 .LVL79: 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1644 .loc 1 976 6 view .LVU518 1645 01b8 08B1 cbz r0, .L126 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1646 .loc 1 978 5 is_stmt 1 view .LVU519 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1647 .loc 1 978 21 is_stmt 0 view .LVU520 1648 01ba 2023 movs r3, #32 1649 01bc 2366 str r3, [r4, #96] 1650 .L126: 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1651 .loc 1 982 3 is_stmt 1 view .LVU521 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1652 .loc 1 982 17 is_stmt 0 view .LVU522 1653 01be A368 ldr r3, [r4, #8] 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1654 .loc 1 982 6 view .LVU523 1655 01c0 33B9 cbnz r3, .L127 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1656 .loc 1 984 5 is_stmt 1 view .LVU524 1657 .LBB2: 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1658 .loc 1 984 5 view .LVU525 1659 01c2 0193 str r3, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1660 .loc 1 984 5 view .LVU526 1661 01c4 2368 ldr r3, [r4] 1662 01c6 DA68 ldr r2, [r3, #12] 1663 01c8 0192 str r2, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1664 .loc 1 984 5 view .LVU527 1665 01ca 9B68 ldr r3, [r3, #8] ARM GAS /tmp/ccywxtmH.s page 114 1666 01cc 0193 str r3, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1667 .loc 1 984 5 view .LVU528 1668 01ce 019B ldr r3, [sp, #4] 1669 .L127: 1670 .LBE2: 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1671 .loc 1 984 5 discriminator 1 view .LVU529 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1672 .loc 1 987 3 discriminator 1 view .LVU530 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1673 .loc 1 987 11 is_stmt 0 discriminator 1 view .LVU531 1674 01d0 236E ldr r3, [r4, #96] 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1675 .loc 1 987 6 discriminator 1 view .LVU532 1676 01d2 13B9 cbnz r3, .L105 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1677 .loc 1 826 21 view .LVU533 1678 01d4 0026 movs r6, #0 1679 01d6 00E0 b .L105 1680 .LVL80: 1681 .L129: 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1682 .loc 1 841 15 view .LVU534 1683 01d8 0226 movs r6, #2 1684 .LVL81: 1685 .L105: 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1686 .loc 1 993 3 is_stmt 1 view .LVU535 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1687 .loc 1 993 15 is_stmt 0 view .LVU536 1688 01da 0123 movs r3, #1 1689 01dc 84F85D30 strb r3, [r4, #93] 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1690 .loc 1 995 3 is_stmt 1 view .LVU537 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1691 .loc 1 995 3 view .LVU538 1692 01e0 0023 movs r3, #0 1693 01e2 84F85C30 strb r3, [r4, #92] 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1694 .loc 1 995 3 view .LVU539 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1695 .loc 1 996 3 view .LVU540 1696 .LVL82: 1697 .L104: 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1698 .loc 1 997 1 is_stmt 0 view .LVU541 1699 01e6 3046 mov r0, r6 1700 01e8 03B0 add sp, sp, #12 1701 .cfi_remember_state 1702 .cfi_def_cfa_offset 28 1703 @ sp needed 1704 01ea BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 1705 .LVL83: 1706 .L130: 1707 .cfi_restore_state 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; ARM GAS /tmp/ccywxtmH.s page 115 1708 .loc 1 912 21 view .LVU542 1709 01ee 0326 movs r6, #3 1710 01f0 F3E7 b .L105 1711 .L131: 1712 01f2 0326 movs r6, #3 1713 01f4 F1E7 b .L105 1714 .L132: 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1715 .loc 1 961 21 view .LVU543 1716 01f6 0326 movs r6, #3 1717 01f8 EFE7 b .L105 1718 .L133: 1719 01fa 0326 movs r6, #3 1720 01fc EDE7 b .L105 1721 .LVL84: 1722 .L128: 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1723 .loc 1 833 3 view .LVU544 1724 01fe 0226 movs r6, #2 1725 0200 F1E7 b .L104 1726 .cfi_endproc 1727 .LFE134: 1729 .section .text.HAL_SPI_TransmitReceive,"ax",%progbits 1730 .align 1 1731 .global HAL_SPI_TransmitReceive 1732 .syntax unified 1733 .thumb 1734 .thumb_func 1736 HAL_SPI_TransmitReceive: 1737 .LVL85: 1738 .LFB136: 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1739 .loc 1 1250 1 is_stmt 1 view -0 1740 .cfi_startproc 1741 @ args = 4, pretend = 0, frame = 0 1742 @ frame_needed = 0, uses_anonymous_args = 0 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1743 .loc 1 1250 1 is_stmt 0 view .LVU546 1744 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 1745 .cfi_def_cfa_offset 32 1746 .cfi_offset 3, -32 1747 .cfi_offset 4, -28 1748 .cfi_offset 5, -24 1749 .cfi_offset 6, -20 1750 .cfi_offset 7, -16 1751 .cfi_offset 8, -12 1752 .cfi_offset 9, -8 1753 .cfi_offset 14, -4 1754 0004 1F46 mov r7, r3 1755 0006 089D ldr r5, [sp, #32] 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_RxXferCount; 1756 .loc 1 1251 3 is_stmt 1 view .LVU547 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1757 .loc 1 1252 3 view .LVU548 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1758 .loc 1 1253 3 view .LVU549 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; ARM GAS /tmp/ccywxtmH.s page 116 1759 .loc 1 1254 3 view .LVU550 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1760 .loc 1 1255 3 view .LVU551 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1761 .loc 1 1265 3 view .LVU552 1762 .LVL86: 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1763 .loc 1 1266 3 view .LVU553 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1764 .loc 1 1269 3 view .LVU554 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1765 .loc 1 1272 3 view .LVU555 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1766 .loc 1 1272 3 view .LVU556 1767 0008 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 1768 .LVL87: 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1769 .loc 1 1272 3 is_stmt 0 view .LVU557 1770 000c 012B cmp r3, #1 1771 000e 00F06481 beq .L163 1772 0012 0446 mov r4, r0 1773 0014 8846 mov r8, r1 1774 0016 9146 mov r9, r2 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1775 .loc 1 1272 3 is_stmt 1 discriminator 2 view .LVU558 1776 0018 0123 movs r3, #1 1777 001a 80F85C30 strb r3, [r0, #92] 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1778 .loc 1 1272 3 discriminator 2 view .LVU559 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1779 .loc 1 1275 3 discriminator 2 view .LVU560 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1780 .loc 1 1275 15 is_stmt 0 discriminator 2 view .LVU561 1781 001e FFF7FEFF bl HAL_GetTick 1782 .LVL88: 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1783 .loc 1 1275 15 discriminator 2 view .LVU562 1784 0022 0646 mov r6, r0 1785 .LVL89: 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1786 .loc 1 1278 3 is_stmt 1 discriminator 2 view .LVU563 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1787 .loc 1 1278 23 is_stmt 0 discriminator 2 view .LVU564 1788 0024 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 1789 0028 DBB2 uxtb r3, r3 1790 .LVL90: 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1791 .loc 1 1279 3 is_stmt 1 discriminator 2 view .LVU565 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1792 .loc 1 1279 23 is_stmt 0 discriminator 2 view .LVU566 1793 002a 6268 ldr r2, [r4, #4] 1794 .LVL91: 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_RxXferCount = Size; 1795 .loc 1 1280 3 is_stmt 1 discriminator 2 view .LVU567 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1796 .loc 1 1281 3 discriminator 2 view .LVU568 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st ARM GAS /tmp/ccywxtmH.s page 117 1797 .loc 1 1287 3 discriminator 2 view .LVU569 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1798 .loc 1 1287 6 is_stmt 0 discriminator 2 view .LVU570 1799 002c 012B cmp r3, #1 1800 002e 0AD0 beq .L138 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1801 .loc 1 1287 7 discriminator 1 view .LVU571 1802 0030 B2F5827F cmp r2, #260 1803 0034 40F03881 bne .L164 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1804 .loc 1 1288 54 view .LVU572 1805 0038 A268 ldr r2, [r4, #8] 1806 .LVL92: 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1807 .loc 1 1288 40 view .LVU573 1808 003a 002A cmp r2, #0 1809 003c 40F03D81 bne .L165 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1810 .loc 1 1288 90 discriminator 1 view .LVU574 1811 0040 042B cmp r3, #4 1812 0042 40F03C81 bne .L166 1813 .L138: 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1814 .loc 1 1294 3 is_stmt 1 view .LVU575 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1815 .loc 1 1294 6 is_stmt 0 view .LVU576 1816 0046 B8F1000F cmp r8, #0 1817 004a 00F03A81 beq .L167 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1818 .loc 1 1294 25 discriminator 1 view .LVU577 1819 004e B9F1000F cmp r9, #0 1820 0052 00F03881 beq .L168 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1821 .loc 1 1294 46 discriminator 2 view .LVU578 1822 0056 002F cmp r7, #0 1823 0058 00F03781 beq .L169 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1824 .loc 1 1301 3 is_stmt 1 view .LVU579 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1825 .loc 1 1301 11 is_stmt 0 view .LVU580 1826 005c 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 1827 .LVL93: 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1828 .loc 1 1301 11 view .LVU581 1829 0060 DBB2 uxtb r3, r3 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1830 .loc 1 1301 6 view .LVU582 1831 0062 042B cmp r3, #4 1832 0064 02D0 beq .L140 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1833 .loc 1 1303 5 is_stmt 1 view .LVU583 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1834 .loc 1 1303 17 is_stmt 0 view .LVU584 1835 0066 0523 movs r3, #5 1836 0068 84F85D30 strb r3, [r4, #93] 1837 .L140: 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; ARM GAS /tmp/ccywxtmH.s page 118 1838 .loc 1 1307 3 is_stmt 1 view .LVU585 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1839 .loc 1 1307 21 is_stmt 0 view .LVU586 1840 006c 0023 movs r3, #0 1841 006e 2366 str r3, [r4, #96] 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1842 .loc 1 1308 3 is_stmt 1 view .LVU587 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1843 .loc 1 1308 21 is_stmt 0 view .LVU588 1844 0070 C4F84090 str r9, [r4, #64] 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1845 .loc 1 1309 3 is_stmt 1 view .LVU589 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1846 .loc 1 1309 21 is_stmt 0 view .LVU590 1847 0074 A4F84670 strh r7, [r4, #70] @ movhi 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1848 .loc 1 1310 3 is_stmt 1 view .LVU591 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1849 .loc 1 1310 21 is_stmt 0 view .LVU592 1850 0078 A4F84470 strh r7, [r4, #68] @ movhi 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1851 .loc 1 1311 3 is_stmt 1 view .LVU593 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1852 .loc 1 1311 21 is_stmt 0 view .LVU594 1853 007c C4F83880 str r8, [r4, #56] 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1854 .loc 1 1312 3 is_stmt 1 view .LVU595 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1855 .loc 1 1312 21 is_stmt 0 view .LVU596 1856 0080 E787 strh r7, [r4, #62] @ movhi 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1857 .loc 1 1313 3 is_stmt 1 view .LVU597 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1858 .loc 1 1313 21 is_stmt 0 view .LVU598 1859 0082 A787 strh r7, [r4, #60] @ movhi 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1860 .loc 1 1316 3 is_stmt 1 view .LVU599 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1861 .loc 1 1316 21 is_stmt 0 view .LVU600 1862 0084 E364 str r3, [r4, #76] 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1863 .loc 1 1317 3 is_stmt 1 view .LVU601 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1864 .loc 1 1317 21 is_stmt 0 view .LVU602 1865 0086 2365 str r3, [r4, #80] 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1866 .loc 1 1328 3 is_stmt 1 view .LVU603 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1867 .loc 1 1328 18 is_stmt 0 view .LVU604 1868 0088 E368 ldr r3, [r4, #12] 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1869 .loc 1 1328 6 view .LVU605 1870 008a B3F5E06F cmp r3, #1792 1871 008e 01D8 bhi .L141 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1872 .loc 1 1328 49 discriminator 1 view .LVU606 1873 0090 012F cmp r7, #1 ARM GAS /tmp/ccywxtmH.s page 119 1874 0092 23D9 bls .L142 1875 .L141: 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1876 .loc 1 1331 5 is_stmt 1 view .LVU607 1877 0094 2268 ldr r2, [r4] 1878 0096 5368 ldr r3, [r2, #4] 1879 0098 23F48053 bic r3, r3, #4096 1880 009c 5360 str r3, [r2, #4] 1881 .LVL94: 1882 .L143: 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1883 .loc 1 1340 3 view .LVU608 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1884 .loc 1 1340 12 is_stmt 0 view .LVU609 1885 009e 2368 ldr r3, [r4] 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1886 .loc 1 1340 22 view .LVU610 1887 00a0 1A68 ldr r2, [r3] 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1888 .loc 1 1340 6 view .LVU611 1889 00a2 12F0400F tst r2, #64 1890 00a6 03D1 bne .L144 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1891 .loc 1 1343 5 is_stmt 1 view .LVU612 1892 00a8 1A68 ldr r2, [r3] 1893 00aa 42F04002 orr r2, r2, #64 1894 00ae 1A60 str r2, [r3] 1895 .L144: 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1896 .loc 1 1347 3 view .LVU613 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1897 .loc 1 1347 17 is_stmt 0 view .LVU614 1898 00b0 E368 ldr r3, [r4, #12] 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1899 .loc 1 1347 6 view .LVU615 1900 00b2 B3F5E06F cmp r3, #1792 1901 00b6 58D9 bls .L145 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1902 .loc 1 1349 5 is_stmt 1 view .LVU616 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1903 .loc 1 1349 20 is_stmt 0 view .LVU617 1904 00b8 6368 ldr r3, [r4, #4] 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1905 .loc 1 1349 8 view .LVU618 1906 00ba 0BB1 cbz r3, .L146 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1907 .loc 1 1349 45 discriminator 1 view .LVU619 1908 00bc 012F cmp r7, #1 1909 00be 0BD1 bne .L147 1910 .L146: 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1911 .loc 1 1351 7 is_stmt 1 view .LVU620 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1912 .loc 1 1351 46 is_stmt 0 view .LVU621 1913 00c0 A26B ldr r2, [r4, #56] 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1914 .loc 1 1351 11 view .LVU622 ARM GAS /tmp/ccywxtmH.s page 120 1915 00c2 2368 ldr r3, [r4] 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1916 .loc 1 1351 28 view .LVU623 1917 00c4 1288 ldrh r2, [r2] 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1918 .loc 1 1351 26 view .LVU624 1919 00c6 DA60 str r2, [r3, #12] 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1920 .loc 1 1352 7 is_stmt 1 view .LVU625 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1921 .loc 1 1352 11 is_stmt 0 view .LVU626 1922 00c8 A36B ldr r3, [r4, #56] 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1923 .loc 1 1352 24 view .LVU627 1924 00ca 0233 adds r3, r3, #2 1925 00cc A363 str r3, [r4, #56] 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1926 .loc 1 1353 7 is_stmt 1 view .LVU628 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1927 .loc 1 1353 11 is_stmt 0 view .LVU629 1928 00ce E38F ldrh r3, [r4, #62] 1929 00d0 9BB2 uxth r3, r3 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1930 .loc 1 1353 24 view .LVU630 1931 00d2 013B subs r3, r3, #1 1932 00d4 9BB2 uxth r3, r3 1933 00d6 E387 strh r3, [r4, #62] @ movhi 1934 .L147: 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1935 .loc 1 1387 19 view .LVU631 1936 00d8 0127 movs r7, #1 1937 .LVL95: 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1938 .loc 1 1387 19 view .LVU632 1939 00da 31E0 b .L148 1940 .LVL96: 1941 .L142: 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1942 .loc 1 1336 5 is_stmt 1 view .LVU633 1943 00dc 2268 ldr r2, [r4] 1944 00de 5368 ldr r3, [r2, #4] 1945 00e0 43F48053 orr r3, r3, #4096 1946 00e4 5360 str r3, [r2, #4] 1947 .LVL97: 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1948 .loc 1 1336 5 is_stmt 0 view .LVU634 1949 00e6 DAE7 b .L143 1950 .LVL98: 1951 .L175: 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1952 .loc 1 1360 9 is_stmt 1 view .LVU635 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1953 .loc 1 1360 48 is_stmt 0 view .LVU636 1954 00e8 A26B ldr r2, [r4, #56] 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1955 .loc 1 1360 30 view .LVU637 1956 00ea 1288 ldrh r2, [r2] ARM GAS /tmp/ccywxtmH.s page 121 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1957 .loc 1 1360 28 view .LVU638 1958 00ec DA60 str r2, [r3, #12] 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1959 .loc 1 1361 9 is_stmt 1 view .LVU639 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1960 .loc 1 1361 13 is_stmt 0 view .LVU640 1961 00ee A36B ldr r3, [r4, #56] 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1962 .loc 1 1361 26 view .LVU641 1963 00f0 0233 adds r3, r3, #2 1964 00f2 A363 str r3, [r4, #56] 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1965 .loc 1 1362 9 is_stmt 1 view .LVU642 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1966 .loc 1 1362 13 is_stmt 0 view .LVU643 1967 00f4 E38F ldrh r3, [r4, #62] 1968 00f6 9BB2 uxth r3, r3 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1969 .loc 1 1362 26 view .LVU644 1970 00f8 013B subs r3, r3, #1 1971 00fa 9BB2 uxth r3, r3 1972 00fc E387 strh r3, [r4, #62] @ movhi 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1973 .loc 1 1364 9 is_stmt 1 view .LVU645 1974 .LVL99: 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1975 .loc 1 1364 19 is_stmt 0 view .LVU646 1976 00fe 0027 movs r7, #0 1977 .LVL100: 1978 .L149: 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1979 .loc 1 1381 7 is_stmt 1 view .LVU647 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1980 .loc 1 1381 12 is_stmt 0 view .LVU648 1981 0100 2368 ldr r3, [r4] 1982 0102 9A68 ldr r2, [r3, #8] 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1983 .loc 1 1381 10 view .LVU649 1984 0104 12F0010F tst r2, #1 1985 0108 11D0 beq .L150 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1986 .loc 1 1381 61 discriminator 1 view .LVU650 1987 010a B4F84620 ldrh r2, [r4, #70] 1988 010e 92B2 uxth r2, r2 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1989 .loc 1 1381 53 discriminator 1 view .LVU651 1990 0110 6AB1 cbz r2, .L150 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1991 .loc 1 1383 9 is_stmt 1 view .LVU652 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1992 .loc 1 1383 67 is_stmt 0 view .LVU653 1993 0112 DA68 ldr r2, [r3, #12] 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1994 .loc 1 1383 27 view .LVU654 1995 0114 236C ldr r3, [r4, #64] 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); ARM GAS /tmp/ccywxtmH.s page 122 1996 .loc 1 1383 41 view .LVU655 1997 0116 1A80 strh r2, [r3] @ movhi 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1998 .loc 1 1384 9 is_stmt 1 view .LVU656 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1999 .loc 1 1384 13 is_stmt 0 view .LVU657 2000 0118 236C ldr r3, [r4, #64] 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2001 .loc 1 1384 26 view .LVU658 2002 011a 0233 adds r3, r3, #2 2003 011c 2364 str r3, [r4, #64] 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2004 .loc 1 1385 9 is_stmt 1 view .LVU659 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2005 .loc 1 1385 13 is_stmt 0 view .LVU660 2006 011e B4F84630 ldrh r3, [r4, #70] 2007 0122 9BB2 uxth r3, r3 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2008 .loc 1 1385 26 view .LVU661 2009 0124 013B subs r3, r3, #1 2010 0126 9BB2 uxth r3, r3 2011 0128 A4F84630 strh r3, [r4, #70] @ movhi 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2012 .loc 1 1387 9 is_stmt 1 view .LVU662 2013 .LVL101: 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2014 .loc 1 1387 19 is_stmt 0 view .LVU663 2015 012c 0127 movs r7, #1 2016 .LVL102: 2017 .L150: 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2018 .loc 1 1389 7 is_stmt 1 view .LVU664 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2019 .loc 1 1389 13 is_stmt 0 view .LVU665 2020 012e FFF7FEFF bl HAL_GetTick 2021 .LVL103: 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2022 .loc 1 1389 27 view .LVU666 2023 0132 831B subs r3, r0, r6 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2024 .loc 1 1389 10 view .LVU667 2025 0134 AB42 cmp r3, r5 2026 0136 03D3 bcc .L148 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2027 .loc 1 1389 53 discriminator 1 view .LVU668 2028 0138 B5F1FF3F cmp r5, #-1 2029 013c 40F0C780 bne .L170 2030 .LVL104: 2031 .L148: 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2032 .loc 1 1355 37 is_stmt 1 view .LVU669 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2033 .loc 1 1355 17 is_stmt 0 view .LVU670 2034 0140 E38F ldrh r3, [r4, #62] 2035 0142 9BB2 uxth r3, r3 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2036 .loc 1 1355 37 view .LVU671 ARM GAS /tmp/ccywxtmH.s page 123 2037 0144 2BB9 cbnz r3, .L151 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2038 .loc 1 1355 45 discriminator 1 view .LVU672 2039 0146 B4F84630 ldrh r3, [r4, #70] 2040 014a 9BB2 uxth r3, r3 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2041 .loc 1 1355 37 discriminator 1 view .LVU673 2042 014c 002B cmp r3, #0 2043 014e 00F0A180 beq .L152 2044 .L151: 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2045 .loc 1 1358 7 is_stmt 1 view .LVU674 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2046 .loc 1 1358 12 is_stmt 0 view .LVU675 2047 0152 2368 ldr r3, [r4] 2048 0154 9A68 ldr r2, [r3, #8] 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2049 .loc 1 1358 10 view .LVU676 2050 0156 12F0020F tst r2, #2 2051 015a D1D0 beq .L149 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2052 .loc 1 1358 60 discriminator 1 view .LVU677 2053 015c E28F ldrh r2, [r4, #62] 2054 015e 92B2 uxth r2, r2 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2055 .loc 1 1358 52 discriminator 1 view .LVU678 2056 0160 002A cmp r2, #0 2057 0162 CDD0 beq .L149 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2058 .loc 1 1358 80 discriminator 2 view .LVU679 2059 0164 002F cmp r7, #0 2060 0166 CBD0 beq .L149 2061 0168 BEE7 b .L175 2062 .LVL105: 2063 .L145: 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2064 .loc 1 1399 5 is_stmt 1 view .LVU680 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2065 .loc 1 1399 20 is_stmt 0 view .LVU681 2066 016a 6368 ldr r3, [r4, #4] 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2067 .loc 1 1399 8 view .LVU682 2068 016c 0BB1 cbz r3, .L153 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2069 .loc 1 1399 45 discriminator 1 view .LVU683 2070 016e 012F cmp r7, #1 2071 0170 0FD1 bne .L154 2072 .L153: 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2073 .loc 1 1401 7 is_stmt 1 view .LVU684 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2074 .loc 1 1401 15 is_stmt 0 view .LVU685 2075 0172 E38F ldrh r3, [r4, #62] 2076 0174 9BB2 uxth r3, r3 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2077 .loc 1 1401 10 view .LVU686 2078 0176 012B cmp r3, #1 ARM GAS /tmp/ccywxtmH.s page 124 2079 0178 0DD9 bls .L155 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2080 .loc 1 1403 9 is_stmt 1 view .LVU687 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2081 .loc 1 1403 48 is_stmt 0 view .LVU688 2082 017a A26B ldr r2, [r4, #56] 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2083 .loc 1 1403 13 view .LVU689 2084 017c 2368 ldr r3, [r4] 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2085 .loc 1 1403 30 view .LVU690 2086 017e 1288 ldrh r2, [r2] 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2087 .loc 1 1403 28 view .LVU691 2088 0180 DA60 str r2, [r3, #12] 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2089 .loc 1 1404 9 is_stmt 1 view .LVU692 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2090 .loc 1 1404 13 is_stmt 0 view .LVU693 2091 0182 A36B ldr r3, [r4, #56] 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2092 .loc 1 1404 26 view .LVU694 2093 0184 0233 adds r3, r3, #2 2094 0186 A363 str r3, [r4, #56] 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2095 .loc 1 1405 9 is_stmt 1 view .LVU695 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2096 .loc 1 1405 13 is_stmt 0 view .LVU696 2097 0188 E38F ldrh r3, [r4, #62] 2098 018a 9BB2 uxth r3, r3 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2099 .loc 1 1405 27 view .LVU697 2100 018c 023B subs r3, r3, #2 2101 018e 9BB2 uxth r3, r3 2102 0190 E387 strh r3, [r4, #62] @ movhi 2103 .L154: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2104 .loc 1 1469 19 view .LVU698 2105 0192 0127 movs r7, #1 2106 .LVL106: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2107 .loc 1 1469 19 view .LVU699 2108 0194 49E0 b .L161 2109 .LVL107: 2110 .L155: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2111 .loc 1 1409 9 is_stmt 1 view .LVU700 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2112 .loc 1 1409 54 is_stmt 0 view .LVU701 2113 0196 A26B ldr r2, [r4, #56] 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2114 .loc 1 1409 31 view .LVU702 2115 0198 2368 ldr r3, [r4] 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2116 .loc 1 1409 49 view .LVU703 2117 019a 1278 ldrb r2, [r2] @ zero_extendqisi2 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; ARM GAS /tmp/ccywxtmH.s page 125 2118 .loc 1 1409 46 view .LVU704 2119 019c 1A73 strb r2, [r3, #12] 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2120 .loc 1 1410 9 is_stmt 1 view .LVU705 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2121 .loc 1 1410 13 is_stmt 0 view .LVU706 2122 019e A36B ldr r3, [r4, #56] 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2123 .loc 1 1410 25 view .LVU707 2124 01a0 0133 adds r3, r3, #1 2125 01a2 A363 str r3, [r4, #56] 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2126 .loc 1 1411 9 is_stmt 1 view .LVU708 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2127 .loc 1 1411 13 is_stmt 0 view .LVU709 2128 01a4 E38F ldrh r3, [r4, #62] 2129 01a6 9BB2 uxth r3, r3 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2130 .loc 1 1411 26 view .LVU710 2131 01a8 013B subs r3, r3, #1 2132 01aa 9BB2 uxth r3, r3 2133 01ac E387 strh r3, [r4, #62] @ movhi 2134 01ae F0E7 b .L154 2135 .LVL108: 2136 .L177: 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2137 .loc 1 1419 9 is_stmt 1 view .LVU711 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2138 .loc 1 1419 17 is_stmt 0 view .LVU712 2139 01b0 E28F ldrh r2, [r4, #62] 2140 01b2 92B2 uxth r2, r2 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2141 .loc 1 1419 12 view .LVU713 2142 01b4 012A cmp r2, #1 2143 01b6 0CD9 bls .L157 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2144 .loc 1 1421 11 is_stmt 1 view .LVU714 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2145 .loc 1 1421 50 is_stmt 0 view .LVU715 2146 01b8 A26B ldr r2, [r4, #56] 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2147 .loc 1 1421 32 view .LVU716 2148 01ba 1288 ldrh r2, [r2] 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2149 .loc 1 1421 30 view .LVU717 2150 01bc DA60 str r2, [r3, #12] 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2151 .loc 1 1422 11 is_stmt 1 view .LVU718 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2152 .loc 1 1422 15 is_stmt 0 view .LVU719 2153 01be A36B ldr r3, [r4, #56] 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2154 .loc 1 1422 28 view .LVU720 2155 01c0 0233 adds r3, r3, #2 2156 01c2 A363 str r3, [r4, #56] 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2157 .loc 1 1423 11 is_stmt 1 view .LVU721 ARM GAS /tmp/ccywxtmH.s page 126 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2158 .loc 1 1423 15 is_stmt 0 view .LVU722 2159 01c4 E38F ldrh r3, [r4, #62] 2160 01c6 9BB2 uxth r3, r3 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2161 .loc 1 1423 29 view .LVU723 2162 01c8 023B subs r3, r3, #2 2163 01ca 9BB2 uxth r3, r3 2164 01cc E387 strh r3, [r4, #62] @ movhi 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2165 .loc 1 1432 19 view .LVU724 2166 01ce 0027 movs r7, #0 2167 .LVL109: 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2168 .loc 1 1432 19 view .LVU725 2169 01d0 3DE0 b .L156 2170 .LVL110: 2171 .L157: 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2172 .loc 1 1427 11 is_stmt 1 view .LVU726 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2173 .loc 1 1427 56 is_stmt 0 view .LVU727 2174 01d2 A26B ldr r2, [r4, #56] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2175 .loc 1 1427 51 view .LVU728 2176 01d4 1278 ldrb r2, [r2] @ zero_extendqisi2 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2177 .loc 1 1427 48 view .LVU729 2178 01d6 1A73 strb r2, [r3, #12] 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2179 .loc 1 1428 11 is_stmt 1 view .LVU730 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2180 .loc 1 1428 15 is_stmt 0 view .LVU731 2181 01d8 A36B ldr r3, [r4, #56] 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2182 .loc 1 1428 27 view .LVU732 2183 01da 0133 adds r3, r3, #1 2184 01dc A363 str r3, [r4, #56] 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2185 .loc 1 1429 11 is_stmt 1 view .LVU733 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2186 .loc 1 1429 15 is_stmt 0 view .LVU734 2187 01de E38F ldrh r3, [r4, #62] 2188 01e0 9BB2 uxth r3, r3 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2189 .loc 1 1429 28 view .LVU735 2190 01e2 013B subs r3, r3, #1 2191 01e4 9BB2 uxth r3, r3 2192 01e6 E387 strh r3, [r4, #62] @ movhi 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2193 .loc 1 1432 19 view .LVU736 2194 01e8 0027 movs r7, #0 2195 .LVL111: 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2196 .loc 1 1432 19 view .LVU737 2197 01ea 30E0 b .L156 2198 .LVL112: ARM GAS /tmp/ccywxtmH.s page 127 2199 .L178: 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2200 .loc 1 1459 13 is_stmt 1 view .LVU738 2201 01ec 2268 ldr r2, [r4] 2202 01ee 5368 ldr r3, [r2, #4] 2203 01f0 43F48053 orr r3, r3, #4096 2204 01f4 5360 str r3, [r2, #4] 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2205 .loc 1 1469 19 is_stmt 0 view .LVU739 2206 01f6 0127 movs r7, #1 2207 .LVL113: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2208 .loc 1 1469 19 view .LVU740 2209 01f8 0DE0 b .L158 2210 .LVL114: 2211 .L159: 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2212 .loc 1 1464 11 is_stmt 1 view .LVU741 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2213 .loc 1 1464 28 is_stmt 0 view .LVU742 2214 01fa 226C ldr r2, [r4, #64] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2215 .loc 1 1464 44 view .LVU743 2216 01fc 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2217 .loc 1 1464 42 view .LVU744 2218 01fe 1370 strb r3, [r2] 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2219 .loc 1 1465 11 is_stmt 1 view .LVU745 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2220 .loc 1 1465 15 is_stmt 0 view .LVU746 2221 0200 236C ldr r3, [r4, #64] 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2222 .loc 1 1465 27 view .LVU747 2223 0202 0133 adds r3, r3, #1 2224 0204 2364 str r3, [r4, #64] 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2225 .loc 1 1466 11 is_stmt 1 view .LVU748 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2226 .loc 1 1466 15 is_stmt 0 view .LVU749 2227 0206 B4F84630 ldrh r3, [r4, #70] 2228 020a 9BB2 uxth r3, r3 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2229 .loc 1 1466 28 view .LVU750 2230 020c 013B subs r3, r3, #1 2231 020e 9BB2 uxth r3, r3 2232 0210 A4F84630 strh r3, [r4, #70] @ movhi 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2233 .loc 1 1469 19 view .LVU751 2234 0214 0127 movs r7, #1 2235 .LVL115: 2236 .L158: 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2237 .loc 1 1471 7 is_stmt 1 view .LVU752 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2238 .loc 1 1471 14 is_stmt 0 view .LVU753 2239 0216 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccywxtmH.s page 128 2240 .LVL116: 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2241 .loc 1 1471 28 view .LVU754 2242 021a 801B subs r0, r0, r6 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2243 .loc 1 1471 10 view .LVU755 2244 021c A842 cmp r0, r5 2245 021e 02D3 bcc .L160 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2246 .loc 1 1471 54 discriminator 1 view .LVU756 2247 0220 B5F1FF3F cmp r5, #-1 2248 0224 55D1 bne .L172 2249 .L160: 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2250 .loc 1 1471 87 discriminator 3 view .LVU757 2251 0226 002D cmp r5, #0 2252 0228 55D0 beq .L176 2253 .LVL117: 2254 .L161: 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2255 .loc 1 1414 37 is_stmt 1 view .LVU758 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2256 .loc 1 1414 17 is_stmt 0 view .LVU759 2257 022a E38F ldrh r3, [r4, #62] 2258 022c 9BB2 uxth r3, r3 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2259 .loc 1 1414 37 view .LVU760 2260 022e 23B9 cbnz r3, .L162 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2261 .loc 1 1414 45 discriminator 1 view .LVU761 2262 0230 B4F84630 ldrh r3, [r4, #70] 2263 0234 9BB2 uxth r3, r3 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2264 .loc 1 1414 37 discriminator 1 view .LVU762 2265 0236 002B cmp r3, #0 2266 0238 2CD0 beq .L152 2267 .L162: 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2268 .loc 1 1417 7 is_stmt 1 view .LVU763 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2269 .loc 1 1417 12 is_stmt 0 view .LVU764 2270 023a 2368 ldr r3, [r4] 2271 023c 9A68 ldr r2, [r3, #8] 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2272 .loc 1 1417 10 view .LVU765 2273 023e 12F0020F tst r2, #2 2274 0242 04D0 beq .L156 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2275 .loc 1 1417 60 discriminator 1 view .LVU766 2276 0244 E28F ldrh r2, [r4, #62] 2277 0246 92B2 uxth r2, r2 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2278 .loc 1 1417 52 discriminator 1 view .LVU767 2279 0248 0AB1 cbz r2, .L156 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2280 .loc 1 1417 80 discriminator 2 view .LVU768 2281 024a 002F cmp r7, #0 ARM GAS /tmp/ccywxtmH.s page 129 2282 024c B0D1 bne .L177 2283 .LVL118: 2284 .L156: 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2285 .loc 1 1449 7 is_stmt 1 view .LVU769 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2286 .loc 1 1449 12 is_stmt 0 view .LVU770 2287 024e 2368 ldr r3, [r4] 2288 0250 9A68 ldr r2, [r3, #8] 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2289 .loc 1 1449 10 view .LVU771 2290 0252 12F0010F tst r2, #1 2291 0256 DED0 beq .L158 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2292 .loc 1 1449 61 discriminator 1 view .LVU772 2293 0258 B4F84620 ldrh r2, [r4, #70] 2294 025c 92B2 uxth r2, r2 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2295 .loc 1 1449 53 discriminator 1 view .LVU773 2296 025e 002A cmp r2, #0 2297 0260 D9D0 beq .L158 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2298 .loc 1 1451 9 is_stmt 1 view .LVU774 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2299 .loc 1 1451 17 is_stmt 0 view .LVU775 2300 0262 B4F84620 ldrh r2, [r4, #70] 2301 0266 92B2 uxth r2, r2 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2302 .loc 1 1451 12 view .LVU776 2303 0268 012A cmp r2, #1 2304 026a C6D9 bls .L159 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2305 .loc 1 1453 11 is_stmt 1 view .LVU777 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2306 .loc 1 1453 69 is_stmt 0 view .LVU778 2307 026c DA68 ldr r2, [r3, #12] 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2308 .loc 1 1453 29 view .LVU779 2309 026e 236C ldr r3, [r4, #64] 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2310 .loc 1 1453 43 view .LVU780 2311 0270 1A80 strh r2, [r3] @ movhi 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2312 .loc 1 1454 11 is_stmt 1 view .LVU781 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2313 .loc 1 1454 15 is_stmt 0 view .LVU782 2314 0272 236C ldr r3, [r4, #64] 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2315 .loc 1 1454 28 view .LVU783 2316 0274 0233 adds r3, r3, #2 2317 0276 2364 str r3, [r4, #64] 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2318 .loc 1 1455 11 is_stmt 1 view .LVU784 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2319 .loc 1 1455 15 is_stmt 0 view .LVU785 2320 0278 B4F84630 ldrh r3, [r4, #70] 2321 027c 9BB2 uxth r3, r3 ARM GAS /tmp/ccywxtmH.s page 130 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2322 .loc 1 1455 29 view .LVU786 2323 027e 023B subs r3, r3, #2 2324 0280 9BB2 uxth r3, r3 2325 0282 A4F84630 strh r3, [r4, #70] @ movhi 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2326 .loc 1 1456 11 is_stmt 1 view .LVU787 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2327 .loc 1 1456 19 is_stmt 0 view .LVU788 2328 0286 B4F84630 ldrh r3, [r4, #70] 2329 028a 9BB2 uxth r3, r3 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2330 .loc 1 1456 14 view .LVU789 2331 028c 012B cmp r3, #1 2332 028e ADD9 bls .L178 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2333 .loc 1 1469 19 view .LVU790 2334 0290 0127 movs r7, #1 2335 .LVL119: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2336 .loc 1 1469 19 view .LVU791 2337 0292 C0E7 b .L158 2338 .LVL120: 2339 .L152: 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2340 .loc 1 1537 3 is_stmt 1 view .LVU792 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2341 .loc 1 1537 7 is_stmt 0 view .LVU793 2342 0294 3246 mov r2, r6 2343 0296 2946 mov r1, r5 2344 0298 2046 mov r0, r4 2345 029a FFF7FEFF bl SPI_EndRxTxTransaction 2346 .LVL121: 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2347 .loc 1 1537 6 view .LVU794 2348 029e 20B1 cbz r0, .L139 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2349 .loc 1 1539 5 is_stmt 1 view .LVU795 2350 .LVL122: 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2351 .loc 1 1540 5 view .LVU796 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2352 .loc 1 1540 21 is_stmt 0 view .LVU797 2353 02a0 2023 movs r3, #32 2354 02a2 2366 str r3, [r4, #96] 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2355 .loc 1 1539 15 view .LVU798 2356 02a4 0120 movs r0, #1 2357 02a6 00E0 b .L139 2358 .LVL123: 2359 .L164: 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2360 .loc 1 1290 15 view .LVU799 2361 02a8 0220 movs r0, #2 2362 .LVL124: 2363 .L139: 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); ARM GAS /tmp/ccywxtmH.s page 131 2364 .loc 1 1544 3 is_stmt 1 view .LVU800 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2365 .loc 1 1544 15 is_stmt 0 view .LVU801 2366 02aa 0123 movs r3, #1 2367 02ac 84F85D30 strb r3, [r4, #93] 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2368 .loc 1 1545 3 is_stmt 1 view .LVU802 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2369 .loc 1 1545 3 view .LVU803 2370 02b0 0023 movs r3, #0 2371 02b2 84F85C30 strb r3, [r4, #92] 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2372 .loc 1 1545 3 view .LVU804 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2373 .loc 1 1546 3 view .LVU805 2374 .LVL125: 2375 .L137: 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2376 .loc 1 1547 1 is_stmt 0 view .LVU806 2377 02b6 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 2378 .LVL126: 2379 .L165: 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2380 .loc 1 1290 15 view .LVU807 2381 02ba 0220 movs r0, #2 2382 .LVL127: 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2383 .loc 1 1290 15 view .LVU808 2384 02bc F5E7 b .L139 2385 .LVL128: 2386 .L166: 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2387 .loc 1 1290 15 view .LVU809 2388 02be 0220 movs r0, #2 2389 .LVL129: 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2390 .loc 1 1290 15 view .LVU810 2391 02c0 F3E7 b .L139 2392 .LVL130: 2393 .L167: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2394 .loc 1 1296 15 view .LVU811 2395 02c2 0120 movs r0, #1 2396 .LVL131: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2397 .loc 1 1296 15 view .LVU812 2398 02c4 F1E7 b .L139 2399 .LVL132: 2400 .L168: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2401 .loc 1 1296 15 view .LVU813 2402 02c6 0120 movs r0, #1 2403 .LVL133: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2404 .loc 1 1296 15 view .LVU814 2405 02c8 EFE7 b .L139 2406 .LVL134: ARM GAS /tmp/ccywxtmH.s page 132 2407 .L169: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2408 .loc 1 1296 15 view .LVU815 2409 02ca 0120 movs r0, #1 2410 .LVL135: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2411 .loc 1 1296 15 view .LVU816 2412 02cc EDE7 b .L139 2413 .LVL136: 2414 .L170: 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2415 .loc 1 1391 19 view .LVU817 2416 02ce 0320 movs r0, #3 2417 02d0 EBE7 b .L139 2418 .L172: 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2419 .loc 1 1473 19 view .LVU818 2420 02d2 0320 movs r0, #3 2421 02d4 E9E7 b .L139 2422 .L176: 2423 02d6 0320 movs r0, #3 2424 02d8 E7E7 b .L139 2425 .LVL137: 2426 .L163: 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2427 .loc 1 1272 3 view .LVU819 2428 02da 0220 movs r0, #2 2429 .LVL138: 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2430 .loc 1 1272 3 view .LVU820 2431 02dc EBE7 b .L137 2432 .cfi_endproc 2433 .LFE136: 2435 .section .text.HAL_SPI_Receive,"ax",%progbits 2436 .align 1 2437 .global HAL_SPI_Receive 2438 .syntax unified 2439 .thumb 2440 .thumb_func 2442 HAL_SPI_Receive: 2443 .LVL139: 2444 .LFB135: 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2445 .loc 1 1009 1 is_stmt 1 view -0 2446 .cfi_startproc 2447 @ args = 0, pretend = 0, frame = 0 2448 @ frame_needed = 0, uses_anonymous_args = 0 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2449 .loc 1 1009 1 is_stmt 0 view .LVU822 2450 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 2451 .cfi_def_cfa_offset 28 2452 .cfi_offset 4, -28 2453 .cfi_offset 5, -24 2454 .cfi_offset 6, -20 2455 .cfi_offset 7, -16 2456 .cfi_offset 8, -12 2457 .cfi_offset 9, -8 ARM GAS /tmp/ccywxtmH.s page 133 2458 .cfi_offset 14, -4 2459 0004 83B0 sub sp, sp, #12 2460 .cfi_def_cfa_offset 40 2461 0006 0446 mov r4, r0 2462 0008 8846 mov r8, r1 2463 000a 9146 mov r9, r2 2464 000c 1D46 mov r5, r3 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2465 .loc 1 1015 3 is_stmt 1 view .LVU823 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2466 .loc 1 1016 3 view .LVU824 2467 .LVL140: 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2468 .loc 1 1018 3 view .LVU825 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2469 .loc 1 1018 18 is_stmt 0 view .LVU826 2470 000e 4068 ldr r0, [r0, #4] 2471 .LVL141: 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2472 .loc 1 1018 6 view .LVU827 2473 0010 B0F5827F cmp r0, #260 2474 0014 43D0 beq .L206 2475 .LVL142: 2476 .L180: 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2477 .loc 1 1026 3 is_stmt 1 view .LVU828 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2478 .loc 1 1026 3 view .LVU829 2479 0016 94F85C30 ldrb r3, [r4, #92] @ zero_extendqisi2 2480 001a 012B cmp r3, #1 2481 001c 00F0C380 beq .L199 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2482 .loc 1 1026 3 discriminator 2 view .LVU830 2483 0020 0123 movs r3, #1 2484 0022 84F85C30 strb r3, [r4, #92] 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2485 .loc 1 1026 3 discriminator 2 view .LVU831 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2486 .loc 1 1029 3 discriminator 2 view .LVU832 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2487 .loc 1 1029 15 is_stmt 0 discriminator 2 view .LVU833 2488 0026 FFF7FEFF bl HAL_GetTick 2489 .LVL143: 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2490 .loc 1 1029 15 discriminator 2 view .LVU834 2491 002a 0746 mov r7, r0 2492 .LVL144: 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2493 .loc 1 1031 3 is_stmt 1 discriminator 2 view .LVU835 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2494 .loc 1 1031 11 is_stmt 0 discriminator 2 view .LVU836 2495 002c 94F85D60 ldrb r6, [r4, #93] @ zero_extendqisi2 2496 0030 F6B2 uxtb r6, r6 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2497 .loc 1 1031 6 discriminator 2 view .LVU837 2498 0032 012E cmp r6, #1 2499 0034 40F0A480 bne .L200 ARM GAS /tmp/ccywxtmH.s page 134 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2500 .loc 1 1037 3 is_stmt 1 view .LVU838 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2501 .loc 1 1037 6 is_stmt 0 view .LVU839 2502 0038 B8F1000F cmp r8, #0 2503 003c 00F0A180 beq .L182 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2504 .loc 1 1037 23 discriminator 1 view .LVU840 2505 0040 B9F1000F cmp r9, #0 2506 0044 00F09D80 beq .L182 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2507 .loc 1 1044 3 is_stmt 1 view .LVU841 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2508 .loc 1 1044 21 is_stmt 0 view .LVU842 2509 0048 0423 movs r3, #4 2510 004a 84F85D30 strb r3, [r4, #93] 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2511 .loc 1 1045 3 is_stmt 1 view .LVU843 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2512 .loc 1 1045 21 is_stmt 0 view .LVU844 2513 004e 0023 movs r3, #0 2514 0050 2366 str r3, [r4, #96] 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2515 .loc 1 1046 3 is_stmt 1 view .LVU845 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2516 .loc 1 1046 21 is_stmt 0 view .LVU846 2517 0052 C4F84080 str r8, [r4, #64] 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2518 .loc 1 1047 3 is_stmt 1 view .LVU847 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2519 .loc 1 1047 21 is_stmt 0 view .LVU848 2520 0056 A4F84490 strh r9, [r4, #68] @ movhi 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2521 .loc 1 1048 3 is_stmt 1 view .LVU849 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2522 .loc 1 1048 21 is_stmt 0 view .LVU850 2523 005a A4F84690 strh r9, [r4, #70] @ movhi 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2524 .loc 1 1051 3 is_stmt 1 view .LVU851 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2525 .loc 1 1051 21 is_stmt 0 view .LVU852 2526 005e A363 str r3, [r4, #56] 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2527 .loc 1 1052 3 is_stmt 1 view .LVU853 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2528 .loc 1 1052 21 is_stmt 0 view .LVU854 2529 0060 A387 strh r3, [r4, #60] @ movhi 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2530 .loc 1 1053 3 is_stmt 1 view .LVU855 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2531 .loc 1 1053 21 is_stmt 0 view .LVU856 2532 0062 E387 strh r3, [r4, #62] @ movhi 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2533 .loc 1 1054 3 is_stmt 1 view .LVU857 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2534 .loc 1 1054 21 is_stmt 0 view .LVU858 2535 0064 E364 str r3, [r4, #76] ARM GAS /tmp/ccywxtmH.s page 135 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2536 .loc 1 1055 3 is_stmt 1 view .LVU859 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2537 .loc 1 1055 21 is_stmt 0 view .LVU860 2538 0066 2365 str r3, [r4, #80] 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2539 .loc 1 1068 3 is_stmt 1 view .LVU861 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2540 .loc 1 1068 17 is_stmt 0 view .LVU862 2541 0068 E368 ldr r3, [r4, #12] 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2542 .loc 1 1068 6 view .LVU863 2543 006a B3F5E06F cmp r3, #1792 2544 006e 24D9 bls .L183 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2545 .loc 1 1071 5 is_stmt 1 view .LVU864 2546 0070 2268 ldr r2, [r4] 2547 0072 5368 ldr r3, [r2, #4] 2548 0074 23F48053 bic r3, r3, #4096 2549 0078 5360 str r3, [r2, #4] 2550 .L184: 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2551 .loc 1 1080 3 view .LVU865 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2552 .loc 1 1080 17 is_stmt 0 view .LVU866 2553 007a A368 ldr r3, [r4, #8] 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2554 .loc 1 1080 6 view .LVU867 2555 007c B3F5004F cmp r3, #32768 2556 0080 21D0 beq .L207 2557 .L185: 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2558 .loc 1 1088 3 is_stmt 1 view .LVU868 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2559 .loc 1 1088 12 is_stmt 0 view .LVU869 2560 0082 2368 ldr r3, [r4] 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2561 .loc 1 1088 22 view .LVU870 2562 0084 1A68 ldr r2, [r3] 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2563 .loc 1 1088 6 view .LVU871 2564 0086 12F0400F tst r2, #64 2565 008a 03D1 bne .L186 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2566 .loc 1 1091 5 is_stmt 1 view .LVU872 2567 008c 1A68 ldr r2, [r3] 2568 008e 42F04002 orr r2, r2, #64 2569 0092 1A60 str r2, [r3] 2570 .L186: 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2571 .loc 1 1095 3 view .LVU873 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2572 .loc 1 1095 17 is_stmt 0 view .LVU874 2573 0094 E368 ldr r3, [r4, #12] 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2574 .loc 1 1095 6 view .LVU875 2575 0096 B3F5E06F cmp r3, #1792 ARM GAS /tmp/ccywxtmH.s page 136 2576 009a 29D9 bls .L187 2577 009c 4AE0 b .L188 2578 .LVL145: 2579 .L206: 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2580 .loc 1 1018 58 discriminator 1 view .LVU876 2581 009e A368 ldr r3, [r4, #8] 2582 .LVL146: 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2583 .loc 1 1018 44 discriminator 1 view .LVU877 2584 00a0 002B cmp r3, #0 2585 00a2 B8D1 bne .L180 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 2586 .loc 1 1020 5 is_stmt 1 view .LVU878 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 2587 .loc 1 1020 17 is_stmt 0 view .LVU879 2588 00a4 0423 movs r3, #4 2589 00a6 84F85D30 strb r3, [r4, #93] 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2590 .loc 1 1022 5 is_stmt 1 view .LVU880 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2591 .loc 1 1022 12 is_stmt 0 view .LVU881 2592 00aa 0095 str r5, [sp] 2593 00ac 1346 mov r3, r2 2594 00ae 0A46 mov r2, r1 2595 .LVL147: 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2596 .loc 1 1022 12 view .LVU882 2597 00b0 2046 mov r0, r4 2598 00b2 FFF7FEFF bl HAL_SPI_TransmitReceive 2599 .LVL148: 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2600 .loc 1 1022 12 view .LVU883 2601 00b6 0646 mov r6, r0 2602 00b8 69E0 b .L181 2603 .LVL149: 2604 .L183: 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2605 .loc 1 1076 5 is_stmt 1 view .LVU884 2606 00ba 2268 ldr r2, [r4] 2607 00bc 5368 ldr r3, [r2, #4] 2608 00be 43F48053 orr r3, r3, #4096 2609 00c2 5360 str r3, [r2, #4] 2610 00c4 D9E7 b .L184 2611 .L207: 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 2612 .loc 1 1083 5 view .LVU885 2613 00c6 2268 ldr r2, [r4] 2614 00c8 1368 ldr r3, [r2] 2615 00ca 23F04003 bic r3, r3, #64 2616 00ce 1360 str r3, [r2] 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2617 .loc 1 1084 5 view .LVU886 2618 00d0 2268 ldr r2, [r4] 2619 00d2 1368 ldr r3, [r2] 2620 00d4 23F48043 bic r3, r3, #16384 2621 00d8 1360 str r3, [r2] ARM GAS /tmp/ccywxtmH.s page 137 2622 00da D2E7 b .L185 2623 .LVL150: 2624 .L189: 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2625 .loc 1 1111 9 view .LVU887 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2626 .loc 1 1111 16 is_stmt 0 view .LVU888 2627 00dc FFF7FEFF bl HAL_GetTick 2628 .LVL151: 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2629 .loc 1 1111 30 view .LVU889 2630 00e0 C01B subs r0, r0, r7 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2631 .loc 1 1111 12 view .LVU890 2632 00e2 A842 cmp r0, r5 2633 00e4 02D3 bcc .L191 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2634 .loc 1 1111 56 discriminator 1 view .LVU891 2635 00e6 B5F1FF3F cmp r5, #-1 2636 00ea 54D1 bne .L201 2637 .L191: 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2638 .loc 1 1111 87 discriminator 3 view .LVU892 2639 00ec 002D cmp r5, #0 2640 00ee 54D0 beq .L202 2641 .L187: 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2642 .loc 1 1098 30 is_stmt 1 view .LVU893 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2643 .loc 1 1098 16 is_stmt 0 view .LVU894 2644 00f0 B4F84630 ldrh r3, [r4, #70] 2645 00f4 9BB2 uxth r3, r3 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2646 .loc 1 1098 30 view .LVU895 2647 00f6 002B cmp r3, #0 2648 00f8 36D0 beq .L193 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2649 .loc 1 1101 7 is_stmt 1 view .LVU896 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2650 .loc 1 1101 11 is_stmt 0 view .LVU897 2651 00fa 2368 ldr r3, [r4] 2652 00fc 9A68 ldr r2, [r3, #8] 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2653 .loc 1 1101 10 view .LVU898 2654 00fe 12F0010F tst r2, #1 2655 0102 EBD0 beq .L189 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2656 .loc 1 1104 9 is_stmt 1 view .LVU899 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2657 .loc 1 1104 27 is_stmt 0 view .LVU900 2658 0104 226C ldr r2, [r4, #64] 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2659 .loc 1 1104 43 view .LVU901 2660 0106 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2661 .loc 1 1104 41 view .LVU902 2662 0108 1370 strb r3, [r2] ARM GAS /tmp/ccywxtmH.s page 138 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2663 .loc 1 1105 9 is_stmt 1 view .LVU903 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2664 .loc 1 1105 13 is_stmt 0 view .LVU904 2665 010a 236C ldr r3, [r4, #64] 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2666 .loc 1 1105 26 view .LVU905 2667 010c 0133 adds r3, r3, #1 2668 010e 2364 str r3, [r4, #64] 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2669 .loc 1 1106 9 is_stmt 1 view .LVU906 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2670 .loc 1 1106 13 is_stmt 0 view .LVU907 2671 0110 B4F84630 ldrh r3, [r4, #70] 2672 0114 9BB2 uxth r3, r3 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2673 .loc 1 1106 26 view .LVU908 2674 0116 013B subs r3, r3, #1 2675 0118 9BB2 uxth r3, r3 2676 011a A4F84630 strh r3, [r4, #70] @ movhi 2677 011e E7E7 b .L187 2678 .L194: 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2679 .loc 1 1134 9 is_stmt 1 view .LVU909 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2680 .loc 1 1134 16 is_stmt 0 view .LVU910 2681 0120 FFF7FEFF bl HAL_GetTick 2682 .LVL152: 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2683 .loc 1 1134 30 view .LVU911 2684 0124 C01B subs r0, r0, r7 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2685 .loc 1 1134 12 view .LVU912 2686 0126 A842 cmp r0, r5 2687 0128 02D3 bcc .L196 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2688 .loc 1 1134 56 discriminator 1 view .LVU913 2689 012a B5F1FF3F cmp r5, #-1 2690 012e 36D1 bne .L203 2691 .L196: 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2692 .loc 1 1134 87 discriminator 3 view .LVU914 2693 0130 002D cmp r5, #0 2694 0132 36D0 beq .L204 2695 .L188: 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2696 .loc 1 1122 30 is_stmt 1 view .LVU915 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2697 .loc 1 1122 16 is_stmt 0 view .LVU916 2698 0134 B4F84630 ldrh r3, [r4, #70] 2699 0138 9BB2 uxth r3, r3 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2700 .loc 1 1122 30 view .LVU917 2701 013a ABB1 cbz r3, .L193 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2702 .loc 1 1125 7 is_stmt 1 view .LVU918 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 139 2703 .loc 1 1125 11 is_stmt 0 view .LVU919 2704 013c 2368 ldr r3, [r4] 2705 013e 9A68 ldr r2, [r3, #8] 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2706 .loc 1 1125 10 view .LVU920 2707 0140 12F0010F tst r2, #1 2708 0144 ECD0 beq .L194 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2709 .loc 1 1127 9 is_stmt 1 view .LVU921 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2710 .loc 1 1127 67 is_stmt 0 view .LVU922 2711 0146 DA68 ldr r2, [r3, #12] 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2712 .loc 1 1127 27 view .LVU923 2713 0148 236C ldr r3, [r4, #64] 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2714 .loc 1 1127 41 view .LVU924 2715 014a 1A80 strh r2, [r3] @ movhi 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2716 .loc 1 1128 9 is_stmt 1 view .LVU925 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2717 .loc 1 1128 13 is_stmt 0 view .LVU926 2718 014c 236C ldr r3, [r4, #64] 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2719 .loc 1 1128 26 view .LVU927 2720 014e 0233 adds r3, r3, #2 2721 0150 2364 str r3, [r4, #64] 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2722 .loc 1 1129 9 is_stmt 1 view .LVU928 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2723 .loc 1 1129 13 is_stmt 0 view .LVU929 2724 0152 B4F846C0 ldrh ip, [r4, #70] 2725 0156 1FFA8CFC uxth ip, ip 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2726 .loc 1 1129 26 view .LVU930 2727 015a 0CF1FF3C add ip, ip, #-1 2728 015e 1FFA8CFC uxth ip, ip 2729 0162 A4F846C0 strh ip, [r4, #70] @ movhi 2730 0166 E5E7 b .L188 2731 .L193: 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2732 .loc 1 1213 3 is_stmt 1 view .LVU931 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2733 .loc 1 1213 7 is_stmt 0 view .LVU932 2734 0168 3A46 mov r2, r7 2735 016a 2946 mov r1, r5 2736 016c 2046 mov r0, r4 2737 016e FFF7FEFF bl SPI_EndRxTransaction 2738 .LVL153: 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2739 .loc 1 1213 6 view .LVU933 2740 0172 08B1 cbz r0, .L198 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2741 .loc 1 1215 5 is_stmt 1 view .LVU934 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2742 .loc 1 1215 21 is_stmt 0 view .LVU935 2743 0174 2023 movs r3, #32 ARM GAS /tmp/ccywxtmH.s page 140 2744 0176 2366 str r3, [r4, #96] 2745 .L198: 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2746 .loc 1 1227 3 is_stmt 1 view .LVU936 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2747 .loc 1 1227 11 is_stmt 0 view .LVU937 2748 0178 236E ldr r3, [r4, #96] 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2749 .loc 1 1227 6 view .LVU938 2750 017a 13B9 cbnz r3, .L182 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2751 .loc 1 1016 21 view .LVU939 2752 017c 0026 movs r6, #0 2753 017e 00E0 b .L182 2754 .LVL154: 2755 .L200: 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2756 .loc 1 1033 15 view .LVU940 2757 0180 0226 movs r6, #2 2758 .LVL155: 2759 .L182: 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2760 .loc 1 1233 3 is_stmt 1 view .LVU941 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2761 .loc 1 1233 15 is_stmt 0 view .LVU942 2762 0182 0123 movs r3, #1 2763 0184 84F85D30 strb r3, [r4, #93] 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2764 .loc 1 1234 3 is_stmt 1 view .LVU943 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2765 .loc 1 1234 3 view .LVU944 2766 0188 0023 movs r3, #0 2767 018a 84F85C30 strb r3, [r4, #92] 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2768 .loc 1 1234 3 view .LVU945 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2769 .loc 1 1235 3 view .LVU946 2770 .LVL156: 2771 .L181: 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2772 .loc 1 1236 1 is_stmt 0 view .LVU947 2773 018e 3046 mov r0, r6 2774 0190 03B0 add sp, sp, #12 2775 .cfi_remember_state 2776 .cfi_def_cfa_offset 28 2777 @ sp needed 2778 0192 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 2779 .LVL157: 2780 .L201: 2781 .cfi_restore_state 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2782 .loc 1 1113 21 view .LVU948 2783 0196 0326 movs r6, #3 2784 0198 F3E7 b .L182 2785 .L202: 2786 019a 0326 movs r6, #3 2787 019c F1E7 b .L182 ARM GAS /tmp/ccywxtmH.s page 141 2788 .L203: 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2789 .loc 1 1136 21 view .LVU949 2790 019e 0326 movs r6, #3 2791 01a0 EFE7 b .L182 2792 .L204: 2793 01a2 0326 movs r6, #3 2794 01a4 EDE7 b .L182 2795 .LVL158: 2796 .L199: 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2797 .loc 1 1026 3 view .LVU950 2798 01a6 0226 movs r6, #2 2799 01a8 F1E7 b .L181 2800 .cfi_endproc 2801 .LFE135: 2803 .section .text.HAL_SPI_Transmit_IT,"ax",%progbits 2804 .align 1 2805 .global HAL_SPI_Transmit_IT 2806 .syntax unified 2807 .thumb 2808 .thumb_func 2810 HAL_SPI_Transmit_IT: 2811 .LVL159: 2812 .LFB137: 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2813 .loc 1 1558 1 is_stmt 1 view -0 2814 .cfi_startproc 2815 @ args = 0, pretend = 0, frame = 0 2816 @ frame_needed = 0, uses_anonymous_args = 0 2817 @ link register save eliminated. 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2818 .loc 1 1558 1 is_stmt 0 view .LVU952 2819 0000 0346 mov r3, r0 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2820 .loc 1 1559 3 is_stmt 1 view .LVU953 2821 .LVL160: 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2822 .loc 1 1562 3 view .LVU954 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2823 .loc 1 1565 3 view .LVU955 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2824 .loc 1 1565 3 view .LVU956 2825 0002 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 2826 .LVL161: 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2827 .loc 1 1565 3 is_stmt 0 view .LVU957 2828 0006 0128 cmp r0, #1 2829 0008 4CD0 beq .L214 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2830 .loc 1 1565 3 is_stmt 1 discriminator 2 view .LVU958 2831 000a 0120 movs r0, #1 2832 000c 83F85C00 strb r0, [r3, #92] 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2833 .loc 1 1565 3 discriminator 2 view .LVU959 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2834 .loc 1 1567 3 discriminator 2 view .LVU960 ARM GAS /tmp/ccywxtmH.s page 142 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2835 .loc 1 1567 6 is_stmt 0 discriminator 2 view .LVU961 2836 0010 0029 cmp r1, #0 2837 0012 3CD0 beq .L215 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2838 .loc 1 1567 23 discriminator 1 view .LVU962 2839 0014 002A cmp r2, #0 2840 0016 3CD0 beq .L216 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2841 .loc 1 1573 3 is_stmt 1 view .LVU963 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2842 .loc 1 1573 11 is_stmt 0 view .LVU964 2843 0018 93F85D00 ldrb r0, [r3, #93] @ zero_extendqisi2 2844 001c C0B2 uxtb r0, r0 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2845 .loc 1 1573 6 view .LVU965 2846 001e 0128 cmp r0, #1 2847 0020 3CD1 bne .L217 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2848 .loc 1 1580 3 is_stmt 1 view .LVU966 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2849 .loc 1 1580 21 is_stmt 0 view .LVU967 2850 0022 0320 movs r0, #3 2851 0024 83F85D00 strb r0, [r3, #93] 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2852 .loc 1 1581 3 is_stmt 1 view .LVU968 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2853 .loc 1 1581 21 is_stmt 0 view .LVU969 2854 0028 0020 movs r0, #0 2855 002a 1866 str r0, [r3, #96] 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2856 .loc 1 1582 3 is_stmt 1 view .LVU970 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2857 .loc 1 1582 21 is_stmt 0 view .LVU971 2858 002c 9963 str r1, [r3, #56] 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2859 .loc 1 1583 3 is_stmt 1 view .LVU972 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2860 .loc 1 1583 21 is_stmt 0 view .LVU973 2861 002e 9A87 strh r2, [r3, #60] @ movhi 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2862 .loc 1 1584 3 is_stmt 1 view .LVU974 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2863 .loc 1 1584 21 is_stmt 0 view .LVU975 2864 0030 DA87 strh r2, [r3, #62] @ movhi 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2865 .loc 1 1587 3 is_stmt 1 view .LVU976 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2866 .loc 1 1587 21 is_stmt 0 view .LVU977 2867 0032 1864 str r0, [r3, #64] 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2868 .loc 1 1588 3 is_stmt 1 view .LVU978 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2869 .loc 1 1588 21 is_stmt 0 view .LVU979 2870 0034 A3F84400 strh r0, [r3, #68] @ movhi 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2871 .loc 1 1589 3 is_stmt 1 view .LVU980 ARM GAS /tmp/ccywxtmH.s page 143 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2872 .loc 1 1589 21 is_stmt 0 view .LVU981 2873 0038 A3F84600 strh r0, [r3, #70] @ movhi 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2874 .loc 1 1590 3 is_stmt 1 view .LVU982 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2875 .loc 1 1590 21 is_stmt 0 view .LVU983 2876 003c D864 str r0, [r3, #76] 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2877 .loc 1 1593 3 is_stmt 1 view .LVU984 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2878 .loc 1 1593 17 is_stmt 0 view .LVU985 2879 003e DA68 ldr r2, [r3, #12] 2880 .LVL162: 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2881 .loc 1 1593 6 view .LVU986 2882 0040 B2F5E06F cmp r2, #1792 2883 0044 15D9 bls .L211 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2884 .loc 1 1595 5 is_stmt 1 view .LVU987 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2885 .loc 1 1595 17 is_stmt 0 view .LVU988 2886 0046 184A ldr r2, .L220 2887 0048 1A65 str r2, [r3, #80] 2888 .L212: 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2889 .loc 1 1603 3 is_stmt 1 view .LVU989 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2890 .loc 1 1603 17 is_stmt 0 view .LVU990 2891 004a 9A68 ldr r2, [r3, #8] 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2892 .loc 1 1603 6 view .LVU991 2893 004c B2F5004F cmp r2, #32768 2894 0050 12D0 beq .L219 2895 .LVL163: 2896 .L213: 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2897 .loc 1 1619 3 is_stmt 1 view .LVU992 2898 0052 1968 ldr r1, [r3] 2899 0054 4A68 ldr r2, [r1, #4] 2900 0056 42F0A002 orr r2, r2, #160 2901 005a 4A60 str r2, [r1, #4] 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2902 .loc 1 1623 3 view .LVU993 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2903 .loc 1 1623 12 is_stmt 0 view .LVU994 2904 005c 1A68 ldr r2, [r3] 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2905 .loc 1 1623 22 view .LVU995 2906 005e 1168 ldr r1, [r2] 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2907 .loc 1 1623 6 view .LVU996 2908 0060 11F0400F tst r1, #64 2909 0064 1CD1 bne .L218 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2910 .loc 1 1626 5 is_stmt 1 view .LVU997 2911 0066 1168 ldr r1, [r2] ARM GAS /tmp/ccywxtmH.s page 144 2912 0068 41F04001 orr r1, r1, #64 2913 006c 1160 str r1, [r2] 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2914 .loc 1 1559 21 is_stmt 0 view .LVU998 2915 006e 0020 movs r0, #0 2916 0070 10E0 b .L210 2917 .LVL164: 2918 .L211: 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2919 .loc 1 1599 5 is_stmt 1 view .LVU999 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2920 .loc 1 1599 17 is_stmt 0 view .LVU1000 2921 0072 0E4A ldr r2, .L220+4 2922 0074 1A65 str r2, [r3, #80] 2923 0076 E8E7 b .L212 2924 .L219: 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2925 .loc 1 1606 5 is_stmt 1 view .LVU1001 2926 0078 1968 ldr r1, [r3] 2927 .LVL165: 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2928 .loc 1 1606 5 is_stmt 0 view .LVU1002 2929 007a 0A68 ldr r2, [r1] 2930 007c 22F04002 bic r2, r2, #64 2931 0080 0A60 str r2, [r1] 2932 .LVL166: 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2933 .loc 1 1607 5 is_stmt 1 view .LVU1003 2934 0082 1968 ldr r1, [r3] 2935 0084 0A68 ldr r2, [r1] 2936 0086 42F48042 orr r2, r2, #16384 2937 008a 0A60 str r2, [r1] 2938 008c E1E7 b .L213 2939 .LVL167: 2940 .L215: 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2941 .loc 1 1569 15 is_stmt 0 view .LVU1004 2942 008e 0120 movs r0, #1 2943 0090 00E0 b .L210 2944 .L216: 2945 0092 0120 movs r0, #1 2946 .LVL168: 2947 .L210: 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2948 .loc 1 1630 3 is_stmt 1 view .LVU1005 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2949 .loc 1 1630 3 view .LVU1006 2950 0094 0022 movs r2, #0 2951 0096 83F85C20 strb r2, [r3, #92] 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2952 .loc 1 1630 3 view .LVU1007 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2953 .loc 1 1631 3 view .LVU1008 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2954 .loc 1 1631 10 is_stmt 0 view .LVU1009 2955 009a 7047 bx lr 2956 .LVL169: ARM GAS /tmp/ccywxtmH.s page 145 2957 .L217: 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2958 .loc 1 1575 15 view .LVU1010 2959 009c 0220 movs r0, #2 2960 009e F9E7 b .L210 2961 .LVL170: 2962 .L218: 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2963 .loc 1 1559 21 view .LVU1011 2964 00a0 0020 movs r0, #0 2965 00a2 F7E7 b .L210 2966 .LVL171: 2967 .L214: 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2968 .loc 1 1565 3 view .LVU1012 2969 00a4 0220 movs r0, #2 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2970 .loc 1 1632 1 view .LVU1013 2971 00a6 7047 bx lr 2972 .L221: 2973 .align 2 2974 .L220: 2975 00a8 00000000 .word SPI_TxISR_16BIT 2976 00ac 00000000 .word SPI_TxISR_8BIT 2977 .cfi_endproc 2978 .LFE137: 2980 .section .text.HAL_SPI_TransmitReceive_IT,"ax",%progbits 2981 .align 1 2982 .global HAL_SPI_TransmitReceive_IT 2983 .syntax unified 2984 .thumb 2985 .thumb_func 2987 HAL_SPI_TransmitReceive_IT: 2988 .LVL172: 2989 .LFB139: 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2990 .loc 1 1750 1 is_stmt 1 view -0 2991 .cfi_startproc 2992 @ args = 0, pretend = 0, frame = 0 2993 @ frame_needed = 0, uses_anonymous_args = 0 2994 @ link register save eliminated. 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2995 .loc 1 1750 1 is_stmt 0 view .LVU1015 2996 0000 8446 mov ip, r0 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 2997 .loc 1 1751 3 is_stmt 1 view .LVU1016 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2998 .loc 1 1752 3 view .LVU1017 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2999 .loc 1 1753 3 view .LVU1018 3000 .LVL173: 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3001 .loc 1 1756 3 view .LVU1019 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3002 .loc 1 1759 3 view .LVU1020 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3003 .loc 1 1759 3 view .LVU1021 ARM GAS /tmp/ccywxtmH.s page 146 3004 0002 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 3005 .LVL174: 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3006 .loc 1 1759 3 is_stmt 0 view .LVU1022 3007 0006 0128 cmp r0, #1 3008 0008 79D0 beq .L232 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3009 .loc 1 1750 1 discriminator 2 view .LVU1023 3010 000a 10B4 push {r4} 3011 .cfi_def_cfa_offset 4 3012 .cfi_offset 4, -4 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3013 .loc 1 1759 3 is_stmt 1 discriminator 2 view .LVU1024 3014 000c 0120 movs r0, #1 3015 000e 8CF85C00 strb r0, [ip, #92] 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3016 .loc 1 1759 3 discriminator 2 view .LVU1025 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3017 .loc 1 1762 3 discriminator 2 view .LVU1026 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3018 .loc 1 1762 23 is_stmt 0 discriminator 2 view .LVU1027 3019 0012 9CF85D00 ldrb r0, [ip, #93] @ zero_extendqisi2 3020 0016 C0B2 uxtb r0, r0 3021 .LVL175: 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3022 .loc 1 1763 3 is_stmt 1 discriminator 2 view .LVU1028 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3023 .loc 1 1763 23 is_stmt 0 discriminator 2 view .LVU1029 3024 0018 DCF80440 ldr r4, [ip, #4] 3025 .LVL176: 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3026 .loc 1 1765 3 is_stmt 1 discriminator 2 view .LVU1030 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3027 .loc 1 1765 6 is_stmt 0 discriminator 2 view .LVU1031 3028 001c 0128 cmp r0, #1 3029 001e 08D0 beq .L224 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3030 .loc 1 1765 7 discriminator 1 view .LVU1032 3031 0020 B4F5827F cmp r4, #260 3032 0024 58D1 bne .L233 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3033 .loc 1 1766 54 view .LVU1033 3034 0026 DCF80840 ldr r4, [ip, #8] 3035 .LVL177: 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3036 .loc 1 1766 40 view .LVU1034 3037 002a 002C cmp r4, #0 3038 002c 5BD1 bne .L234 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3039 .loc 1 1766 90 discriminator 1 view .LVU1035 3040 002e 0428 cmp r0, #4 3041 0030 5BD1 bne .L235 3042 .L224: 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3043 .loc 1 1772 3 is_stmt 1 view .LVU1036 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3044 .loc 1 1772 6 is_stmt 0 view .LVU1037 ARM GAS /tmp/ccywxtmH.s page 147 3045 0032 0029 cmp r1, #0 3046 0034 5BD0 beq .L236 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3047 .loc 1 1772 25 discriminator 1 view .LVU1038 3048 0036 002A cmp r2, #0 3049 0038 5BD0 beq .L237 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3050 .loc 1 1772 46 discriminator 2 view .LVU1039 3051 003a 002B cmp r3, #0 3052 003c 5BD0 beq .L238 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3053 .loc 1 1779 3 is_stmt 1 view .LVU1040 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3054 .loc 1 1779 11 is_stmt 0 view .LVU1041 3055 003e 9CF85D00 ldrb r0, [ip, #93] @ zero_extendqisi2 3056 .LVL178: 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3057 .loc 1 1779 11 view .LVU1042 3058 0042 C0B2 uxtb r0, r0 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3059 .loc 1 1779 6 view .LVU1043 3060 0044 0428 cmp r0, #4 3061 0046 02D0 beq .L226 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3062 .loc 1 1781 5 is_stmt 1 view .LVU1044 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3063 .loc 1 1781 17 is_stmt 0 view .LVU1045 3064 0048 0520 movs r0, #5 3065 004a 8CF85D00 strb r0, [ip, #93] 3066 .L226: 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3067 .loc 1 1785 3 is_stmt 1 view .LVU1046 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3068 .loc 1 1785 21 is_stmt 0 view .LVU1047 3069 004e 0020 movs r0, #0 3070 0050 CCF86000 str r0, [ip, #96] 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3071 .loc 1 1786 3 is_stmt 1 view .LVU1048 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3072 .loc 1 1786 21 is_stmt 0 view .LVU1049 3073 0054 CCF83810 str r1, [ip, #56] 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3074 .loc 1 1787 3 is_stmt 1 view .LVU1050 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3075 .loc 1 1787 21 is_stmt 0 view .LVU1051 3076 0058 ACF83C30 strh r3, [ip, #60] @ movhi 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3077 .loc 1 1788 3 is_stmt 1 view .LVU1052 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3078 .loc 1 1788 21 is_stmt 0 view .LVU1053 3079 005c ACF83E30 strh r3, [ip, #62] @ movhi 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3080 .loc 1 1789 3 is_stmt 1 view .LVU1054 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3081 .loc 1 1789 21 is_stmt 0 view .LVU1055 3082 0060 CCF84020 str r2, [ip, #64] 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; ARM GAS /tmp/ccywxtmH.s page 148 3083 .loc 1 1790 3 is_stmt 1 view .LVU1056 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3084 .loc 1 1790 21 is_stmt 0 view .LVU1057 3085 0064 ACF84430 strh r3, [ip, #68] @ movhi 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3086 .loc 1 1791 3 is_stmt 1 view .LVU1058 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3087 .loc 1 1791 21 is_stmt 0 view .LVU1059 3088 0068 ACF84630 strh r3, [ip, #70] @ movhi 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3089 .loc 1 1794 3 is_stmt 1 view .LVU1060 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3090 .loc 1 1794 17 is_stmt 0 view .LVU1061 3091 006c DCF80C20 ldr r2, [ip, #12] 3092 .LVL179: 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3093 .loc 1 1794 6 view .LVU1062 3094 0070 B2F5E06F cmp r2, #1792 3095 0074 22D9 bls .L227 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3096 .loc 1 1796 5 is_stmt 1 view .LVU1063 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3097 .loc 1 1796 21 is_stmt 0 view .LVU1064 3098 0076 2349 ldr r1, .L244 3099 .LVL180: 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3100 .loc 1 1796 21 view .LVU1065 3101 0078 CCF84C10 str r1, [ip, #76] 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3102 .loc 1 1797 5 is_stmt 1 view .LVU1066 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3103 .loc 1 1797 21 is_stmt 0 view .LVU1067 3104 007c 2249 ldr r1, .L244+4 3105 007e CCF85010 str r1, [ip, #80] 3106 .L228: 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3107 .loc 1 1823 3 is_stmt 1 view .LVU1068 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3108 .loc 1 1823 6 is_stmt 0 view .LVU1069 3109 0082 B2F5E06F cmp r2, #1792 3110 0086 01D8 bhi .L229 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3111 .loc 1 1823 49 discriminator 1 view .LVU1070 3112 0088 012B cmp r3, #1 3113 008a 1ED9 bls .L230 3114 .L229: 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3115 .loc 1 1826 5 is_stmt 1 view .LVU1071 3116 008c DCF80020 ldr r2, [ip] 3117 0090 5368 ldr r3, [r2, #4] 3118 .LVL181: 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3119 .loc 1 1826 5 is_stmt 0 view .LVU1072 3120 0092 23F48053 bic r3, r3, #4096 3121 0096 5360 str r3, [r2, #4] 3122 .LVL182: 3123 .L231: ARM GAS /tmp/ccywxtmH.s page 149 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3124 .loc 1 1835 3 is_stmt 1 view .LVU1073 3125 0098 DCF80020 ldr r2, [ip] 3126 009c 5368 ldr r3, [r2, #4] 3127 009e 43F0E003 orr r3, r3, #224 3128 00a2 5360 str r3, [r2, #4] 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3129 .loc 1 1838 3 view .LVU1074 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3130 .loc 1 1838 12 is_stmt 0 view .LVU1075 3131 00a4 DCF80030 ldr r3, [ip] 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3132 .loc 1 1838 22 view .LVU1076 3133 00a8 1A68 ldr r2, [r3] 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3134 .loc 1 1838 6 view .LVU1077 3135 00aa 12F0400F tst r2, #64 3136 00ae 24D1 bne .L239 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3137 .loc 1 1841 5 is_stmt 1 view .LVU1078 3138 00b0 1A68 ldr r2, [r3] 3139 00b2 42F04002 orr r2, r2, #64 3140 00b6 1A60 str r2, [r3] 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3141 .loc 1 1753 24 is_stmt 0 view .LVU1079 3142 00b8 0020 movs r0, #0 3143 00ba 0EE0 b .L225 3144 .LVL183: 3145 .L227: 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3146 .loc 1 1801 5 is_stmt 1 view .LVU1080 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3147 .loc 1 1801 21 is_stmt 0 view .LVU1081 3148 00bc 1349 ldr r1, .L244+8 3149 .LVL184: 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3150 .loc 1 1801 21 view .LVU1082 3151 00be CCF84C10 str r1, [ip, #76] 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3152 .loc 1 1802 5 is_stmt 1 view .LVU1083 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3153 .loc 1 1802 21 is_stmt 0 view .LVU1084 3154 00c2 1349 ldr r1, .L244+12 3155 00c4 CCF85010 str r1, [ip, #80] 3156 00c8 DBE7 b .L228 3157 .L230: 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3158 .loc 1 1831 5 is_stmt 1 view .LVU1085 3159 00ca DCF80020 ldr r2, [ip] 3160 00ce 5368 ldr r3, [r2, #4] 3161 .LVL185: 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3162 .loc 1 1831 5 is_stmt 0 view .LVU1086 3163 00d0 43F48053 orr r3, r3, #4096 3164 00d4 5360 str r3, [r2, #4] 3165 .LVL186: 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 150 3166 .loc 1 1831 5 view .LVU1087 3167 00d6 DFE7 b .L231 3168 .LVL187: 3169 .L233: 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3170 .loc 1 1768 15 view .LVU1088 3171 00d8 0220 movs r0, #2 3172 .LVL188: 3173 .L225: 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3174 .loc 1 1846 3 is_stmt 1 view .LVU1089 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3175 .loc 1 1846 3 view .LVU1090 3176 00da 0023 movs r3, #0 3177 00dc 8CF85C30 strb r3, [ip, #92] 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3178 .loc 1 1846 3 view .LVU1091 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3179 .loc 1 1847 3 view .LVU1092 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3180 .loc 1 1848 1 is_stmt 0 view .LVU1093 3181 00e0 5DF8044B ldr r4, [sp], #4 3182 .cfi_remember_state 3183 .cfi_restore 4 3184 .cfi_def_cfa_offset 0 3185 00e4 7047 bx lr 3186 .LVL189: 3187 .L234: 3188 .cfi_restore_state 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3189 .loc 1 1768 15 view .LVU1094 3190 00e6 0220 movs r0, #2 3191 .LVL190: 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3192 .loc 1 1768 15 view .LVU1095 3193 00e8 F7E7 b .L225 3194 .LVL191: 3195 .L235: 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3196 .loc 1 1768 15 view .LVU1096 3197 00ea 0220 movs r0, #2 3198 .LVL192: 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3199 .loc 1 1768 15 view .LVU1097 3200 00ec F5E7 b .L225 3201 .LVL193: 3202 .L236: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3203 .loc 1 1774 15 view .LVU1098 3204 00ee 0120 movs r0, #1 3205 .LVL194: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3206 .loc 1 1774 15 view .LVU1099 3207 00f0 F3E7 b .L225 3208 .LVL195: 3209 .L237: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; ARM GAS /tmp/ccywxtmH.s page 151 3210 .loc 1 1774 15 view .LVU1100 3211 00f2 0120 movs r0, #1 3212 .LVL196: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3213 .loc 1 1774 15 view .LVU1101 3214 00f4 F1E7 b .L225 3215 .LVL197: 3216 .L238: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3217 .loc 1 1774 15 view .LVU1102 3218 00f6 0120 movs r0, #1 3219 .LVL198: 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3220 .loc 1 1774 15 view .LVU1103 3221 00f8 EFE7 b .L225 3222 .LVL199: 3223 .L239: 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3224 .loc 1 1753 24 view .LVU1104 3225 00fa 0020 movs r0, #0 3226 00fc EDE7 b .L225 3227 .LVL200: 3228 .L232: 3229 .cfi_def_cfa_offset 0 3230 .cfi_restore 4 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3231 .loc 1 1759 3 view .LVU1105 3232 00fe 0220 movs r0, #2 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3233 .loc 1 1848 1 view .LVU1106 3234 0100 7047 bx lr 3235 .L245: 3236 0102 00BF .align 2 3237 .L244: 3238 0104 00000000 .word SPI_2linesRxISR_16BIT 3239 0108 00000000 .word SPI_2linesTxISR_16BIT 3240 010c 00000000 .word SPI_2linesRxISR_8BIT 3241 0110 00000000 .word SPI_2linesTxISR_8BIT 3242 .cfi_endproc 3243 .LFE139: 3245 .section .text.HAL_SPI_Receive_IT,"ax",%progbits 3246 .align 1 3247 .global HAL_SPI_Receive_IT 3248 .syntax unified 3249 .thumb 3250 .thumb_func 3252 HAL_SPI_Receive_IT: 3253 .LVL201: 3254 .LFB138: 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3255 .loc 1 1643 1 is_stmt 1 view -0 3256 .cfi_startproc 3257 @ args = 0, pretend = 0, frame = 0 3258 @ frame_needed = 0, uses_anonymous_args = 0 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3259 .loc 1 1643 1 is_stmt 0 view .LVU1108 3260 0000 08B5 push {r3, lr} ARM GAS /tmp/ccywxtmH.s page 152 3261 .cfi_def_cfa_offset 8 3262 .cfi_offset 3, -8 3263 .cfi_offset 14, -4 3264 0002 8446 mov ip, r0 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3265 .loc 1 1644 3 is_stmt 1 view .LVU1109 3266 .LVL202: 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3267 .loc 1 1646 3 view .LVU1110 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3268 .loc 1 1646 18 is_stmt 0 view .LVU1111 3269 0004 8368 ldr r3, [r0, #8] 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3270 .loc 1 1646 6 view .LVU1112 3271 0006 1BB9 cbnz r3, .L247 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3272 .loc 1 1646 68 discriminator 1 view .LVU1113 3273 0008 4368 ldr r3, [r0, #4] 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3274 .loc 1 1646 54 discriminator 1 view .LVU1114 3275 000a B3F5827F cmp r3, #260 3276 000e 48D0 beq .L257 3277 .L247: 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3278 .loc 1 1654 3 is_stmt 1 view .LVU1115 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3279 .loc 1 1654 3 view .LVU1116 3280 0010 9CF85C30 ldrb r3, [ip, #92] @ zero_extendqisi2 3281 0014 012B cmp r3, #1 3282 0016 6AD0 beq .L253 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3283 .loc 1 1654 3 discriminator 2 view .LVU1117 3284 0018 0123 movs r3, #1 3285 001a 8CF85C30 strb r3, [ip, #92] 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3286 .loc 1 1654 3 discriminator 2 view .LVU1118 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3287 .loc 1 1656 3 discriminator 2 view .LVU1119 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3288 .loc 1 1656 11 is_stmt 0 discriminator 2 view .LVU1120 3289 001e 9CF85D00 ldrb r0, [ip, #93] @ zero_extendqisi2 3290 .LVL203: 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3291 .loc 1 1656 11 discriminator 2 view .LVU1121 3292 0022 C0B2 uxtb r0, r0 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3293 .loc 1 1656 6 discriminator 2 view .LVU1122 3294 0024 9842 cmp r0, r3 3295 0026 5BD1 bne .L254 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3296 .loc 1 1662 3 is_stmt 1 view .LVU1123 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3297 .loc 1 1662 6 is_stmt 0 view .LVU1124 3298 0028 0029 cmp r1, #0 3299 002a 5AD0 beq .L249 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3300 .loc 1 1662 23 discriminator 1 view .LVU1125 ARM GAS /tmp/ccywxtmH.s page 153 3301 002c 002A cmp r2, #0 3302 002e 58D0 beq .L249 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3303 .loc 1 1669 3 is_stmt 1 view .LVU1126 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3304 .loc 1 1669 21 is_stmt 0 view .LVU1127 3305 0030 0423 movs r3, #4 3306 0032 8CF85D30 strb r3, [ip, #93] 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3307 .loc 1 1670 3 is_stmt 1 view .LVU1128 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3308 .loc 1 1670 21 is_stmt 0 view .LVU1129 3309 0036 0023 movs r3, #0 3310 0038 CCF86030 str r3, [ip, #96] 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3311 .loc 1 1671 3 is_stmt 1 view .LVU1130 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3312 .loc 1 1671 21 is_stmt 0 view .LVU1131 3313 003c CCF84010 str r1, [ip, #64] 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3314 .loc 1 1672 3 is_stmt 1 view .LVU1132 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3315 .loc 1 1672 21 is_stmt 0 view .LVU1133 3316 0040 ACF84420 strh r2, [ip, #68] @ movhi 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3317 .loc 1 1673 3 is_stmt 1 view .LVU1134 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3318 .loc 1 1673 21 is_stmt 0 view .LVU1135 3319 0044 ACF84620 strh r2, [ip, #70] @ movhi 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3320 .loc 1 1676 3 is_stmt 1 view .LVU1136 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3321 .loc 1 1676 21 is_stmt 0 view .LVU1137 3322 0048 CCF83830 str r3, [ip, #56] 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3323 .loc 1 1677 3 is_stmt 1 view .LVU1138 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3324 .loc 1 1677 21 is_stmt 0 view .LVU1139 3325 004c ACF83C30 strh r3, [ip, #60] @ movhi 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3326 .loc 1 1678 3 is_stmt 1 view .LVU1140 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3327 .loc 1 1678 21 is_stmt 0 view .LVU1141 3328 0050 ACF83E30 strh r3, [ip, #62] @ movhi 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3329 .loc 1 1679 3 is_stmt 1 view .LVU1142 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3330 .loc 1 1679 21 is_stmt 0 view .LVU1143 3331 0054 CCF85030 str r3, [ip, #80] 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3332 .loc 1 1682 3 is_stmt 1 view .LVU1144 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3333 .loc 1 1682 17 is_stmt 0 view .LVU1145 3334 0058 DCF80C30 ldr r3, [ip, #12] 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3335 .loc 1 1682 6 view .LVU1146 3336 005c B3F5E06F cmp r3, #1792 ARM GAS /tmp/ccywxtmH.s page 154 3337 0060 27D9 bls .L250 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3338 .loc 1 1685 5 is_stmt 1 view .LVU1147 3339 0062 DCF80020 ldr r2, [ip] 3340 .LVL204: 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3341 .loc 1 1685 5 is_stmt 0 view .LVU1148 3342 0066 5368 ldr r3, [r2, #4] 3343 0068 23F48053 bic r3, r3, #4096 3344 006c 5360 str r3, [r2, #4] 3345 .LVL205: 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3346 .loc 1 1686 5 is_stmt 1 view .LVU1149 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3347 .loc 1 1686 17 is_stmt 0 view .LVU1150 3348 006e 214B ldr r3, .L259 3349 0070 CCF84C30 str r3, [ip, #76] 3350 .L251: 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3351 .loc 1 1696 3 is_stmt 1 view .LVU1151 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3352 .loc 1 1696 17 is_stmt 0 view .LVU1152 3353 0074 DCF80830 ldr r3, [ip, #8] 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3354 .loc 1 1696 6 view .LVU1153 3355 0078 B3F5004F cmp r3, #32768 3356 007c 23D0 beq .L258 3357 .L252: 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3358 .loc 1 1721 3 is_stmt 1 view .LVU1154 3359 007e DCF80020 ldr r2, [ip] 3360 0082 5368 ldr r3, [r2, #4] 3361 0084 43F06003 orr r3, r3, #96 3362 0088 5360 str r3, [r2, #4] 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3363 .loc 1 1728 3 view .LVU1155 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3364 .loc 1 1728 12 is_stmt 0 view .LVU1156 3365 008a DCF80030 ldr r3, [ip] 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3366 .loc 1 1728 22 view .LVU1157 3367 008e 1A68 ldr r2, [r3] 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3368 .loc 1 1728 6 view .LVU1158 3369 0090 12F0400F tst r2, #64 3370 0094 29D1 bne .L255 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3371 .loc 1 1731 5 is_stmt 1 view .LVU1159 3372 0096 1A68 ldr r2, [r3] 3373 0098 42F04002 orr r2, r2, #64 3374 009c 1A60 str r2, [r3] 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3375 .loc 1 1644 21 is_stmt 0 view .LVU1160 3376 009e 0020 movs r0, #0 3377 00a0 1FE0 b .L249 3378 .LVL206: 3379 .L257: ARM GAS /tmp/ccywxtmH.s page 155 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 3380 .loc 1 1648 5 is_stmt 1 view .LVU1161 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 3381 .loc 1 1648 17 is_stmt 0 view .LVU1162 3382 00a2 0423 movs r3, #4 3383 00a4 80F85D30 strb r3, [r0, #93] 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3384 .loc 1 1650 5 is_stmt 1 view .LVU1163 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3385 .loc 1 1650 12 is_stmt 0 view .LVU1164 3386 00a8 1346 mov r3, r2 3387 00aa 0A46 mov r2, r1 3388 .LVL207: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3389 .loc 1 1650 12 view .LVU1165 3390 00ac FFF7FEFF bl HAL_SPI_TransmitReceive_IT 3391 .LVL208: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3392 .loc 1 1650 12 view .LVU1166 3393 00b0 1AE0 b .L248 3394 .LVL209: 3395 .L250: 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3396 .loc 1 1691 5 is_stmt 1 view .LVU1167 3397 00b2 DCF80020 ldr r2, [ip] 3398 .LVL210: 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3399 .loc 1 1691 5 is_stmt 0 view .LVU1168 3400 00b6 5368 ldr r3, [r2, #4] 3401 00b8 43F48053 orr r3, r3, #4096 3402 00bc 5360 str r3, [r2, #4] 3403 .LVL211: 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3404 .loc 1 1692 5 is_stmt 1 view .LVU1169 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3405 .loc 1 1692 17 is_stmt 0 view .LVU1170 3406 00be 0E4B ldr r3, .L259+4 3407 00c0 CCF84C30 str r3, [ip, #76] 3408 00c4 D6E7 b .L251 3409 .L258: 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 3410 .loc 1 1699 5 is_stmt 1 view .LVU1171 3411 00c6 DCF80020 ldr r2, [ip] 3412 00ca 1368 ldr r3, [r2] 3413 00cc 23F04003 bic r3, r3, #64 3414 00d0 1360 str r3, [r2] 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3415 .loc 1 1700 5 view .LVU1172 3416 00d2 DCF80020 ldr r2, [ip] 3417 00d6 1368 ldr r3, [r2] 3418 00d8 23F48043 bic r3, r3, #16384 3419 00dc 1360 str r3, [r2] 3420 00de CEE7 b .L252 3421 .LVL212: 3422 .L254: 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3423 .loc 1 1658 15 is_stmt 0 view .LVU1173 ARM GAS /tmp/ccywxtmH.s page 156 3424 00e0 0220 movs r0, #2 3425 .LVL213: 3426 .L249: 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3427 .loc 1 1736 3 is_stmt 1 view .LVU1174 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3428 .loc 1 1736 3 view .LVU1175 3429 00e2 0023 movs r3, #0 3430 00e4 8CF85C30 strb r3, [ip, #92] 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3431 .loc 1 1736 3 view .LVU1176 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3432 .loc 1 1737 3 view .LVU1177 3433 .LVL214: 3434 .L248: 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3435 .loc 1 1738 1 is_stmt 0 view .LVU1178 3436 00e8 08BD pop {r3, pc} 3437 .LVL215: 3438 .L255: 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3439 .loc 1 1644 21 view .LVU1179 3440 00ea 0020 movs r0, #0 3441 00ec F9E7 b .L249 3442 .LVL216: 3443 .L253: 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3444 .loc 1 1654 3 view .LVU1180 3445 00ee 0220 movs r0, #2 3446 .LVL217: 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3447 .loc 1 1654 3 view .LVU1181 3448 00f0 FAE7 b .L248 3449 .L260: 3450 00f2 00BF .align 2 3451 .L259: 3452 00f4 00000000 .word SPI_RxISR_16BIT 3453 00f8 00000000 .word SPI_RxISR_8BIT 3454 .cfi_endproc 3455 .LFE138: 3457 .section .text.HAL_SPI_Transmit_DMA,"ax",%progbits 3458 .align 1 3459 .global HAL_SPI_Transmit_DMA 3460 .syntax unified 3461 .thumb 3462 .thumb_func 3464 HAL_SPI_Transmit_DMA: 3465 .LVL218: 3466 .LFB140: 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3467 .loc 1 1859 1 is_stmt 1 view -0 3468 .cfi_startproc 3469 @ args = 0, pretend = 0, frame = 0 3470 @ frame_needed = 0, uses_anonymous_args = 0 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3471 .loc 1 1859 1 is_stmt 0 view .LVU1183 3472 0000 38B5 push {r3, r4, r5, lr} ARM GAS /tmp/ccywxtmH.s page 157 3473 .cfi_def_cfa_offset 16 3474 .cfi_offset 3, -16 3475 .cfi_offset 4, -12 3476 .cfi_offset 5, -8 3477 .cfi_offset 14, -4 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3478 .loc 1 1860 3 is_stmt 1 view .LVU1184 3479 .LVL219: 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3480 .loc 1 1863 3 view .LVU1185 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3481 .loc 1 1866 3 view .LVU1186 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3482 .loc 1 1869 3 view .LVU1187 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3483 .loc 1 1869 3 view .LVU1188 3484 0002 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 3485 0006 012B cmp r3, #1 3486 0008 00F08C80 beq .L269 3487 000c 0446 mov r4, r0 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3488 .loc 1 1869 3 discriminator 2 view .LVU1189 3489 000e 0123 movs r3, #1 3490 0010 80F85C30 strb r3, [r0, #92] 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3491 .loc 1 1869 3 discriminator 2 view .LVU1190 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3492 .loc 1 1871 3 discriminator 2 view .LVU1191 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3493 .loc 1 1871 11 is_stmt 0 discriminator 2 view .LVU1192 3494 0014 90F85D50 ldrb r5, [r0, #93] @ zero_extendqisi2 3495 0018 EDB2 uxtb r5, r5 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3496 .loc 1 1871 6 discriminator 2 view .LVU1193 3497 001a 9D42 cmp r5, r3 3498 001c 7CD1 bne .L270 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3499 .loc 1 1877 3 is_stmt 1 view .LVU1194 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3500 .loc 1 1877 6 is_stmt 0 view .LVU1195 3501 001e 0029 cmp r1, #0 3502 0020 7BD0 beq .L263 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3503 .loc 1 1877 23 discriminator 1 view .LVU1196 3504 0022 002A cmp r2, #0 3505 0024 79D0 beq .L263 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3506 .loc 1 1884 3 is_stmt 1 view .LVU1197 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3507 .loc 1 1884 21 is_stmt 0 view .LVU1198 3508 0026 0323 movs r3, #3 3509 0028 80F85D30 strb r3, [r0, #93] 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3510 .loc 1 1885 3 is_stmt 1 view .LVU1199 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3511 .loc 1 1885 21 is_stmt 0 view .LVU1200 3512 002c 0023 movs r3, #0 ARM GAS /tmp/ccywxtmH.s page 158 3513 002e 0366 str r3, [r0, #96] 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3514 .loc 1 1886 3 is_stmt 1 view .LVU1201 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3515 .loc 1 1886 21 is_stmt 0 view .LVU1202 3516 0030 8163 str r1, [r0, #56] 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3517 .loc 1 1887 3 is_stmt 1 view .LVU1203 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3518 .loc 1 1887 21 is_stmt 0 view .LVU1204 3519 0032 8287 strh r2, [r0, #60] @ movhi 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3520 .loc 1 1888 3 is_stmt 1 view .LVU1205 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3521 .loc 1 1888 21 is_stmt 0 view .LVU1206 3522 0034 C287 strh r2, [r0, #62] @ movhi 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3523 .loc 1 1891 3 is_stmt 1 view .LVU1207 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3524 .loc 1 1891 21 is_stmt 0 view .LVU1208 3525 0036 0364 str r3, [r0, #64] 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3526 .loc 1 1892 3 is_stmt 1 view .LVU1209 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3527 .loc 1 1892 21 is_stmt 0 view .LVU1210 3528 0038 0365 str r3, [r0, #80] 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3529 .loc 1 1893 3 is_stmt 1 view .LVU1211 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3530 .loc 1 1893 21 is_stmt 0 view .LVU1212 3531 003a C364 str r3, [r0, #76] 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3532 .loc 1 1894 3 is_stmt 1 view .LVU1213 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3533 .loc 1 1894 21 is_stmt 0 view .LVU1214 3534 003c A0F84430 strh r3, [r0, #68] @ movhi 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535 .loc 1 1895 3 is_stmt 1 view .LVU1215 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3536 .loc 1 1895 21 is_stmt 0 view .LVU1216 3537 0040 A0F84630 strh r3, [r0, #70] @ movhi 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3538 .loc 1 1898 3 is_stmt 1 view .LVU1217 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3539 .loc 1 1898 17 is_stmt 0 view .LVU1218 3540 0044 8368 ldr r3, [r0, #8] 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3541 .loc 1 1898 6 view .LVU1219 3542 0046 B3F5004F cmp r3, #32768 3543 004a 39D0 beq .L272 3544 .LVL220: 3545 .L264: 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3546 .loc 1 1914 3 is_stmt 1 view .LVU1220 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3547 .loc 1 1914 7 is_stmt 0 view .LVU1221 3548 004c 636D ldr r3, [r4, #84] ARM GAS /tmp/ccywxtmH.s page 159 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3549 .loc 1 1914 38 view .LVU1222 3550 004e 364A ldr r2, .L275 3551 0050 DA62 str r2, [r3, #44] 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3552 .loc 1 1917 3 is_stmt 1 view .LVU1223 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3553 .loc 1 1917 7 is_stmt 0 view .LVU1224 3554 0052 636D ldr r3, [r4, #84] 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3555 .loc 1 1917 34 view .LVU1225 3556 0054 354A ldr r2, .L275+4 3557 0056 9A62 str r2, [r3, #40] 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3558 .loc 1 1920 3 is_stmt 1 view .LVU1226 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3559 .loc 1 1920 7 is_stmt 0 view .LVU1227 3560 0058 636D ldr r3, [r4, #84] 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3561 .loc 1 1920 35 view .LVU1228 3562 005a 354A ldr r2, .L275+8 3563 005c 1A63 str r2, [r3, #48] 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3564 .loc 1 1923 3 is_stmt 1 view .LVU1229 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3565 .loc 1 1923 7 is_stmt 0 view .LVU1230 3566 005e 636D ldr r3, [r4, #84] 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3567 .loc 1 1923 35 view .LVU1231 3568 0060 0022 movs r2, #0 3569 0062 5A63 str r2, [r3, #52] 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 3570 .loc 1 1925 3 is_stmt 1 view .LVU1232 3571 0064 2268 ldr r2, [r4] 3572 0066 5368 ldr r3, [r2, #4] 3573 0068 23F48043 bic r3, r3, #16384 3574 006c 5360 str r3, [r2, #4] 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3575 .loc 1 1927 3 view .LVU1233 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3576 .loc 1 1927 18 is_stmt 0 view .LVU1234 3577 006e E368 ldr r3, [r4, #12] 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3578 .loc 1 1927 6 view .LVU1235 3579 0070 B3F5E06F cmp r3, #1792 3580 0074 04D8 bhi .L265 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3581 .loc 1 1927 58 discriminator 1 view .LVU1236 3582 0076 636D ldr r3, [r4, #84] 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3583 .loc 1 1927 72 discriminator 1 view .LVU1237 3584 0078 5B69 ldr r3, [r3, #20] 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3585 .loc 1 1927 50 discriminator 1 view .LVU1238 3586 007a B3F5806F cmp r3, #1024 3587 007e 2AD0 beq .L273 3588 .L265: ARM GAS /tmp/ccywxtmH.s page 160 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3589 .loc 1 1943 3 is_stmt 1 view .LVU1239 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3590 .loc 1 1943 91 is_stmt 0 view .LVU1240 3591 0080 2268 ldr r2, [r4] 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3592 .loc 1 1944 38 view .LVU1241 3593 0082 E38F ldrh r3, [r4, #62] 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3594 .loc 1 1943 17 view .LVU1242 3595 0084 9BB2 uxth r3, r3 3596 0086 0C32 adds r2, r2, #12 3597 0088 A16B ldr r1, [r4, #56] 3598 .LVL221: 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3599 .loc 1 1943 17 view .LVU1243 3600 008a 606D ldr r0, [r4, #84] 3601 .LVL222: 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3602 .loc 1 1943 17 view .LVU1244 3603 008c FFF7FEFF bl HAL_DMA_Start_IT 3604 .LVL223: 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3605 .loc 1 1943 6 view .LVU1245 3606 0090 0146 mov r1, r0 3607 0092 0028 cmp r0, #0 3608 0094 38D1 bne .L274 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3609 .loc 1 1955 3 is_stmt 1 view .LVU1246 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3610 .loc 1 1955 12 is_stmt 0 view .LVU1247 3611 0096 2368 ldr r3, [r4] 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3612 .loc 1 1955 22 view .LVU1248 3613 0098 1A68 ldr r2, [r3] 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3614 .loc 1 1955 6 view .LVU1249 3615 009a 12F0400F tst r2, #64 3616 009e 03D1 bne .L268 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3617 .loc 1 1958 5 is_stmt 1 view .LVU1250 3618 00a0 1A68 ldr r2, [r3] 3619 00a2 42F04002 orr r2, r2, #64 3620 00a6 1A60 str r2, [r3] 3621 .L268: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3622 .loc 1 1962 3 view .LVU1251 3623 00a8 2268 ldr r2, [r4] 3624 00aa 5368 ldr r3, [r2, #4] 3625 00ac 43F02003 orr r3, r3, #32 3626 00b0 5360 str r3, [r2, #4] 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3627 .loc 1 1965 3 view .LVU1252 3628 00b2 2268 ldr r2, [r4] 3629 00b4 5368 ldr r3, [r2, #4] 3630 00b6 43F00203 orr r3, r3, #2 3631 00ba 5360 str r3, [r2, #4] ARM GAS /tmp/ccywxtmH.s page 161 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3632 .loc 1 1860 21 is_stmt 0 view .LVU1253 3633 00bc 0D46 mov r5, r1 3634 00be 2CE0 b .L263 3635 .LVL224: 3636 .L272: 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3637 .loc 1 1901 5 is_stmt 1 view .LVU1254 3638 00c0 0268 ldr r2, [r0] 3639 .LVL225: 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3640 .loc 1 1901 5 is_stmt 0 view .LVU1255 3641 00c2 1368 ldr r3, [r2] 3642 00c4 23F04003 bic r3, r3, #64 3643 00c8 1360 str r3, [r2] 3644 .LVL226: 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3645 .loc 1 1902 5 is_stmt 1 view .LVU1256 3646 00ca 0268 ldr r2, [r0] 3647 00cc 1368 ldr r3, [r2] 3648 00ce 43F48043 orr r3, r3, #16384 3649 00d2 1360 str r3, [r2] 3650 00d4 BAE7 b .L264 3651 .L273: 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3652 .loc 1 1930 5 view .LVU1257 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3653 .loc 1 1930 14 is_stmt 0 view .LVU1258 3654 00d6 E38F ldrh r3, [r4, #62] 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3655 .loc 1 1930 8 view .LVU1259 3656 00d8 13F0010F tst r3, #1 3657 00dc 09D1 bne .L266 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 3658 .loc 1 1932 7 is_stmt 1 view .LVU1260 3659 00de 2268 ldr r2, [r4] 3660 00e0 5368 ldr r3, [r2, #4] 3661 00e2 23F48043 bic r3, r3, #16384 3662 00e6 5360 str r3, [r2, #4] 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3663 .loc 1 1933 7 view .LVU1261 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3664 .loc 1 1933 32 is_stmt 0 view .LVU1262 3665 00e8 E38F ldrh r3, [r4, #62] 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3666 .loc 1 1933 25 view .LVU1263 3667 00ea C3F34E03 ubfx r3, r3, #1, #15 3668 00ee E387 strh r3, [r4, #62] @ movhi 3669 00f0 C6E7 b .L265 3670 .L266: 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 3671 .loc 1 1937 7 is_stmt 1 view .LVU1264 3672 00f2 2268 ldr r2, [r4] 3673 00f4 5368 ldr r3, [r2, #4] 3674 00f6 43F48043 orr r3, r3, #16384 3675 00fa 5360 str r3, [r2, #4] 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 162 3676 .loc 1 1938 7 view .LVU1265 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3677 .loc 1 1938 32 is_stmt 0 view .LVU1266 3678 00fc E38F ldrh r3, [r4, #62] 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3679 .loc 1 1938 53 view .LVU1267 3680 00fe C3F34E03 ubfx r3, r3, #1, #15 3681 0102 0133 adds r3, r3, #1 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3682 .loc 1 1938 25 view .LVU1268 3683 0104 E387 strh r3, [r4, #62] @ movhi 3684 0106 BBE7 b .L265 3685 .LVL227: 3686 .L274: 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3687 .loc 1 1947 5 is_stmt 1 view .LVU1269 3688 0108 236E ldr r3, [r4, #96] 3689 010a 43F01003 orr r3, r3, #16 3690 010e 2366 str r3, [r4, #96] 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3691 .loc 1 1948 5 view .LVU1270 3692 .LVL228: 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3693 .loc 1 1950 5 view .LVU1271 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3694 .loc 1 1950 17 is_stmt 0 view .LVU1272 3695 0110 0123 movs r3, #1 3696 0112 84F85D30 strb r3, [r4, #93] 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3697 .loc 1 1951 5 is_stmt 1 view .LVU1273 3698 0116 00E0 b .L263 3699 .LVL229: 3700 .L270: 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3701 .loc 1 1873 15 is_stmt 0 view .LVU1274 3702 0118 0225 movs r5, #2 3703 .LVL230: 3704 .L263: 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3705 .loc 1 1969 3 is_stmt 1 view .LVU1275 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3706 .loc 1 1969 3 view .LVU1276 3707 011a 0023 movs r3, #0 3708 011c 84F85C30 strb r3, [r4, #92] 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3709 .loc 1 1969 3 view .LVU1277 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3710 .loc 1 1970 3 view .LVU1278 3711 .LVL231: 3712 .L262: 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3713 .loc 1 1971 1 is_stmt 0 view .LVU1279 3714 0120 2846 mov r0, r5 3715 0122 38BD pop {r3, r4, r5, pc} 3716 .LVL232: 3717 .L269: 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 163 3718 .loc 1 1869 3 view .LVU1280 3719 0124 0225 movs r5, #2 3720 0126 FBE7 b .L262 3721 .L276: 3722 .align 2 3723 .L275: 3724 0128 00000000 .word SPI_DMAHalfTransmitCplt 3725 012c 00000000 .word SPI_DMATransmitCplt 3726 0130 00000000 .word SPI_DMAError 3727 .cfi_endproc 3728 .LFE140: 3730 .section .text.HAL_SPI_TransmitReceive_DMA,"ax",%progbits 3731 .align 1 3732 .global HAL_SPI_TransmitReceive_DMA 3733 .syntax unified 3734 .thumb 3735 .thumb_func 3737 HAL_SPI_TransmitReceive_DMA: 3738 .LVL233: 3739 .LFB142: 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3740 .loc 1 2139 1 is_stmt 1 view -0 3741 .cfi_startproc 3742 @ args = 0, pretend = 0, frame = 0 3743 @ frame_needed = 0, uses_anonymous_args = 0 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3744 .loc 1 2139 1 is_stmt 0 view .LVU1282 3745 0000 38B5 push {r3, r4, r5, lr} 3746 .cfi_def_cfa_offset 16 3747 .cfi_offset 3, -16 3748 .cfi_offset 4, -12 3749 .cfi_offset 5, -8 3750 .cfi_offset 14, -4 3751 0002 0446 mov r4, r0 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 3752 .loc 1 2140 3 is_stmt 1 view .LVU1283 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3753 .loc 1 2141 3 view .LVU1284 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3754 .loc 1 2142 3 view .LVU1285 3755 .LVL234: 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 3756 .loc 1 2145 3 view .LVU1286 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3757 .loc 1 2146 3 view .LVU1287 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3758 .loc 1 2149 3 view .LVU1288 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3759 .loc 1 2152 3 view .LVU1289 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3760 .loc 1 2152 3 view .LVU1290 3761 0004 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 3762 .LVL235: 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3763 .loc 1 2152 3 is_stmt 0 view .LVU1291 3764 0008 0128 cmp r0, #1 3765 000a 00F00381 beq .L293 ARM GAS /tmp/ccywxtmH.s page 164 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3766 .loc 1 2152 3 is_stmt 1 discriminator 2 view .LVU1292 3767 000e 0120 movs r0, #1 3768 0010 84F85C00 strb r0, [r4, #92] 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3769 .loc 1 2152 3 discriminator 2 view .LVU1293 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3770 .loc 1 2155 3 discriminator 2 view .LVU1294 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3771 .loc 1 2155 23 is_stmt 0 discriminator 2 view .LVU1295 3772 0014 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3773 0018 C0B2 uxtb r0, r0 3774 .LVL236: 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3775 .loc 1 2156 3 is_stmt 1 discriminator 2 view .LVU1296 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3776 .loc 1 2156 23 is_stmt 0 discriminator 2 view .LVU1297 3777 001a 6568 ldr r5, [r4, #4] 3778 .LVL237: 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3779 .loc 1 2158 3 is_stmt 1 discriminator 2 view .LVU1298 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3780 .loc 1 2158 6 is_stmt 0 discriminator 2 view .LVU1299 3781 001c 0128 cmp r0, #1 3782 001e 0AD0 beq .L279 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3783 .loc 1 2158 7 discriminator 1 view .LVU1300 3784 0020 B5F5827F cmp r5, #260 3785 0024 40F0E580 bne .L294 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3786 .loc 1 2159 54 view .LVU1301 3787 0028 A568 ldr r5, [r4, #8] 3788 .LVL238: 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3789 .loc 1 2159 40 view .LVU1302 3790 002a 002D cmp r5, #0 3791 002c 40F0E680 bne .L295 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3792 .loc 1 2159 90 discriminator 1 view .LVU1303 3793 0030 0428 cmp r0, #4 3794 0032 40F0E580 bne .L296 3795 .L279: 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3796 .loc 1 2165 3 is_stmt 1 view .LVU1304 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3797 .loc 1 2165 6 is_stmt 0 view .LVU1305 3798 0036 0029 cmp r1, #0 3799 0038 00F0E480 beq .L297 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3800 .loc 1 2165 25 discriminator 1 view .LVU1306 3801 003c 002A cmp r2, #0 3802 003e 00F0E380 beq .L298 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3803 .loc 1 2165 46 discriminator 2 view .LVU1307 3804 0042 002B cmp r3, #0 3805 0044 00F0E280 beq .L299 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 165 3806 .loc 1 2172 3 is_stmt 1 view .LVU1308 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3807 .loc 1 2172 11 is_stmt 0 view .LVU1309 3808 0048 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3809 .LVL239: 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3810 .loc 1 2172 11 view .LVU1310 3811 004c C0B2 uxtb r0, r0 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3812 .loc 1 2172 6 view .LVU1311 3813 004e 0428 cmp r0, #4 3814 0050 02D0 beq .L281 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3815 .loc 1 2174 5 is_stmt 1 view .LVU1312 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3816 .loc 1 2174 17 is_stmt 0 view .LVU1313 3817 0052 0520 movs r0, #5 3818 0054 84F85D00 strb r0, [r4, #93] 3819 .L281: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3820 .loc 1 2178 3 is_stmt 1 view .LVU1314 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3821 .loc 1 2178 21 is_stmt 0 view .LVU1315 3822 0058 0020 movs r0, #0 3823 005a 2066 str r0, [r4, #96] 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3824 .loc 1 2179 3 is_stmt 1 view .LVU1316 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3825 .loc 1 2179 21 is_stmt 0 view .LVU1317 3826 005c A163 str r1, [r4, #56] 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3827 .loc 1 2180 3 is_stmt 1 view .LVU1318 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3828 .loc 1 2180 21 is_stmt 0 view .LVU1319 3829 005e A387 strh r3, [r4, #60] @ movhi 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3830 .loc 1 2181 3 is_stmt 1 view .LVU1320 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3831 .loc 1 2181 21 is_stmt 0 view .LVU1321 3832 0060 E387 strh r3, [r4, #62] @ movhi 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3833 .loc 1 2182 3 is_stmt 1 view .LVU1322 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3834 .loc 1 2182 21 is_stmt 0 view .LVU1323 3835 0062 2264 str r2, [r4, #64] 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3836 .loc 1 2183 3 is_stmt 1 view .LVU1324 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3837 .loc 1 2183 21 is_stmt 0 view .LVU1325 3838 0064 A4F84430 strh r3, [r4, #68] @ movhi 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3839 .loc 1 2184 3 is_stmt 1 view .LVU1326 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3840 .loc 1 2184 21 is_stmt 0 view .LVU1327 3841 0068 A4F84630 strh r3, [r4, #70] @ movhi 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3842 .loc 1 2187 3 is_stmt 1 view .LVU1328 ARM GAS /tmp/ccywxtmH.s page 166 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3843 .loc 1 2187 21 is_stmt 0 view .LVU1329 3844 006c E064 str r0, [r4, #76] 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3845 .loc 1 2188 3 is_stmt 1 view .LVU1330 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3846 .loc 1 2188 21 is_stmt 0 view .LVU1331 3847 006e 2065 str r0, [r4, #80] 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3848 .loc 1 2200 3 is_stmt 1 view .LVU1332 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3849 .loc 1 2200 18 is_stmt 0 view .LVU1333 3850 0070 E368 ldr r3, [r4, #12] 3851 .LVL240: 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3852 .loc 1 2200 6 view .LVU1334 3853 0072 B3F5E06F cmp r3, #1792 3854 0076 05D8 bhi .L282 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3855 .loc 1 2200 58 discriminator 1 view .LVU1335 3856 0078 A36D ldr r3, [r4, #88] 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3857 .loc 1 2200 72 discriminator 1 view .LVU1336 3858 007a 5B69 ldr r3, [r3, #20] 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3859 .loc 1 2200 50 discriminator 1 view .LVU1337 3860 007c B3F5806F cmp r3, #1024 3861 0080 00F0C680 beq .L300 3862 .L282: 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3863 .loc 1 2209 3 is_stmt 1 view .LVU1338 3864 0084 2268 ldr r2, [r4] 3865 .LVL241: 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3866 .loc 1 2209 3 is_stmt 0 view .LVU1339 3867 0086 5368 ldr r3, [r2, #4] 3868 0088 23F4C043 bic r3, r3, #24576 3869 008c 5360 str r3, [r2, #4] 3870 .LVL242: 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3871 .loc 1 2212 3 is_stmt 1 view .LVU1340 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3872 .loc 1 2212 17 is_stmt 0 view .LVU1341 3873 008e E368 ldr r3, [r4, #12] 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3874 .loc 1 2212 6 view .LVU1342 3875 0090 B3F5E06F cmp r3, #1792 3876 0094 28D9 bls .L283 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3877 .loc 1 2215 5 is_stmt 1 view .LVU1343 3878 0096 2268 ldr r2, [r4] 3879 0098 5368 ldr r3, [r2, #4] 3880 009a 23F48053 bic r3, r3, #4096 3881 009e 5360 str r3, [r2, #4] 3882 .L284: 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3883 .loc 1 2255 3 view .LVU1344 ARM GAS /tmp/ccywxtmH.s page 167 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3884 .loc 1 2255 11 is_stmt 0 view .LVU1345 3885 00a0 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 3886 00a4 DBB2 uxtb r3, r3 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3887 .loc 1 2255 6 view .LVU1346 3888 00a6 042B cmp r3, #4 3889 00a8 69D0 beq .L302 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3890 .loc 1 2264 5 is_stmt 1 view .LVU1347 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3891 .loc 1 2264 9 is_stmt 0 view .LVU1348 3892 00aa A36D ldr r3, [r4, #88] 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3893 .loc 1 2264 40 view .LVU1349 3894 00ac 5A4A ldr r2, .L305 3895 00ae DA62 str r2, [r3, #44] 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3896 .loc 1 2265 5 is_stmt 1 view .LVU1350 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3897 .loc 1 2265 9 is_stmt 0 view .LVU1351 3898 00b0 A36D ldr r3, [r4, #88] 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3899 .loc 1 2265 40 view .LVU1352 3900 00b2 5A4A ldr r2, .L305+4 3901 00b4 9A62 str r2, [r3, #40] 3902 .L289: 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3903 .loc 1 2269 3 is_stmt 1 view .LVU1353 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3904 .loc 1 2269 7 is_stmt 0 view .LVU1354 3905 00b6 A36D ldr r3, [r4, #88] 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3906 .loc 1 2269 35 view .LVU1355 3907 00b8 594A ldr r2, .L305+8 3908 00ba 1A63 str r2, [r3, #48] 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3909 .loc 1 2272 3 is_stmt 1 view .LVU1356 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3910 .loc 1 2272 7 is_stmt 0 view .LVU1357 3911 00bc A36D ldr r3, [r4, #88] 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3912 .loc 1 2272 35 view .LVU1358 3913 00be 0022 movs r2, #0 3914 00c0 5A63 str r2, [r3, #52] 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3915 .loc 1 2275 3 is_stmt 1 view .LVU1359 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3916 .loc 1 2275 63 is_stmt 0 view .LVU1360 3917 00c2 2168 ldr r1, [r4] 3918 .LVL243: 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3919 .loc 1 2276 38 view .LVU1361 3920 00c4 B4F84630 ldrh r3, [r4, #70] 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3921 .loc 1 2275 17 view .LVU1362 3922 00c8 9BB2 uxth r3, r3 ARM GAS /tmp/ccywxtmH.s page 168 3923 00ca 226C ldr r2, [r4, #64] 3924 00cc 0C31 adds r1, r1, #12 3925 00ce A06D ldr r0, [r4, #88] 3926 00d0 FFF7FEFF bl HAL_DMA_Start_IT 3927 .LVL244: 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3928 .loc 1 2275 6 view .LVU1363 3929 00d4 0028 cmp r0, #0 3930 00d6 59D0 beq .L290 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3931 .loc 1 2279 5 is_stmt 1 view .LVU1364 3932 00d8 236E ldr r3, [r4, #96] 3933 00da 43F01003 orr r3, r3, #16 3934 00de 2366 str r3, [r4, #96] 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3935 .loc 1 2280 5 view .LVU1365 3936 .LVL245: 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3937 .loc 1 2282 5 view .LVU1366 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3938 .loc 1 2282 17 is_stmt 0 view .LVU1367 3939 00e0 0120 movs r0, #1 3940 00e2 84F85D00 strb r0, [r4, #93] 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3941 .loc 1 2283 5 is_stmt 1 view .LVU1368 3942 00e6 85E0 b .L280 3943 .LVL246: 3944 .L283: 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3945 .loc 1 2220 5 view .LVU1369 3946 00e8 2268 ldr r2, [r4] 3947 00ea 5368 ldr r3, [r2, #4] 3948 00ec 43F48053 orr r3, r3, #4096 3949 00f0 5360 str r3, [r2, #4] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3950 .loc 1 2222 5 view .LVU1370 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3951 .loc 1 2222 13 is_stmt 0 view .LVU1371 3952 00f2 636D ldr r3, [r4, #84] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3953 .loc 1 2222 27 view .LVU1372 3954 00f4 5B69 ldr r3, [r3, #20] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3955 .loc 1 2222 8 view .LVU1373 3956 00f6 B3F5806F cmp r3, #1024 3957 00fa 1AD0 beq .L303 3958 .L285: 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3959 .loc 1 2236 5 is_stmt 1 view .LVU1374 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3960 .loc 1 2236 13 is_stmt 0 view .LVU1375 3961 00fc A36D ldr r3, [r4, #88] 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3962 .loc 1 2236 27 view .LVU1376 3963 00fe 5B69 ldr r3, [r3, #20] 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3964 .loc 1 2236 8 view .LVU1377 ARM GAS /tmp/ccywxtmH.s page 169 3965 0100 B3F5806F cmp r3, #1024 3966 0104 CCD1 bne .L284 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3967 .loc 1 2239 7 is_stmt 1 view .LVU1378 3968 0106 2268 ldr r2, [r4] 3969 0108 5368 ldr r3, [r2, #4] 3970 010a 23F48053 bic r3, r3, #4096 3971 010e 5360 str r3, [r2, #4] 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3972 .loc 1 2241 7 view .LVU1379 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3973 .loc 1 2241 16 is_stmt 0 view .LVU1380 3974 0110 B4F84630 ldrh r3, [r4, #70] 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3975 .loc 1 2241 10 view .LVU1381 3976 0114 13F0010F tst r3, #1 3977 0118 24D1 bne .L287 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 3978 .loc 1 2243 9 is_stmt 1 view .LVU1382 3979 011a 2268 ldr r2, [r4] 3980 011c 5368 ldr r3, [r2, #4] 3981 011e 23F40053 bic r3, r3, #8192 3982 0122 5360 str r3, [r2, #4] 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3983 .loc 1 2244 9 view .LVU1383 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3984 .loc 1 2244 33 is_stmt 0 view .LVU1384 3985 0124 B4F84630 ldrh r3, [r4, #70] 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3986 .loc 1 2244 27 view .LVU1385 3987 0128 C3F34E03 ubfx r3, r3, #1, #15 3988 012c A4F84630 strh r3, [r4, #70] @ movhi 3989 0130 B6E7 b .L284 3990 .L303: 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3991 .loc 1 2224 7 is_stmt 1 view .LVU1386 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3992 .loc 1 2224 16 is_stmt 0 view .LVU1387 3993 0132 A38F ldrh r3, [r4, #60] 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3994 .loc 1 2224 10 view .LVU1388 3995 0134 13F0010F tst r3, #1 3996 0138 09D1 bne .L286 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 3997 .loc 1 2226 9 is_stmt 1 view .LVU1389 3998 013a 2268 ldr r2, [r4] 3999 013c 5368 ldr r3, [r2, #4] 4000 013e 23F48043 bic r3, r3, #16384 4001 0142 5360 str r3, [r2, #4] 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4002 .loc 1 2227 9 view .LVU1390 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4003 .loc 1 2227 33 is_stmt 0 view .LVU1391 4004 0144 E38F ldrh r3, [r4, #62] 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4005 .loc 1 2227 27 view .LVU1392 4006 0146 C3F34E03 ubfx r3, r3, #1, #15 ARM GAS /tmp/ccywxtmH.s page 170 4007 014a E387 strh r3, [r4, #62] @ movhi 4008 014c D6E7 b .L285 4009 .L286: 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 4010 .loc 1 2231 9 is_stmt 1 view .LVU1393 4011 014e 2268 ldr r2, [r4] 4012 0150 5368 ldr r3, [r2, #4] 4013 0152 43F48043 orr r3, r3, #16384 4014 0156 5360 str r3, [r2, #4] 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4015 .loc 1 2232 9 view .LVU1394 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4016 .loc 1 2232 34 is_stmt 0 view .LVU1395 4017 0158 E38F ldrh r3, [r4, #62] 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4018 .loc 1 2232 55 view .LVU1396 4019 015a C3F34E03 ubfx r3, r3, #1, #15 4020 015e 0133 adds r3, r3, #1 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4021 .loc 1 2232 27 view .LVU1397 4022 0160 E387 strh r3, [r4, #62] @ movhi 4023 0162 CBE7 b .L285 4024 .L287: 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4025 .loc 1 2248 9 is_stmt 1 view .LVU1398 4026 0164 2268 ldr r2, [r4] 4027 0166 5368 ldr r3, [r2, #4] 4028 0168 43F40053 orr r3, r3, #8192 4029 016c 5360 str r3, [r2, #4] 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4030 .loc 1 2249 9 view .LVU1399 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4031 .loc 1 2249 34 is_stmt 0 view .LVU1400 4032 016e B4F84630 ldrh r3, [r4, #70] 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4033 .loc 1 2249 55 view .LVU1401 4034 0172 C3F34E03 ubfx r3, r3, #1, #15 4035 0176 0133 adds r3, r3, #1 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4036 .loc 1 2249 27 view .LVU1402 4037 0178 A4F84630 strh r3, [r4, #70] @ movhi 4038 017c 90E7 b .L284 4039 .L302: 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4040 .loc 1 2258 5 is_stmt 1 view .LVU1403 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4041 .loc 1 2258 9 is_stmt 0 view .LVU1404 4042 017e A36D ldr r3, [r4, #88] 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4043 .loc 1 2258 40 view .LVU1405 4044 0180 284A ldr r2, .L305+12 4045 0182 DA62 str r2, [r3, #44] 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4046 .loc 1 2259 5 is_stmt 1 view .LVU1406 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4047 .loc 1 2259 9 is_stmt 0 view .LVU1407 4048 0184 A36D ldr r3, [r4, #88] ARM GAS /tmp/ccywxtmH.s page 171 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4049 .loc 1 2259 40 view .LVU1408 4050 0186 284A ldr r2, .L305+16 4051 0188 9A62 str r2, [r3, #40] 4052 018a 94E7 b .L289 4053 .LVL247: 4054 .L290: 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4055 .loc 1 2287 3 is_stmt 1 view .LVU1409 4056 018c 2268 ldr r2, [r4] 4057 018e 5368 ldr r3, [r2, #4] 4058 0190 43F00103 orr r3, r3, #1 4059 0194 5360 str r3, [r2, #4] 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4060 .loc 1 2291 3 view .LVU1410 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4061 .loc 1 2291 7 is_stmt 0 view .LVU1411 4062 0196 626D ldr r2, [r4, #84] 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4063 .loc 1 2291 38 view .LVU1412 4064 0198 0023 movs r3, #0 4065 019a D362 str r3, [r2, #44] 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4066 .loc 1 2292 3 is_stmt 1 view .LVU1413 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4067 .loc 1 2292 7 is_stmt 0 view .LVU1414 4068 019c 626D ldr r2, [r4, #84] 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4069 .loc 1 2292 38 view .LVU1415 4070 019e 9362 str r3, [r2, #40] 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4071 .loc 1 2293 3 is_stmt 1 view .LVU1416 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4072 .loc 1 2293 7 is_stmt 0 view .LVU1417 4073 01a0 626D ldr r2, [r4, #84] 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4074 .loc 1 2293 38 view .LVU1418 4075 01a2 1363 str r3, [r2, #48] 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4076 .loc 1 2294 3 is_stmt 1 view .LVU1419 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4077 .loc 1 2294 7 is_stmt 0 view .LVU1420 4078 01a4 626D ldr r2, [r4, #84] 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4079 .loc 1 2294 38 view .LVU1421 4080 01a6 5363 str r3, [r2, #52] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4081 .loc 1 2297 3 is_stmt 1 view .LVU1422 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4082 .loc 1 2297 91 is_stmt 0 view .LVU1423 4083 01a8 2268 ldr r2, [r4] 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4084 .loc 1 2298 38 view .LVU1424 4085 01aa E38F ldrh r3, [r4, #62] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4086 .loc 1 2297 17 view .LVU1425 4087 01ac 9BB2 uxth r3, r3 ARM GAS /tmp/ccywxtmH.s page 172 4088 01ae 0C32 adds r2, r2, #12 4089 01b0 A16B ldr r1, [r4, #56] 4090 01b2 606D ldr r0, [r4, #84] 4091 01b4 FFF7FEFF bl HAL_DMA_Start_IT 4092 .LVL248: 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4093 .loc 1 2297 6 view .LVU1426 4094 01b8 98B9 cbnz r0, .L304 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4095 .loc 1 2309 3 is_stmt 1 view .LVU1427 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4096 .loc 1 2309 12 is_stmt 0 view .LVU1428 4097 01ba 2368 ldr r3, [r4] 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4098 .loc 1 2309 22 view .LVU1429 4099 01bc 1A68 ldr r2, [r3] 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4100 .loc 1 2309 6 view .LVU1430 4101 01be 12F0400F tst r2, #64 4102 01c2 03D1 bne .L292 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4103 .loc 1 2312 5 is_stmt 1 view .LVU1431 4104 01c4 1A68 ldr r2, [r3] 4105 01c6 42F04002 orr r2, r2, #64 4106 01ca 1A60 str r2, [r3] 4107 .L292: 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4108 .loc 1 2315 3 view .LVU1432 4109 01cc 2268 ldr r2, [r4] 4110 01ce 5368 ldr r3, [r2, #4] 4111 01d0 43F02003 orr r3, r3, #32 4112 01d4 5360 str r3, [r2, #4] 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4113 .loc 1 2318 3 view .LVU1433 4114 01d6 2268 ldr r2, [r4] 4115 01d8 5368 ldr r3, [r2, #4] 4116 01da 43F00203 orr r3, r3, #2 4117 01de 5360 str r3, [r2, #4] 4118 01e0 08E0 b .L280 4119 .L304: 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4120 .loc 1 2301 5 view .LVU1434 4121 01e2 236E ldr r3, [r4, #96] 4122 01e4 43F01003 orr r3, r3, #16 4123 01e8 2366 str r3, [r4, #96] 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4124 .loc 1 2302 5 view .LVU1435 4125 .LVL249: 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4126 .loc 1 2304 5 view .LVU1436 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4127 .loc 1 2304 17 is_stmt 0 view .LVU1437 4128 01ea 0120 movs r0, #1 4129 01ec 84F85D00 strb r0, [r4, #93] 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4130 .loc 1 2305 5 is_stmt 1 view .LVU1438 4131 01f0 00E0 b .L280 ARM GAS /tmp/ccywxtmH.s page 173 4132 .LVL250: 4133 .L294: 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4134 .loc 1 2161 15 is_stmt 0 view .LVU1439 4135 01f2 0220 movs r0, #2 4136 .LVL251: 4137 .L280: 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4138 .loc 1 2322 3 is_stmt 1 view .LVU1440 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4139 .loc 1 2322 3 view .LVU1441 4140 01f4 0023 movs r3, #0 4141 01f6 84F85C30 strb r3, [r4, #92] 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4142 .loc 1 2322 3 view .LVU1442 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4143 .loc 1 2323 3 view .LVU1443 4144 .LVL252: 4145 .L278: 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4146 .loc 1 2324 1 is_stmt 0 view .LVU1444 4147 01fa 38BD pop {r3, r4, r5, pc} 4148 .LVL253: 4149 .L295: 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4150 .loc 1 2161 15 view .LVU1445 4151 01fc 0220 movs r0, #2 4152 .LVL254: 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4153 .loc 1 2161 15 view .LVU1446 4154 01fe F9E7 b .L280 4155 .LVL255: 4156 .L296: 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4157 .loc 1 2161 15 view .LVU1447 4158 0200 0220 movs r0, #2 4159 .LVL256: 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4160 .loc 1 2161 15 view .LVU1448 4161 0202 F7E7 b .L280 4162 .LVL257: 4163 .L297: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4164 .loc 1 2167 15 view .LVU1449 4165 0204 0120 movs r0, #1 4166 .LVL258: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4167 .loc 1 2167 15 view .LVU1450 4168 0206 F5E7 b .L280 4169 .LVL259: 4170 .L298: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4171 .loc 1 2167 15 view .LVU1451 4172 0208 0120 movs r0, #1 4173 .LVL260: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4174 .loc 1 2167 15 view .LVU1452 ARM GAS /tmp/ccywxtmH.s page 174 4175 020a F3E7 b .L280 4176 .LVL261: 4177 .L299: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4178 .loc 1 2167 15 view .LVU1453 4179 020c 0120 movs r0, #1 4180 .LVL262: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4181 .loc 1 2167 15 view .LVU1454 4182 020e F1E7 b .L280 4183 .LVL263: 4184 .L300: 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4185 .loc 1 2203 15 view .LVU1455 4186 0210 0120 movs r0, #1 4187 0212 EFE7 b .L280 4188 .LVL264: 4189 .L293: 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4190 .loc 1 2152 3 view .LVU1456 4191 0214 0220 movs r0, #2 4192 0216 F0E7 b .L278 4193 .L306: 4194 .align 2 4195 .L305: 4196 0218 00000000 .word SPI_DMAHalfTransmitReceiveCplt 4197 021c 00000000 .word SPI_DMATransmitReceiveCplt 4198 0220 00000000 .word SPI_DMAError 4199 0224 00000000 .word SPI_DMAHalfReceiveCplt 4200 0228 00000000 .word SPI_DMAReceiveCplt 4201 .cfi_endproc 4202 .LFE142: 4204 .section .text.HAL_SPI_Receive_DMA,"ax",%progbits 4205 .align 1 4206 .global HAL_SPI_Receive_DMA 4207 .syntax unified 4208 .thumb 4209 .thumb_func 4211 HAL_SPI_Receive_DMA: 4212 .LVL265: 4213 .LFB141: 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4214 .loc 1 1984 1 is_stmt 1 view -0 4215 .cfi_startproc 4216 @ args = 0, pretend = 0, frame = 0 4217 @ frame_needed = 0, uses_anonymous_args = 0 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4218 .loc 1 1984 1 is_stmt 0 view .LVU1458 4219 0000 38B5 push {r3, r4, r5, lr} 4220 .cfi_def_cfa_offset 16 4221 .cfi_offset 3, -16 4222 .cfi_offset 4, -12 4223 .cfi_offset 5, -8 4224 .cfi_offset 14, -4 4225 0002 0446 mov r4, r0 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4226 .loc 1 1985 3 is_stmt 1 view .LVU1459 ARM GAS /tmp/ccywxtmH.s page 175 4227 .LVL266: 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4228 .loc 1 1988 3 view .LVU1460 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4229 .loc 1 1990 3 view .LVU1461 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4230 .loc 1 1990 18 is_stmt 0 view .LVU1462 4231 0004 8368 ldr r3, [r0, #8] 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4232 .loc 1 1990 6 view .LVU1463 4233 0006 1BB9 cbnz r3, .L308 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4234 .loc 1 1990 68 discriminator 1 view .LVU1464 4235 0008 4068 ldr r0, [r0, #4] 4236 .LVL267: 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4237 .loc 1 1990 54 discriminator 1 view .LVU1465 4238 000a B0F5827F cmp r0, #260 4239 000e 69D0 beq .L321 4240 .L308: 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4241 .loc 1 2002 3 is_stmt 1 view .LVU1466 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4242 .loc 1 2002 3 view .LVU1467 4243 0010 94F85C00 ldrb r0, [r4, #92] @ zero_extendqisi2 4244 0014 0128 cmp r0, #1 4245 0016 00F0B580 beq .L318 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4246 .loc 1 2002 3 discriminator 2 view .LVU1468 4247 001a 0120 movs r0, #1 4248 001c 84F85C00 strb r0, [r4, #92] 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4249 .loc 1 2002 3 discriminator 2 view .LVU1469 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4250 .loc 1 2004 3 discriminator 2 view .LVU1470 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4251 .loc 1 2004 11 is_stmt 0 discriminator 2 view .LVU1471 4252 0020 94F85D50 ldrb r5, [r4, #93] @ zero_extendqisi2 4253 0024 EDB2 uxtb r5, r5 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4254 .loc 1 2004 6 discriminator 2 view .LVU1472 4255 0026 8542 cmp r5, r0 4256 0028 40F0A680 bne .L319 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4257 .loc 1 2010 3 is_stmt 1 view .LVU1473 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4258 .loc 1 2010 6 is_stmt 0 view .LVU1474 4259 002c 0029 cmp r1, #0 4260 002e 00F0A480 beq .L310 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4261 .loc 1 2010 23 discriminator 1 view .LVU1475 4262 0032 002A cmp r2, #0 4263 0034 00F0A180 beq .L310 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4264 .loc 1 2017 3 is_stmt 1 view .LVU1476 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4265 .loc 1 2017 21 is_stmt 0 view .LVU1477 ARM GAS /tmp/ccywxtmH.s page 176 4266 0038 0420 movs r0, #4 4267 003a 84F85D00 strb r0, [r4, #93] 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4268 .loc 1 2018 3 is_stmt 1 view .LVU1478 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4269 .loc 1 2018 21 is_stmt 0 view .LVU1479 4270 003e 0020 movs r0, #0 4271 0040 2066 str r0, [r4, #96] 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4272 .loc 1 2019 3 is_stmt 1 view .LVU1480 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4273 .loc 1 2019 21 is_stmt 0 view .LVU1481 4274 0042 2164 str r1, [r4, #64] 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4275 .loc 1 2020 3 is_stmt 1 view .LVU1482 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4276 .loc 1 2020 21 is_stmt 0 view .LVU1483 4277 0044 A4F84420 strh r2, [r4, #68] @ movhi 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4278 .loc 1 2021 3 is_stmt 1 view .LVU1484 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4279 .loc 1 2021 21 is_stmt 0 view .LVU1485 4280 0048 A4F84620 strh r2, [r4, #70] @ movhi 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4281 .loc 1 2024 3 is_stmt 1 view .LVU1486 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4282 .loc 1 2024 21 is_stmt 0 view .LVU1487 4283 004c E064 str r0, [r4, #76] 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 4284 .loc 1 2025 3 is_stmt 1 view .LVU1488 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 4285 .loc 1 2025 21 is_stmt 0 view .LVU1489 4286 004e 2065 str r0, [r4, #80] 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4287 .loc 1 2026 3 is_stmt 1 view .LVU1490 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4288 .loc 1 2026 21 is_stmt 0 view .LVU1491 4289 0050 A087 strh r0, [r4, #60] @ movhi 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4290 .loc 1 2027 3 is_stmt 1 view .LVU1492 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4291 .loc 1 2027 21 is_stmt 0 view .LVU1493 4292 0052 E087 strh r0, [r4, #62] @ movhi 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4293 .loc 1 2030 3 is_stmt 1 view .LVU1494 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4294 .loc 1 2030 6 is_stmt 0 view .LVU1495 4295 0054 B3F5004F cmp r3, #32768 4296 0058 4ED0 beq .L322 4297 .LVL268: 4298 .L311: 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4299 .loc 1 2047 3 is_stmt 1 view .LVU1496 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4300 .loc 1 2047 18 is_stmt 0 view .LVU1497 4301 005a E368 ldr r3, [r4, #12] 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 177 4302 .loc 1 2047 6 view .LVU1498 4303 005c B3F5E06F cmp r3, #1792 4304 0060 05D8 bhi .L312 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4305 .loc 1 2047 58 discriminator 1 view .LVU1499 4306 0062 A36D ldr r3, [r4, #88] 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4307 .loc 1 2047 72 discriminator 1 view .LVU1500 4308 0064 5B69 ldr r3, [r3, #20] 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4309 .loc 1 2047 50 discriminator 1 view .LVU1501 4310 0066 B3F5806F cmp r3, #1024 4311 006a 00F08680 beq .L310 4312 .L312: 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 4313 .loc 1 2055 3 is_stmt 1 view .LVU1502 4314 006e 2268 ldr r2, [r4] 4315 0070 5368 ldr r3, [r2, #4] 4316 0072 23F40053 bic r3, r3, #8192 4317 0076 5360 str r3, [r2, #4] 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4318 .loc 1 2056 3 view .LVU1503 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4319 .loc 1 2056 17 is_stmt 0 view .LVU1504 4320 0078 E368 ldr r3, [r4, #12] 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4321 .loc 1 2056 6 view .LVU1505 4322 007a B3F5E06F cmp r3, #1792 4323 007e 46D9 bls .L313 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4324 .loc 1 2059 5 is_stmt 1 view .LVU1506 4325 0080 2268 ldr r2, [r4] 4326 0082 5368 ldr r3, [r2, #4] 4327 0084 23F48053 bic r3, r3, #4096 4328 0088 5360 str r3, [r2, #4] 4329 .L314: 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4330 .loc 1 2085 3 view .LVU1507 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4331 .loc 1 2085 7 is_stmt 0 view .LVU1508 4332 008a A36D ldr r3, [r4, #88] 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4333 .loc 1 2085 38 view .LVU1509 4334 008c 3E4A ldr r2, .L324 4335 008e DA62 str r2, [r3, #44] 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4336 .loc 1 2088 3 is_stmt 1 view .LVU1510 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4337 .loc 1 2088 7 is_stmt 0 view .LVU1511 4338 0090 A36D ldr r3, [r4, #88] 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4339 .loc 1 2088 34 view .LVU1512 4340 0092 3E4A ldr r2, .L324+4 4341 0094 9A62 str r2, [r3, #40] 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4342 .loc 1 2091 3 is_stmt 1 view .LVU1513 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 178 4343 .loc 1 2091 7 is_stmt 0 view .LVU1514 4344 0096 A36D ldr r3, [r4, #88] 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4345 .loc 1 2091 35 view .LVU1515 4346 0098 3D4A ldr r2, .L324+8 4347 009a 1A63 str r2, [r3, #48] 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4348 .loc 1 2094 3 is_stmt 1 view .LVU1516 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4349 .loc 1 2094 7 is_stmt 0 view .LVU1517 4350 009c A36D ldr r3, [r4, #88] 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4351 .loc 1 2094 35 view .LVU1518 4352 009e 0022 movs r2, #0 4353 00a0 5A63 str r2, [r3, #52] 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4354 .loc 1 2097 3 is_stmt 1 view .LVU1519 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4355 .loc 1 2097 63 is_stmt 0 view .LVU1520 4356 00a2 2168 ldr r1, [r4] 4357 .LVL269: 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4358 .loc 1 2098 38 view .LVU1521 4359 00a4 B4F84630 ldrh r3, [r4, #70] 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4360 .loc 1 2097 17 view .LVU1522 4361 00a8 9BB2 uxth r3, r3 4362 00aa 226C ldr r2, [r4, #64] 4363 00ac 0C31 adds r1, r1, #12 4364 00ae A06D ldr r0, [r4, #88] 4365 00b0 FFF7FEFF bl HAL_DMA_Start_IT 4366 .LVL270: 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4367 .loc 1 2097 6 view .LVU1523 4368 00b4 0146 mov r1, r0 4369 00b6 0028 cmp r0, #0 4370 00b8 56D1 bne .L323 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4371 .loc 1 2109 3 is_stmt 1 view .LVU1524 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4372 .loc 1 2109 12 is_stmt 0 view .LVU1525 4373 00ba 2368 ldr r3, [r4] 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4374 .loc 1 2109 22 view .LVU1526 4375 00bc 1A68 ldr r2, [r3] 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4376 .loc 1 2109 6 view .LVU1527 4377 00be 12F0400F tst r2, #64 4378 00c2 03D1 bne .L317 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4379 .loc 1 2112 5 is_stmt 1 view .LVU1528 4380 00c4 1A68 ldr r2, [r3] 4381 00c6 42F04002 orr r2, r2, #64 4382 00ca 1A60 str r2, [r3] 4383 .L317: 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4384 .loc 1 2116 3 view .LVU1529 ARM GAS /tmp/ccywxtmH.s page 179 4385 00cc 2268 ldr r2, [r4] 4386 00ce 5368 ldr r3, [r2, #4] 4387 00d0 43F02003 orr r3, r3, #32 4388 00d4 5360 str r3, [r2, #4] 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4389 .loc 1 2119 3 view .LVU1530 4390 00d6 2268 ldr r2, [r4] 4391 00d8 5368 ldr r3, [r2, #4] 4392 00da 43F00103 orr r3, r3, #1 4393 00de 5360 str r3, [r2, #4] 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4394 .loc 1 1985 21 is_stmt 0 view .LVU1531 4395 00e0 0D46 mov r5, r1 4396 00e2 4AE0 b .L310 4397 .LVL271: 4398 .L321: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4399 .loc 1 1992 5 is_stmt 1 view .LVU1532 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4400 .loc 1 1992 17 is_stmt 0 view .LVU1533 4401 00e4 0423 movs r3, #4 4402 00e6 84F85D30 strb r3, [r4, #93] 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4403 .loc 1 1995 5 is_stmt 1 view .LVU1534 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4404 .loc 1 1998 5 view .LVU1535 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4405 .loc 1 1998 12 is_stmt 0 view .LVU1536 4406 00ea 1346 mov r3, r2 4407 00ec 0A46 mov r2, r1 4408 .LVL272: 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4409 .loc 1 1998 12 view .LVU1537 4410 00ee 2046 mov r0, r4 4411 00f0 FFF7FEFF bl HAL_SPI_TransmitReceive_DMA 4412 .LVL273: 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4413 .loc 1 1998 12 view .LVU1538 4414 00f4 0546 mov r5, r0 4415 00f6 43E0 b .L309 4416 .LVL274: 4417 .L322: 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 4418 .loc 1 2033 5 is_stmt 1 view .LVU1539 4419 00f8 2268 ldr r2, [r4] 4420 .LVL275: 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 4421 .loc 1 2033 5 is_stmt 0 view .LVU1540 4422 00fa 1368 ldr r3, [r2] 4423 00fc 23F04003 bic r3, r3, #64 4424 0100 1360 str r3, [r2] 4425 .LVL276: 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4426 .loc 1 2034 5 is_stmt 1 view .LVU1541 4427 0102 2268 ldr r2, [r4] 4428 0104 1368 ldr r3, [r2] 4429 0106 23F48043 bic r3, r3, #16384 ARM GAS /tmp/ccywxtmH.s page 180 4430 010a 1360 str r3, [r2] 4431 010c A5E7 b .L311 4432 .L313: 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4433 .loc 1 2064 5 view .LVU1542 4434 010e 2268 ldr r2, [r4] 4435 0110 5368 ldr r3, [r2, #4] 4436 0112 43F48053 orr r3, r3, #4096 4437 0116 5360 str r3, [r2, #4] 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4438 .loc 1 2066 5 view .LVU1543 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4439 .loc 1 2066 13 is_stmt 0 view .LVU1544 4440 0118 A36D ldr r3, [r4, #88] 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4441 .loc 1 2066 27 view .LVU1545 4442 011a 5B69 ldr r3, [r3, #20] 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4443 .loc 1 2066 8 view .LVU1546 4444 011c B3F5806F cmp r3, #1024 4445 0120 B3D1 bne .L314 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4446 .loc 1 2069 7 is_stmt 1 view .LVU1547 4447 0122 2268 ldr r2, [r4] 4448 0124 5368 ldr r3, [r2, #4] 4449 0126 23F48053 bic r3, r3, #4096 4450 012a 5360 str r3, [r2, #4] 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4451 .loc 1 2071 7 view .LVU1548 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4452 .loc 1 2071 16 is_stmt 0 view .LVU1549 4453 012c B4F84630 ldrh r3, [r4, #70] 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4454 .loc 1 2071 10 view .LVU1550 4455 0130 13F0010F tst r3, #1 4456 0134 0BD1 bne .L315 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 4457 .loc 1 2073 9 is_stmt 1 view .LVU1551 4458 0136 2268 ldr r2, [r4] 4459 0138 5368 ldr r3, [r2, #4] 4460 013a 23F40053 bic r3, r3, #8192 4461 013e 5360 str r3, [r2, #4] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4462 .loc 1 2074 9 view .LVU1552 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4463 .loc 1 2074 33 is_stmt 0 view .LVU1553 4464 0140 B4F84630 ldrh r3, [r4, #70] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4465 .loc 1 2074 27 view .LVU1554 4466 0144 C3F34E03 ubfx r3, r3, #1, #15 4467 0148 A4F84630 strh r3, [r4, #70] @ movhi 4468 014c 9DE7 b .L314 4469 .L315: 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4470 .loc 1 2078 9 is_stmt 1 view .LVU1555 4471 014e 2268 ldr r2, [r4] 4472 0150 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccywxtmH.s page 181 4473 0152 43F40053 orr r3, r3, #8192 4474 0156 5360 str r3, [r2, #4] 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4475 .loc 1 2079 9 view .LVU1556 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4476 .loc 1 2079 34 is_stmt 0 view .LVU1557 4477 0158 B4F84630 ldrh r3, [r4, #70] 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4478 .loc 1 2079 55 view .LVU1558 4479 015c C3F34E03 ubfx r3, r3, #1, #15 4480 0160 0133 adds r3, r3, #1 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4481 .loc 1 2079 27 view .LVU1559 4482 0162 A4F84630 strh r3, [r4, #70] @ movhi 4483 0166 90E7 b .L314 4484 .LVL277: 4485 .L323: 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4486 .loc 1 2101 5 is_stmt 1 view .LVU1560 4487 0168 236E ldr r3, [r4, #96] 4488 016a 43F01003 orr r3, r3, #16 4489 016e 2366 str r3, [r4, #96] 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4490 .loc 1 2102 5 view .LVU1561 4491 .LVL278: 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4492 .loc 1 2104 5 view .LVU1562 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4493 .loc 1 2104 17 is_stmt 0 view .LVU1563 4494 0170 0123 movs r3, #1 4495 0172 84F85D30 strb r3, [r4, #93] 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4496 .loc 1 2105 5 is_stmt 1 view .LVU1564 4497 0176 00E0 b .L310 4498 .LVL279: 4499 .L319: 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4500 .loc 1 2006 15 is_stmt 0 view .LVU1565 4501 0178 0225 movs r5, #2 4502 .LVL280: 4503 .L310: 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4504 .loc 1 2123 3 is_stmt 1 view .LVU1566 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4505 .loc 1 2123 3 view .LVU1567 4506 017a 0023 movs r3, #0 4507 017c 84F85C30 strb r3, [r4, #92] 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4508 .loc 1 2123 3 view .LVU1568 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4509 .loc 1 2124 3 view .LVU1569 4510 .LVL281: 4511 .L309: 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4512 .loc 1 2125 1 is_stmt 0 view .LVU1570 4513 0180 2846 mov r0, r5 4514 0182 38BD pop {r3, r4, r5, pc} ARM GAS /tmp/ccywxtmH.s page 182 4515 .LVL282: 4516 .L318: 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4517 .loc 1 2002 3 view .LVU1571 4518 0184 0225 movs r5, #2 4519 0186 FBE7 b .L309 4520 .L325: 4521 .align 2 4522 .L324: 4523 0188 00000000 .word SPI_DMAHalfReceiveCplt 4524 018c 00000000 .word SPI_DMAReceiveCplt 4525 0190 00000000 .word SPI_DMAError 4526 .cfi_endproc 4527 .LFE141: 4529 .section .text.HAL_SPI_Abort,"ax",%progbits 4530 .align 1 4531 .global HAL_SPI_Abort 4532 .syntax unified 4533 .thumb 4534 .thumb_func 4536 HAL_SPI_Abort: 4537 .LVL283: 4538 .LFB143: 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4539 .loc 1 2340 1 is_stmt 1 view -0 4540 .cfi_startproc 4541 @ args = 0, pretend = 0, frame = 16 4542 @ frame_needed = 0, uses_anonymous_args = 0 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4543 .loc 1 2340 1 is_stmt 0 view .LVU1573 4544 0000 10B5 push {r4, lr} 4545 .cfi_def_cfa_offset 8 4546 .cfi_offset 4, -8 4547 .cfi_offset 14, -4 4548 0002 86B0 sub sp, sp, #24 4549 .cfi_def_cfa_offset 32 4550 0004 0446 mov r4, r0 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4551 .loc 1 2341 3 is_stmt 1 view .LVU1574 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 4552 .loc 1 2342 3 view .LVU1575 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4553 .loc 1 2343 3 view .LVU1576 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 4554 .loc 1 2346 3 view .LVU1577 4555 .LVL284: 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4556 .loc 1 2347 3 view .LVU1578 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4557 .loc 1 2347 61 is_stmt 0 view .LVU1579 4558 0006 5E4B ldr r3, .L347 4559 0008 1B68 ldr r3, [r3] 4560 000a 5E4A ldr r2, .L347+4 4561 000c A2FB0323 umull r2, r3, r2, r3 4562 0010 5B0A lsrs r3, r3, #9 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4563 .loc 1 2347 36 view .LVU1580 ARM GAS /tmp/ccywxtmH.s page 183 4564 0012 6422 movs r2, #100 4565 0014 02FB03F3 mul r3, r2, r3 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4566 .loc 1 2347 14 view .LVU1581 4567 0018 0493 str r3, [sp, #16] 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4568 .loc 1 2348 3 is_stmt 1 view .LVU1582 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4569 .loc 1 2348 9 is_stmt 0 view .LVU1583 4570 001a 049B ldr r3, [sp, #16] 4571 001c 0593 str r3, [sp, #20] 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4572 .loc 1 2351 3 is_stmt 1 view .LVU1584 4573 001e 0268 ldr r2, [r0] 4574 0020 5368 ldr r3, [r2, #4] 4575 0022 23F02003 bic r3, r3, #32 4576 0026 5360 str r3, [r2, #4] 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4577 .loc 1 2354 3 view .LVU1585 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4578 .loc 1 2354 7 is_stmt 0 view .LVU1586 4579 0028 0268 ldr r2, [r0] 4580 002a 5368 ldr r3, [r2, #4] 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4581 .loc 1 2354 6 view .LVU1587 4582 002c 13F0800F tst r3, #128 4583 0030 12D0 beq .L327 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4584 .loc 1 2356 5 is_stmt 1 view .LVU1588 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4585 .loc 1 2356 17 is_stmt 0 view .LVU1589 4586 0032 554B ldr r3, .L347+8 4587 0034 0365 str r3, [r0, #80] 4588 .L330: 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4589 .loc 1 2358 5 is_stmt 1 view .LVU1590 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4590 .loc 1 2360 7 view .LVU1591 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4591 .loc 1 2360 17 is_stmt 0 view .LVU1592 4592 0036 059B ldr r3, [sp, #20] 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4593 .loc 1 2360 10 view .LVU1593 4594 0038 43B1 cbz r3, .L345 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4595 .loc 1 2365 7 is_stmt 1 view .LVU1594 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4596 .loc 1 2365 12 is_stmt 0 view .LVU1595 4597 003a 059B ldr r3, [sp, #20] 4598 003c 013B subs r3, r3, #1 4599 003e 0593 str r3, [sp, #20] 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4600 .loc 1 2366 26 is_stmt 1 view .LVU1596 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4601 .loc 1 2366 18 is_stmt 0 view .LVU1597 4602 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4603 0044 DBB2 uxtb r3, r3 ARM GAS /tmp/ccywxtmH.s page 184 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4604 .loc 1 2366 26 view .LVU1598 4605 0046 072B cmp r3, #7 4606 0048 F5D1 bne .L330 4607 004a 03E0 b .L329 4608 .L345: 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4609 .loc 1 2362 9 is_stmt 1 view .LVU1599 4610 004c 236E ldr r3, [r4, #96] 4611 004e 43F04003 orr r3, r3, #64 4612 0052 2366 str r3, [r4, #96] 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4613 .loc 1 2363 9 view .LVU1600 4614 .L329: 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4615 .loc 1 2368 5 view .LVU1601 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4616 .loc 1 2368 11 is_stmt 0 view .LVU1602 4617 0054 049B ldr r3, [sp, #16] 4618 0056 0593 str r3, [sp, #20] 4619 .L327: 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4620 .loc 1 2371 3 is_stmt 1 view .LVU1603 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4621 .loc 1 2371 7 is_stmt 0 view .LVU1604 4622 0058 5368 ldr r3, [r2, #4] 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4623 .loc 1 2371 6 view .LVU1605 4624 005a 13F0400F tst r3, #64 4625 005e 12D0 beq .L331 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4626 .loc 1 2373 5 is_stmt 1 view .LVU1606 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4627 .loc 1 2373 17 is_stmt 0 view .LVU1607 4628 0060 4A4B ldr r3, .L347+12 4629 0062 E364 str r3, [r4, #76] 4630 .L334: 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4631 .loc 1 2375 5 is_stmt 1 view .LVU1608 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4632 .loc 1 2377 7 view .LVU1609 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4633 .loc 1 2377 17 is_stmt 0 view .LVU1610 4634 0064 059B ldr r3, [sp, #20] 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4635 .loc 1 2377 10 view .LVU1611 4636 0066 43B1 cbz r3, .L346 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4637 .loc 1 2382 7 is_stmt 1 view .LVU1612 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4638 .loc 1 2382 12 is_stmt 0 view .LVU1613 4639 0068 059B ldr r3, [sp, #20] 4640 006a 013B subs r3, r3, #1 4641 006c 0593 str r3, [sp, #20] 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4642 .loc 1 2383 26 is_stmt 1 view .LVU1614 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ ARM GAS /tmp/ccywxtmH.s page 185 4643 .loc 1 2383 18 is_stmt 0 view .LVU1615 4644 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4645 0072 DBB2 uxtb r3, r3 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4646 .loc 1 2383 26 view .LVU1616 4647 0074 072B cmp r3, #7 4648 0076 F5D1 bne .L334 4649 0078 03E0 b .L333 4650 .L346: 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4651 .loc 1 2379 9 is_stmt 1 view .LVU1617 4652 007a 236E ldr r3, [r4, #96] 4653 007c 43F04003 orr r3, r3, #64 4654 0080 2366 str r3, [r4, #96] 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4655 .loc 1 2380 9 view .LVU1618 4656 .L333: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4657 .loc 1 2385 5 view .LVU1619 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4658 .loc 1 2385 11 is_stmt 0 view .LVU1620 4659 0082 049B ldr r3, [sp, #16] 4660 0084 0593 str r3, [sp, #20] 4661 .L331: 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4662 .loc 1 2389 3 is_stmt 1 view .LVU1621 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4663 .loc 1 2389 7 is_stmt 0 view .LVU1622 4664 0086 5368 ldr r3, [r2, #4] 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4665 .loc 1 2389 6 view .LVU1623 4666 0088 13F0020F tst r3, #2 4667 008c 2AD0 beq .L335 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4668 .loc 1 2392 5 is_stmt 1 view .LVU1624 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4669 .loc 1 2392 13 is_stmt 0 view .LVU1625 4670 008e 636D ldr r3, [r4, #84] 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4671 .loc 1 2392 8 view .LVU1626 4672 0090 43B3 cbz r3, .L335 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4673 .loc 1 2396 7 is_stmt 1 view .LVU1627 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4674 .loc 1 2396 39 is_stmt 0 view .LVU1628 4675 0092 0022 movs r2, #0 4676 0094 5A63 str r2, [r3, #52] 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4677 .loc 1 2399 7 is_stmt 1 view .LVU1629 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4678 .loc 1 2399 11 is_stmt 0 view .LVU1630 4679 0096 606D ldr r0, [r4, #84] 4680 .LVL285: 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4681 .loc 1 2399 11 view .LVU1631 4682 0098 FFF7FEFF bl HAL_DMA_Abort 4683 .LVL286: ARM GAS /tmp/ccywxtmH.s page 186 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4684 .loc 1 2399 10 view .LVU1632 4685 009c 08B1 cbz r0, .L336 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4686 .loc 1 2401 9 is_stmt 1 view .LVU1633 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4687 .loc 1 2401 25 is_stmt 0 view .LVU1634 4688 009e 4023 movs r3, #64 4689 00a0 2366 str r3, [r4, #96] 4690 .L336: 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4691 .loc 1 2405 7 is_stmt 1 view .LVU1635 4692 00a2 2268 ldr r2, [r4] 4693 00a4 5368 ldr r3, [r2, #4] 4694 00a6 23F00203 bic r3, r3, #2 4695 00aa 5360 str r3, [r2, #4] 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4696 .loc 1 2407 7 view .LVU1636 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4697 .loc 1 2407 11 is_stmt 0 view .LVU1637 4698 00ac FFF7FEFF bl HAL_GetTick 4699 .LVL287: 4700 00b0 0246 mov r2, r0 4701 00b2 6421 movs r1, #100 4702 00b4 2046 mov r0, r4 4703 00b6 FFF7FEFF bl SPI_EndRxTxTransaction 4704 .LVL288: 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4705 .loc 1 2407 10 view .LVU1638 4706 00ba 08B1 cbz r0, .L337 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4707 .loc 1 2409 9 is_stmt 1 view .LVU1639 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4708 .loc 1 2409 25 is_stmt 0 view .LVU1640 4709 00bc 4023 movs r3, #64 4710 00be 2366 str r3, [r4, #96] 4711 .L337: 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4712 .loc 1 2413 7 is_stmt 1 view .LVU1641 4713 00c0 2268 ldr r2, [r4] 4714 00c2 1368 ldr r3, [r2] 4715 00c4 23F04003 bic r3, r3, #64 4716 00c8 1360 str r3, [r2] 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4717 .loc 1 2416 7 view .LVU1642 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4718 .loc 1 2416 11 is_stmt 0 view .LVU1643 4719 00ca FFF7FEFF bl HAL_GetTick 4720 .LVL289: 4721 00ce 0090 str r0, [sp] 4722 00d0 6423 movs r3, #100 4723 00d2 0022 movs r2, #0 4724 00d4 4FF4C061 mov r1, #1536 4725 00d8 2046 mov r0, r4 4726 00da FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4727 .LVL290: 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 187 4728 .loc 1 2416 10 view .LVU1644 4729 00de 08B1 cbz r0, .L335 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4730 .loc 1 2418 9 is_stmt 1 view .LVU1645 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4731 .loc 1 2418 25 is_stmt 0 view .LVU1646 4732 00e0 4023 movs r3, #64 4733 00e2 2366 str r3, [r4, #96] 4734 .L335: 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4735 .loc 1 2424 3 is_stmt 1 view .LVU1647 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4736 .loc 1 2424 7 is_stmt 0 view .LVU1648 4737 00e4 2368 ldr r3, [r4] 4738 00e6 5B68 ldr r3, [r3, #4] 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4739 .loc 1 2424 6 view .LVU1649 4740 00e8 13F0010F tst r3, #1 4741 00ec 2CD0 beq .L338 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4742 .loc 1 2427 5 is_stmt 1 view .LVU1650 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4743 .loc 1 2427 13 is_stmt 0 view .LVU1651 4744 00ee A36D ldr r3, [r4, #88] 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4745 .loc 1 2427 8 view .LVU1652 4746 00f0 53B3 cbz r3, .L338 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4747 .loc 1 2431 7 is_stmt 1 view .LVU1653 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4748 .loc 1 2431 39 is_stmt 0 view .LVU1654 4749 00f2 0022 movs r2, #0 4750 00f4 5A63 str r2, [r3, #52] 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4751 .loc 1 2434 7 is_stmt 1 view .LVU1655 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4752 .loc 1 2434 11 is_stmt 0 view .LVU1656 4753 00f6 A06D ldr r0, [r4, #88] 4754 00f8 FFF7FEFF bl HAL_DMA_Abort 4755 .LVL291: 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4756 .loc 1 2434 10 view .LVU1657 4757 00fc 08B1 cbz r0, .L339 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4758 .loc 1 2436 9 is_stmt 1 view .LVU1658 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4759 .loc 1 2436 25 is_stmt 0 view .LVU1659 4760 00fe 4023 movs r3, #64 4761 0100 2366 str r3, [r4, #96] 4762 .L339: 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4763 .loc 1 2440 7 is_stmt 1 view .LVU1660 4764 0102 2268 ldr r2, [r4] 4765 0104 1368 ldr r3, [r2] 4766 0106 23F04003 bic r3, r3, #64 4767 010a 1360 str r3, [r2] 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 188 4768 .loc 1 2443 7 view .LVU1661 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4769 .loc 1 2443 11 is_stmt 0 view .LVU1662 4770 010c FFF7FEFF bl HAL_GetTick 4771 .LVL292: 4772 0110 0090 str r0, [sp] 4773 0112 6423 movs r3, #100 4774 0114 0022 movs r2, #0 4775 0116 8021 movs r1, #128 4776 0118 2046 mov r0, r4 4777 011a FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 4778 .LVL293: 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4779 .loc 1 2443 10 view .LVU1663 4780 011e 08B1 cbz r0, .L340 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4781 .loc 1 2445 9 is_stmt 1 view .LVU1664 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4782 .loc 1 2445 25 is_stmt 0 view .LVU1665 4783 0120 4023 movs r3, #64 4784 0122 2366 str r3, [r4, #96] 4785 .L340: 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4786 .loc 1 2449 7 is_stmt 1 view .LVU1666 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4787 .loc 1 2449 11 is_stmt 0 view .LVU1667 4788 0124 FFF7FEFF bl HAL_GetTick 4789 .LVL294: 4790 0128 0090 str r0, [sp] 4791 012a 6423 movs r3, #100 4792 012c 0022 movs r2, #0 4793 012e 4FF4C061 mov r1, #1536 4794 0132 2046 mov r0, r4 4795 0134 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4796 .LVL295: 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4797 .loc 1 2449 10 view .LVU1668 4798 0138 08B1 cbz r0, .L341 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4799 .loc 1 2451 9 is_stmt 1 view .LVU1669 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4800 .loc 1 2451 25 is_stmt 0 view .LVU1670 4801 013a 4023 movs r3, #64 4802 013c 2366 str r3, [r4, #96] 4803 .L341: 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4804 .loc 1 2455 7 is_stmt 1 view .LVU1671 4805 013e 2268 ldr r2, [r4] 4806 0140 5368 ldr r3, [r2, #4] 4807 0142 23F00103 bic r3, r3, #1 4808 0146 5360 str r3, [r2, #4] 4809 .L338: 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4810 .loc 1 2459 3 view .LVU1672 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4811 .loc 1 2459 21 is_stmt 0 view .LVU1673 4812 0148 0023 movs r3, #0 ARM GAS /tmp/ccywxtmH.s page 189 4813 014a A4F84630 strh r3, [r4, #70] @ movhi 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4814 .loc 1 2460 3 is_stmt 1 view .LVU1674 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4815 .loc 1 2460 21 is_stmt 0 view .LVU1675 4816 014e E387 strh r3, [r4, #62] @ movhi 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4817 .loc 1 2463 3 is_stmt 1 view .LVU1676 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4818 .loc 1 2463 11 is_stmt 0 view .LVU1677 4819 0150 236E ldr r3, [r4, #96] 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4820 .loc 1 2463 6 view .LVU1678 4821 0152 402B cmp r3, #64 4822 0154 12D0 beq .L343 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4823 .loc 1 2471 5 is_stmt 1 view .LVU1679 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4824 .loc 1 2471 21 is_stmt 0 view .LVU1680 4825 0156 0020 movs r0, #0 4826 0158 2066 str r0, [r4, #96] 4827 .L342: 4828 .LVL296: 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4829 .loc 1 2475 3 is_stmt 1 view .LVU1681 4830 .LBB3: 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4831 .loc 1 2475 3 view .LVU1682 4832 015a 0022 movs r2, #0 4833 015c 0292 str r2, [sp, #8] 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4834 .loc 1 2475 3 view .LVU1683 4835 015e 2368 ldr r3, [r4] 4836 0160 D968 ldr r1, [r3, #12] 4837 0162 0291 str r1, [sp, #8] 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4838 .loc 1 2475 3 view .LVU1684 4839 0164 9968 ldr r1, [r3, #8] 4840 0166 0291 str r1, [sp, #8] 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4841 .loc 1 2475 3 view .LVU1685 4842 0168 0299 ldr r1, [sp, #8] 4843 .LBE3: 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4844 .loc 1 2475 3 view .LVU1686 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4845 .loc 1 2476 3 view .LVU1687 4846 .LBB4: 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4847 .loc 1 2476 3 view .LVU1688 4848 016a 0392 str r2, [sp, #12] 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4849 .loc 1 2476 3 view .LVU1689 4850 016c 9B68 ldr r3, [r3, #8] 4851 016e 0393 str r3, [sp, #12] 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4852 .loc 1 2476 3 view .LVU1690 ARM GAS /tmp/ccywxtmH.s page 190 4853 0170 039B ldr r3, [sp, #12] 4854 .LBE4: 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4855 .loc 1 2476 3 view .LVU1691 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4856 .loc 1 2479 3 view .LVU1692 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4857 .loc 1 2479 15 is_stmt 0 view .LVU1693 4858 0172 0123 movs r3, #1 4859 0174 84F85D30 strb r3, [r4, #93] 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4860 .loc 1 2481 3 is_stmt 1 view .LVU1694 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4861 .loc 1 2482 1 is_stmt 0 view .LVU1695 4862 0178 06B0 add sp, sp, #24 4863 .cfi_remember_state 4864 .cfi_def_cfa_offset 8 4865 @ sp needed 4866 017a 10BD pop {r4, pc} 4867 .LVL297: 4868 .L343: 4869 .cfi_restore_state 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4870 .loc 1 2466 15 view .LVU1696 4871 017c 0120 movs r0, #1 4872 017e ECE7 b .L342 4873 .L348: 4874 .align 2 4875 .L347: 4876 0180 00000000 .word SystemCoreClock 4877 0184 F1197605 .word 91625969 4878 0188 00000000 .word SPI_AbortTx_ISR 4879 018c 00000000 .word SPI_AbortRx_ISR 4880 .cfi_endproc 4881 .LFE143: 4883 .section .text.HAL_SPI_DMAPause,"ax",%progbits 4884 .align 1 4885 .global HAL_SPI_DMAPause 4886 .syntax unified 4887 .thumb 4888 .thumb_func 4890 HAL_SPI_DMAPause: 4891 .LVL298: 4892 .LFB145: 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4893 .loc 1 2661 1 is_stmt 1 view -0 4894 .cfi_startproc 4895 @ args = 0, pretend = 0, frame = 0 4896 @ frame_needed = 0, uses_anonymous_args = 0 4897 @ link register save eliminated. 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4898 .loc 1 2663 3 view .LVU1698 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4899 .loc 1 2663 3 view .LVU1699 4900 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4901 0004 012B cmp r3, #1 4902 0006 0CD0 beq .L351 ARM GAS /tmp/ccywxtmH.s page 191 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4903 .loc 1 2663 3 discriminator 2 view .LVU1700 4904 0008 0123 movs r3, #1 4905 000a 80F85C30 strb r3, [r0, #92] 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4906 .loc 1 2663 3 discriminator 2 view .LVU1701 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4907 .loc 1 2666 3 discriminator 2 view .LVU1702 4908 000e 0268 ldr r2, [r0] 4909 0010 5368 ldr r3, [r2, #4] 4910 0012 23F00303 bic r3, r3, #3 4911 0016 5360 str r3, [r2, #4] 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4912 .loc 1 2669 3 discriminator 2 view .LVU1703 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4913 .loc 1 2669 3 discriminator 2 view .LVU1704 4914 0018 0023 movs r3, #0 4915 001a 80F85C30 strb r3, [r0, #92] 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4916 .loc 1 2669 3 discriminator 2 view .LVU1705 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4917 .loc 1 2671 3 discriminator 2 view .LVU1706 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4918 .loc 1 2671 10 is_stmt 0 discriminator 2 view .LVU1707 4919 001e 1846 mov r0, r3 4920 .LVL299: 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4921 .loc 1 2671 10 discriminator 2 view .LVU1708 4922 0020 7047 bx lr 4923 .LVL300: 4924 .L351: 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4925 .loc 1 2663 3 view .LVU1709 4926 0022 0220 movs r0, #2 4927 .LVL301: 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4928 .loc 1 2672 1 view .LVU1710 4929 0024 7047 bx lr 4930 .cfi_endproc 4931 .LFE145: 4933 .section .text.HAL_SPI_DMAResume,"ax",%progbits 4934 .align 1 4935 .global HAL_SPI_DMAResume 4936 .syntax unified 4937 .thumb 4938 .thumb_func 4940 HAL_SPI_DMAResume: 4941 .LVL302: 4942 .LFB146: 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4943 .loc 1 2681 1 is_stmt 1 view -0 4944 .cfi_startproc 4945 @ args = 0, pretend = 0, frame = 0 4946 @ frame_needed = 0, uses_anonymous_args = 0 4947 @ link register save eliminated. 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4948 .loc 1 2683 3 view .LVU1712 ARM GAS /tmp/ccywxtmH.s page 192 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4949 .loc 1 2683 3 view .LVU1713 4950 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4951 0004 012B cmp r3, #1 4952 0006 0CD0 beq .L354 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4953 .loc 1 2683 3 discriminator 2 view .LVU1714 4954 0008 0123 movs r3, #1 4955 000a 80F85C30 strb r3, [r0, #92] 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4956 .loc 1 2683 3 discriminator 2 view .LVU1715 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4957 .loc 1 2686 3 discriminator 2 view .LVU1716 4958 000e 0268 ldr r2, [r0] 4959 0010 5368 ldr r3, [r2, #4] 4960 0012 43F00303 orr r3, r3, #3 4961 0016 5360 str r3, [r2, #4] 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4962 .loc 1 2689 3 discriminator 2 view .LVU1717 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4963 .loc 1 2689 3 discriminator 2 view .LVU1718 4964 0018 0023 movs r3, #0 4965 001a 80F85C30 strb r3, [r0, #92] 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4966 .loc 1 2689 3 discriminator 2 view .LVU1719 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4967 .loc 1 2691 3 discriminator 2 view .LVU1720 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4968 .loc 1 2691 10 is_stmt 0 discriminator 2 view .LVU1721 4969 001e 1846 mov r0, r3 4970 .LVL303: 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4971 .loc 1 2691 10 discriminator 2 view .LVU1722 4972 0020 7047 bx lr 4973 .LVL304: 4974 .L354: 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4975 .loc 1 2683 3 view .LVU1723 4976 0022 0220 movs r0, #2 4977 .LVL305: 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4978 .loc 1 2692 1 view .LVU1724 4979 0024 7047 bx lr 4980 .cfi_endproc 4981 .LFE146: 4983 .section .text.HAL_SPI_DMAStop,"ax",%progbits 4984 .align 1 4985 .global HAL_SPI_DMAStop 4986 .syntax unified 4987 .thumb 4988 .thumb_func 4990 HAL_SPI_DMAStop: 4991 .LVL306: 4992 .LFB147: 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4993 .loc 1 2701 1 is_stmt 1 view -0 4994 .cfi_startproc ARM GAS /tmp/ccywxtmH.s page 193 4995 @ args = 0, pretend = 0, frame = 0 4996 @ frame_needed = 0, uses_anonymous_args = 0 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4997 .loc 1 2701 1 is_stmt 0 view .LVU1726 4998 0000 38B5 push {r3, r4, r5, lr} 4999 .cfi_def_cfa_offset 16 5000 .cfi_offset 3, -16 5001 .cfi_offset 4, -12 5002 .cfi_offset 5, -8 5003 .cfi_offset 14, -4 5004 0002 0446 mov r4, r0 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5005 .loc 1 2702 3 is_stmt 1 view .LVU1727 5006 .LVL307: 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5007 .loc 1 2710 3 view .LVU1728 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5008 .loc 1 2710 11 is_stmt 0 view .LVU1729 5009 0004 406D ldr r0, [r0, #84] 5010 .LVL308: 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5011 .loc 1 2710 6 view .LVU1730 5012 0006 48B1 cbz r0, .L358 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5013 .loc 1 2712 5 is_stmt 1 view .LVU1731 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5014 .loc 1 2712 19 is_stmt 0 view .LVU1732 5015 0008 FFF7FEFF bl HAL_DMA_Abort 5016 .LVL309: 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5017 .loc 1 2712 8 view .LVU1733 5018 000c 0546 mov r5, r0 5019 000e 30B1 cbz r0, .L356 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5020 .loc 1 2714 7 is_stmt 1 view .LVU1734 5021 0010 236E ldr r3, [r4, #96] 5022 0012 43F01003 orr r3, r3, #16 5023 0016 2366 str r3, [r4, #96] 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5024 .loc 1 2715 7 view .LVU1735 5025 .LVL310: 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5026 .loc 1 2715 17 is_stmt 0 view .LVU1736 5027 0018 0125 movs r5, #1 5028 001a 00E0 b .L356 5029 .LVL311: 5030 .L358: 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5031 .loc 1 2702 21 view .LVU1737 5032 001c 0025 movs r5, #0 5033 .LVL312: 5034 .L356: 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5035 .loc 1 2719 3 is_stmt 1 view .LVU1738 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5036 .loc 1 2719 11 is_stmt 0 view .LVU1739 5037 001e A06D ldr r0, [r4, #88] ARM GAS /tmp/ccywxtmH.s page 194 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5038 .loc 1 2719 6 view .LVU1740 5039 0020 38B1 cbz r0, .L357 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5040 .loc 1 2721 5 is_stmt 1 view .LVU1741 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5041 .loc 1 2721 19 is_stmt 0 view .LVU1742 5042 0022 FFF7FEFF bl HAL_DMA_Abort 5043 .LVL313: 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5044 .loc 1 2721 8 view .LVU1743 5045 0026 20B1 cbz r0, .L357 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5046 .loc 1 2723 7 is_stmt 1 view .LVU1744 5047 0028 236E ldr r3, [r4, #96] 5048 002a 43F01003 orr r3, r3, #16 5049 002e 2366 str r3, [r4, #96] 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5050 .loc 1 2724 7 view .LVU1745 5051 .LVL314: 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5052 .loc 1 2724 17 is_stmt 0 view .LVU1746 5053 0030 0125 movs r5, #1 5054 .LVL315: 5055 .L357: 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5056 .loc 1 2729 3 is_stmt 1 view .LVU1747 5057 0032 2268 ldr r2, [r4] 5058 0034 5368 ldr r3, [r2, #4] 5059 0036 23F00303 bic r3, r3, #3 5060 003a 5360 str r3, [r2, #4] 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5061 .loc 1 2730 3 view .LVU1748 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5062 .loc 1 2730 15 is_stmt 0 view .LVU1749 5063 003c 0123 movs r3, #1 5064 003e 84F85D30 strb r3, [r4, #93] 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5065 .loc 1 2731 3 is_stmt 1 view .LVU1750 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5066 .loc 1 2732 1 is_stmt 0 view .LVU1751 5067 0042 2846 mov r0, r5 5068 0044 38BD pop {r3, r4, r5, pc} 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5069 .loc 1 2732 1 view .LVU1752 5070 .cfi_endproc 5071 .LFE147: 5073 .section .text.HAL_SPI_TxCpltCallback,"ax",%progbits 5074 .align 1 5075 .weak HAL_SPI_TxCpltCallback 5076 .syntax unified 5077 .thumb 5078 .thumb_func 5080 HAL_SPI_TxCpltCallback: 5081 .LVL316: 5082 .LFB149: 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccywxtmH.s page 195 5083 .loc 1 2848 1 is_stmt 1 view -0 5084 .cfi_startproc 5085 @ args = 0, pretend = 0, frame = 0 5086 @ frame_needed = 0, uses_anonymous_args = 0 5087 @ link register save eliminated. 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5088 .loc 1 2850 3 view .LVU1754 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5089 .loc 1 2855 1 is_stmt 0 view .LVU1755 5090 0000 7047 bx lr 5091 .cfi_endproc 5092 .LFE149: 5094 .section .text.HAL_SPI_RxCpltCallback,"ax",%progbits 5095 .align 1 5096 .weak HAL_SPI_RxCpltCallback 5097 .syntax unified 5098 .thumb 5099 .thumb_func 5101 HAL_SPI_RxCpltCallback: 5102 .LVL317: 5103 .LFB150: 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5104 .loc 1 2864 1 is_stmt 1 view -0 5105 .cfi_startproc 5106 @ args = 0, pretend = 0, frame = 0 5107 @ frame_needed = 0, uses_anonymous_args = 0 5108 @ link register save eliminated. 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5109 .loc 1 2866 3 view .LVU1757 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5110 .loc 1 2871 1 is_stmt 0 view .LVU1758 5111 0000 7047 bx lr 5112 .cfi_endproc 5113 .LFE150: 5115 .section .text.HAL_SPI_TxRxCpltCallback,"ax",%progbits 5116 .align 1 5117 .weak HAL_SPI_TxRxCpltCallback 5118 .syntax unified 5119 .thumb 5120 .thumb_func 5122 HAL_SPI_TxRxCpltCallback: 5123 .LVL318: 5124 .LFB151: 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5125 .loc 1 2880 1 is_stmt 1 view -0 5126 .cfi_startproc 5127 @ args = 0, pretend = 0, frame = 0 5128 @ frame_needed = 0, uses_anonymous_args = 0 5129 @ link register save eliminated. 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5130 .loc 1 2882 3 view .LVU1760 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5131 .loc 1 2887 1 is_stmt 0 view .LVU1761 5132 0000 7047 bx lr 5133 .cfi_endproc 5134 .LFE151: 5136 .section .text.HAL_SPI_TxHalfCpltCallback,"ax",%progbits ARM GAS /tmp/ccywxtmH.s page 196 5137 .align 1 5138 .weak HAL_SPI_TxHalfCpltCallback 5139 .syntax unified 5140 .thumb 5141 .thumb_func 5143 HAL_SPI_TxHalfCpltCallback: 5144 .LVL319: 5145 .LFB152: 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5146 .loc 1 2896 1 is_stmt 1 view -0 5147 .cfi_startproc 5148 @ args = 0, pretend = 0, frame = 0 5149 @ frame_needed = 0, uses_anonymous_args = 0 5150 @ link register save eliminated. 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5151 .loc 1 2898 3 view .LVU1763 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5152 .loc 1 2903 1 is_stmt 0 view .LVU1764 5153 0000 7047 bx lr 5154 .cfi_endproc 5155 .LFE152: 5157 .section .text.SPI_DMAHalfTransmitCplt,"ax",%progbits 5158 .align 1 5159 .syntax unified 5160 .thumb 5161 .thumb_func 5163 SPI_DMAHalfTransmitCplt: 5164 .LVL320: 5165 .LFB162: 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5166 .loc 1 3308 1 is_stmt 1 view -0 5167 .cfi_startproc 5168 @ args = 0, pretend = 0, frame = 0 5169 @ frame_needed = 0, uses_anonymous_args = 0 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5170 .loc 1 3308 1 is_stmt 0 view .LVU1766 5171 0000 08B5 push {r3, lr} 5172 .cfi_def_cfa_offset 8 5173 .cfi_offset 3, -8 5174 .cfi_offset 14, -4 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5175 .loc 1 3309 3 is_stmt 1 view .LVU1767 5176 .LVL321: 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5177 .loc 1 3315 3 view .LVU1768 5178 0002 406A ldr r0, [r0, #36] 5179 .LVL322: 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5180 .loc 1 3315 3 is_stmt 0 view .LVU1769 5181 0004 FFF7FEFF bl HAL_SPI_TxHalfCpltCallback 5182 .LVL323: 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5183 .loc 1 3317 1 view .LVU1770 5184 0008 08BD pop {r3, pc} 5185 .cfi_endproc 5186 .LFE162: 5188 .section .text.HAL_SPI_RxHalfCpltCallback,"ax",%progbits ARM GAS /tmp/ccywxtmH.s page 197 5189 .align 1 5190 .weak HAL_SPI_RxHalfCpltCallback 5191 .syntax unified 5192 .thumb 5193 .thumb_func 5195 HAL_SPI_RxHalfCpltCallback: 5196 .LVL324: 5197 .LFB153: 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5198 .loc 1 2912 1 is_stmt 1 view -0 5199 .cfi_startproc 5200 @ args = 0, pretend = 0, frame = 0 5201 @ frame_needed = 0, uses_anonymous_args = 0 5202 @ link register save eliminated. 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5203 .loc 1 2914 3 view .LVU1772 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5204 .loc 1 2919 1 is_stmt 0 view .LVU1773 5205 0000 7047 bx lr 5206 .cfi_endproc 5207 .LFE153: 5209 .section .text.SPI_DMAHalfReceiveCplt,"ax",%progbits 5210 .align 1 5211 .syntax unified 5212 .thumb 5213 .thumb_func 5215 SPI_DMAHalfReceiveCplt: 5216 .LVL325: 5217 .LFB163: 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5218 .loc 1 3326 1 is_stmt 1 view -0 5219 .cfi_startproc 5220 @ args = 0, pretend = 0, frame = 0 5221 @ frame_needed = 0, uses_anonymous_args = 0 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5222 .loc 1 3326 1 is_stmt 0 view .LVU1775 5223 0000 08B5 push {r3, lr} 5224 .cfi_def_cfa_offset 8 5225 .cfi_offset 3, -8 5226 .cfi_offset 14, -4 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5227 .loc 1 3327 3 is_stmt 1 view .LVU1776 5228 .LVL326: 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5229 .loc 1 3333 3 view .LVU1777 5230 0002 406A ldr r0, [r0, #36] 5231 .LVL327: 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5232 .loc 1 3333 3 is_stmt 0 view .LVU1778 5233 0004 FFF7FEFF bl HAL_SPI_RxHalfCpltCallback 5234 .LVL328: 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5235 .loc 1 3335 1 view .LVU1779 5236 0008 08BD pop {r3, pc} 5237 .cfi_endproc 5238 .LFE163: 5240 .section .text.HAL_SPI_TxRxHalfCpltCallback,"ax",%progbits ARM GAS /tmp/ccywxtmH.s page 198 5241 .align 1 5242 .weak HAL_SPI_TxRxHalfCpltCallback 5243 .syntax unified 5244 .thumb 5245 .thumb_func 5247 HAL_SPI_TxRxHalfCpltCallback: 5248 .LVL329: 5249 .LFB154: 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5250 .loc 1 2928 1 is_stmt 1 view -0 5251 .cfi_startproc 5252 @ args = 0, pretend = 0, frame = 0 5253 @ frame_needed = 0, uses_anonymous_args = 0 5254 @ link register save eliminated. 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5255 .loc 1 2930 3 view .LVU1781 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5256 .loc 1 2935 1 is_stmt 0 view .LVU1782 5257 0000 7047 bx lr 5258 .cfi_endproc 5259 .LFE154: 5261 .section .text.SPI_DMAHalfTransmitReceiveCplt,"ax",%progbits 5262 .align 1 5263 .syntax unified 5264 .thumb 5265 .thumb_func 5267 SPI_DMAHalfTransmitReceiveCplt: 5268 .LVL330: 5269 .LFB164: 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5270 .loc 1 3344 1 is_stmt 1 view -0 5271 .cfi_startproc 5272 @ args = 0, pretend = 0, frame = 0 5273 @ frame_needed = 0, uses_anonymous_args = 0 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5274 .loc 1 3344 1 is_stmt 0 view .LVU1784 5275 0000 08B5 push {r3, lr} 5276 .cfi_def_cfa_offset 8 5277 .cfi_offset 3, -8 5278 .cfi_offset 14, -4 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5279 .loc 1 3345 3 is_stmt 1 view .LVU1785 5280 .LVL331: 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5281 .loc 1 3351 3 view .LVU1786 5282 0002 406A ldr r0, [r0, #36] 5283 .LVL332: 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5284 .loc 1 3351 3 is_stmt 0 view .LVU1787 5285 0004 FFF7FEFF bl HAL_SPI_TxRxHalfCpltCallback 5286 .LVL333: 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5287 .loc 1 3353 1 view .LVU1788 5288 0008 08BD pop {r3, pc} 5289 .cfi_endproc 5290 .LFE164: 5292 .section .text.HAL_SPI_ErrorCallback,"ax",%progbits ARM GAS /tmp/ccywxtmH.s page 199 5293 .align 1 5294 .weak HAL_SPI_ErrorCallback 5295 .syntax unified 5296 .thumb 5297 .thumb_func 5299 HAL_SPI_ErrorCallback: 5300 .LVL334: 5301 .LFB155: 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5302 .loc 1 2944 1 is_stmt 1 view -0 5303 .cfi_startproc 5304 @ args = 0, pretend = 0, frame = 0 5305 @ frame_needed = 0, uses_anonymous_args = 0 5306 @ link register save eliminated. 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5307 .loc 1 2946 3 view .LVU1790 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5308 .loc 1 2954 1 is_stmt 0 view .LVU1791 5309 0000 7047 bx lr 5310 .cfi_endproc 5311 .LFE155: 5313 .section .text.SPI_CloseTx_ISR,"ax",%progbits 5314 .align 1 5315 .syntax unified 5316 .thumb 5317 .thumb_func 5319 SPI_CloseTx_ISR: 5320 .LVL335: 5321 .LFB183: 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5322 .loc 1 4286 1 is_stmt 1 view -0 5323 .cfi_startproc 5324 @ args = 0, pretend = 0, frame = 8 5325 @ frame_needed = 0, uses_anonymous_args = 0 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5326 .loc 1 4286 1 is_stmt 0 view .LVU1793 5327 0000 10B5 push {r4, lr} 5328 .cfi_def_cfa_offset 8 5329 .cfi_offset 4, -8 5330 .cfi_offset 14, -4 5331 0002 82B0 sub sp, sp, #8 5332 .cfi_def_cfa_offset 16 5333 0004 0446 mov r4, r0 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5334 .loc 1 4287 3 is_stmt 1 view .LVU1794 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5335 .loc 1 4290 3 view .LVU1795 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5336 .loc 1 4290 15 is_stmt 0 view .LVU1796 5337 0006 FFF7FEFF bl HAL_GetTick 5338 .LVL336: 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5339 .loc 1 4290 15 view .LVU1797 5340 000a 0246 mov r2, r0 5341 .LVL337: 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5342 .loc 1 4293 3 is_stmt 1 view .LVU1798 ARM GAS /tmp/ccywxtmH.s page 200 5343 000c 2168 ldr r1, [r4] 5344 000e 4B68 ldr r3, [r1, #4] 5345 0010 23F0A003 bic r3, r3, #160 5346 0014 4B60 str r3, [r1, #4] 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5347 .loc 1 4296 3 view .LVU1799 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5348 .loc 1 4296 7 is_stmt 0 view .LVU1800 5349 0016 6421 movs r1, #100 5350 0018 2046 mov r0, r4 5351 .LVL338: 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5352 .loc 1 4296 7 view .LVU1801 5353 001a FFF7FEFF bl SPI_EndRxTxTransaction 5354 .LVL339: 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5355 .loc 1 4296 6 view .LVU1802 5356 001e 18B1 cbz r0, .L374 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5357 .loc 1 4298 5 is_stmt 1 view .LVU1803 5358 0020 236E ldr r3, [r4, #96] 5359 0022 43F02003 orr r3, r3, #32 5360 0026 2366 str r3, [r4, #96] 5361 .L374: 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5362 .loc 1 4302 3 view .LVU1804 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5363 .loc 1 4302 17 is_stmt 0 view .LVU1805 5364 0028 A368 ldr r3, [r4, #8] 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5365 .loc 1 4302 6 view .LVU1806 5366 002a 33B9 cbnz r3, .L375 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5367 .loc 1 4304 5 is_stmt 1 view .LVU1807 5368 .LBB5: 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5369 .loc 1 4304 5 view .LVU1808 5370 002c 0193 str r3, [sp, #4] 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5371 .loc 1 4304 5 view .LVU1809 5372 002e 2368 ldr r3, [r4] 5373 0030 DA68 ldr r2, [r3, #12] 5374 0032 0192 str r2, [sp, #4] 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5375 .loc 1 4304 5 view .LVU1810 5376 0034 9B68 ldr r3, [r3, #8] 5377 0036 0193 str r3, [sp, #4] 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5378 .loc 1 4304 5 view .LVU1811 5379 0038 019B ldr r3, [sp, #4] 5380 .L375: 5381 .LBE5: 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5382 .loc 1 4304 5 discriminator 1 view .LVU1812 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5383 .loc 1 4307 3 discriminator 1 view .LVU1813 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) ARM GAS /tmp/ccywxtmH.s page 201 5384 .loc 1 4307 15 is_stmt 0 discriminator 1 view .LVU1814 5385 003a 0123 movs r3, #1 5386 003c 84F85D30 strb r3, [r4, #93] 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5387 .loc 1 4308 3 is_stmt 1 discriminator 1 view .LVU1815 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5388 .loc 1 4308 11 is_stmt 0 discriminator 1 view .LVU1816 5389 0040 236E ldr r3, [r4, #96] 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5390 .loc 1 4308 6 discriminator 1 view .LVU1817 5391 0042 23B1 cbz r3, .L376 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5392 .loc 1 4314 5 is_stmt 1 view .LVU1818 5393 0044 2046 mov r0, r4 5394 0046 FFF7FEFF bl HAL_SPI_ErrorCallback 5395 .LVL340: 5396 .L373: 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5397 .loc 1 4326 1 is_stmt 0 view .LVU1819 5398 004a 02B0 add sp, sp, #8 5399 .cfi_remember_state 5400 .cfi_def_cfa_offset 8 5401 @ sp needed 5402 004c 10BD pop {r4, pc} 5403 .LVL341: 5404 .L376: 5405 .cfi_restore_state 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5406 .loc 1 4323 5 is_stmt 1 view .LVU1820 5407 004e 2046 mov r0, r4 5408 0050 FFF7FEFF bl HAL_SPI_TxCpltCallback 5409 .LVL342: 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5410 .loc 1 4326 1 is_stmt 0 view .LVU1821 5411 0054 F9E7 b .L373 5412 .cfi_endproc 5413 .LFE183: 5415 .section .text.SPI_TxISR_8BIT,"ax",%progbits 5416 .align 1 5417 .syntax unified 5418 .thumb 5419 .thumb_func 5421 SPI_TxISR_8BIT: 5422 .LVL343: 5423 .LFB175: 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5424 .loc 1 3880 1 is_stmt 1 view -0 5425 .cfi_startproc 5426 @ args = 0, pretend = 0, frame = 0 5427 @ frame_needed = 0, uses_anonymous_args = 0 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5428 .loc 1 3880 1 is_stmt 0 view .LVU1823 5429 0000 08B5 push {r3, lr} 5430 .cfi_def_cfa_offset 8 5431 .cfi_offset 3, -8 5432 .cfi_offset 14, -4 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; ARM GAS /tmp/ccywxtmH.s page 202 5433 .loc 1 3881 3 is_stmt 1 view .LVU1824 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5434 .loc 1 3881 48 is_stmt 0 view .LVU1825 5435 0002 826B ldr r2, [r0, #56] 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5436 .loc 1 3881 25 view .LVU1826 5437 0004 0368 ldr r3, [r0] 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5438 .loc 1 3881 43 view .LVU1827 5439 0006 1278 ldrb r2, [r2] @ zero_extendqisi2 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5440 .loc 1 3881 40 view .LVU1828 5441 0008 1A73 strb r2, [r3, #12] 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5442 .loc 1 3882 3 is_stmt 1 view .LVU1829 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5443 .loc 1 3882 7 is_stmt 0 view .LVU1830 5444 000a 836B ldr r3, [r0, #56] 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5445 .loc 1 3882 19 view .LVU1831 5446 000c 0133 adds r3, r3, #1 5447 000e 8363 str r3, [r0, #56] 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5448 .loc 1 3883 3 is_stmt 1 view .LVU1832 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5449 .loc 1 3883 7 is_stmt 0 view .LVU1833 5450 0010 C38F ldrh r3, [r0, #62] 5451 0012 9BB2 uxth r3, r3 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5452 .loc 1 3883 20 view .LVU1834 5453 0014 013B subs r3, r3, #1 5454 0016 9BB2 uxth r3, r3 5455 0018 C387 strh r3, [r0, #62] @ movhi 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5456 .loc 1 3885 3 is_stmt 1 view .LVU1835 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5457 .loc 1 3885 11 is_stmt 0 view .LVU1836 5458 001a C38F ldrh r3, [r0, #62] 5459 001c 9BB2 uxth r3, r3 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5460 .loc 1 3885 6 view .LVU1837 5461 001e 03B1 cbz r3, .L382 5462 .LVL344: 5463 .L379: 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5464 .loc 1 3896 1 view .LVU1838 5465 0020 08BD pop {r3, pc} 5466 .LVL345: 5467 .L382: 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5468 .loc 1 3894 5 is_stmt 1 view .LVU1839 5469 0022 FFF7FEFF bl SPI_CloseTx_ISR 5470 .LVL346: 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5471 .loc 1 3896 1 is_stmt 0 view .LVU1840 5472 0026 FBE7 b .L379 5473 .cfi_endproc ARM GAS /tmp/ccywxtmH.s page 203 5474 .LFE175: 5476 .section .text.SPI_TxISR_16BIT,"ax",%progbits 5477 .align 1 5478 .syntax unified 5479 .thumb 5480 .thumb_func 5482 SPI_TxISR_16BIT: 5483 .LVL347: 5484 .LFB176: 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5485 .loc 1 3905 1 is_stmt 1 view -0 5486 .cfi_startproc 5487 @ args = 0, pretend = 0, frame = 0 5488 @ frame_needed = 0, uses_anonymous_args = 0 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5489 .loc 1 3905 1 is_stmt 0 view .LVU1842 5490 0000 08B5 push {r3, lr} 5491 .cfi_def_cfa_offset 8 5492 .cfi_offset 3, -8 5493 .cfi_offset 14, -4 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5494 .loc 1 3907 3 is_stmt 1 view .LVU1843 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5495 .loc 1 3907 42 is_stmt 0 view .LVU1844 5496 0002 826B ldr r2, [r0, #56] 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5497 .loc 1 3907 7 view .LVU1845 5498 0004 0368 ldr r3, [r0] 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5499 .loc 1 3907 24 view .LVU1846 5500 0006 1288 ldrh r2, [r2] 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5501 .loc 1 3907 22 view .LVU1847 5502 0008 DA60 str r2, [r3, #12] 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5503 .loc 1 3908 3 is_stmt 1 view .LVU1848 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5504 .loc 1 3908 7 is_stmt 0 view .LVU1849 5505 000a 836B ldr r3, [r0, #56] 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5506 .loc 1 3908 20 view .LVU1850 5507 000c 0233 adds r3, r3, #2 5508 000e 8363 str r3, [r0, #56] 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5509 .loc 1 3909 3 is_stmt 1 view .LVU1851 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5510 .loc 1 3909 7 is_stmt 0 view .LVU1852 5511 0010 C38F ldrh r3, [r0, #62] 5512 0012 9BB2 uxth r3, r3 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5513 .loc 1 3909 20 view .LVU1853 5514 0014 013B subs r3, r3, #1 5515 0016 9BB2 uxth r3, r3 5516 0018 C387 strh r3, [r0, #62] @ movhi 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5517 .loc 1 3911 3 is_stmt 1 view .LVU1854 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 204 5518 .loc 1 3911 11 is_stmt 0 view .LVU1855 5519 001a C38F ldrh r3, [r0, #62] 5520 001c 9BB2 uxth r3, r3 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5521 .loc 1 3911 6 view .LVU1856 5522 001e 03B1 cbz r3, .L386 5523 .LVL348: 5524 .L383: 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5525 .loc 1 3922 1 view .LVU1857 5526 0020 08BD pop {r3, pc} 5527 .LVL349: 5528 .L386: 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5529 .loc 1 3920 5 is_stmt 1 view .LVU1858 5530 0022 FFF7FEFF bl SPI_CloseTx_ISR 5531 .LVL350: 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5532 .loc 1 3922 1 is_stmt 0 view .LVU1859 5533 0026 FBE7 b .L383 5534 .cfi_endproc 5535 .LFE176: 5537 .section .text.SPI_CloseRx_ISR,"ax",%progbits 5538 .align 1 5539 .syntax unified 5540 .thumb 5541 .thumb_func 5543 SPI_CloseRx_ISR: 5544 .LVL351: 5545 .LFB182: 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5546 .loc 1 4229 1 is_stmt 1 view -0 5547 .cfi_startproc 5548 @ args = 0, pretend = 0, frame = 0 5549 @ frame_needed = 0, uses_anonymous_args = 0 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5550 .loc 1 4229 1 is_stmt 0 view .LVU1861 5551 0000 10B5 push {r4, lr} 5552 .cfi_def_cfa_offset 8 5553 .cfi_offset 4, -8 5554 .cfi_offset 14, -4 5555 0002 0446 mov r4, r0 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5556 .loc 1 4231 3 is_stmt 1 view .LVU1862 5557 0004 0268 ldr r2, [r0] 5558 0006 5368 ldr r3, [r2, #4] 5559 0008 23F06003 bic r3, r3, #96 5560 000c 5360 str r3, [r2, #4] 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5561 .loc 1 4234 3 view .LVU1863 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5562 .loc 1 4234 7 is_stmt 0 view .LVU1864 5563 000e FFF7FEFF bl HAL_GetTick 5564 .LVL352: 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5565 .loc 1 4234 7 view .LVU1865 5566 0012 0246 mov r2, r0 ARM GAS /tmp/ccywxtmH.s page 205 5567 0014 6421 movs r1, #100 5568 0016 2046 mov r0, r4 5569 0018 FFF7FEFF bl SPI_EndRxTransaction 5570 .LVL353: 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5571 .loc 1 4234 6 view .LVU1866 5572 001c 18B1 cbz r0, .L388 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5573 .loc 1 4236 5 is_stmt 1 view .LVU1867 5574 001e 236E ldr r3, [r4, #96] 5575 0020 43F02003 orr r3, r3, #32 5576 0024 2366 str r3, [r4, #96] 5577 .L388: 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5578 .loc 1 4238 3 view .LVU1868 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5579 .loc 1 4238 15 is_stmt 0 view .LVU1869 5580 0026 0123 movs r3, #1 5581 0028 84F85D30 strb r3, [r4, #93] 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5582 .loc 1 4256 5 is_stmt 1 view .LVU1870 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5583 .loc 1 4256 13 is_stmt 0 view .LVU1871 5584 002c 236E ldr r3, [r4, #96] 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5585 .loc 1 4256 8 view .LVU1872 5586 002e 1BB9 cbnz r3, .L389 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5587 .loc 1 4262 7 is_stmt 1 view .LVU1873 5588 0030 2046 mov r0, r4 5589 0032 FFF7FEFF bl HAL_SPI_RxCpltCallback 5590 .LVL354: 5591 .L387: 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5592 .loc 1 4277 1 is_stmt 0 view .LVU1874 5593 0036 10BD pop {r4, pc} 5594 .LVL355: 5595 .L389: 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5596 .loc 1 4271 7 is_stmt 1 view .LVU1875 5597 0038 2046 mov r0, r4 5598 003a FFF7FEFF bl HAL_SPI_ErrorCallback 5599 .LVL356: 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5600 .loc 1 4277 1 is_stmt 0 view .LVU1876 5601 003e FAE7 b .L387 5602 .cfi_endproc 5603 .LFE182: 5605 .section .text.SPI_RxISR_8BIT,"ax",%progbits 5606 .align 1 5607 .syntax unified 5608 .thumb 5609 .thumb_func 5611 SPI_RxISR_8BIT: 5612 .LVL357: 5613 .LFB173: 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); ARM GAS /tmp/ccywxtmH.s page 206 5614 .loc 1 3791 1 is_stmt 1 view -0 5615 .cfi_startproc 5616 @ args = 0, pretend = 0, frame = 0 5617 @ frame_needed = 0, uses_anonymous_args = 0 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 5618 .loc 1 3791 1 is_stmt 0 view .LVU1878 5619 0000 08B5 push {r3, lr} 5620 .cfi_def_cfa_offset 8 5621 .cfi_offset 3, -8 5622 .cfi_offset 14, -4 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5623 .loc 1 3792 3 is_stmt 1 view .LVU1879 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5624 .loc 1 3792 46 is_stmt 0 view .LVU1880 5625 0002 0268 ldr r2, [r0] 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5626 .loc 1 3792 8 view .LVU1881 5627 0004 036C ldr r3, [r0, #64] 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5628 .loc 1 3792 24 view .LVU1882 5629 0006 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5630 .loc 1 3792 21 view .LVU1883 5631 0008 1A70 strb r2, [r3] 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5632 .loc 1 3793 3 is_stmt 1 view .LVU1884 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5633 .loc 1 3793 7 is_stmt 0 view .LVU1885 5634 000a 036C ldr r3, [r0, #64] 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5635 .loc 1 3793 19 view .LVU1886 5636 000c 0133 adds r3, r3, #1 5637 000e 0364 str r3, [r0, #64] 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5638 .loc 1 3794 3 is_stmt 1 view .LVU1887 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5639 .loc 1 3794 7 is_stmt 0 view .LVU1888 5640 0010 B0F84630 ldrh r3, [r0, #70] 5641 0014 9BB2 uxth r3, r3 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5642 .loc 1 3794 20 view .LVU1889 5643 0016 013B subs r3, r3, #1 5644 0018 9BB2 uxth r3, r3 5645 001a A0F84630 strh r3, [r0, #70] @ movhi 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5646 .loc 1 3804 3 is_stmt 1 view .LVU1890 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5647 .loc 1 3804 11 is_stmt 0 view .LVU1891 5648 001e B0F84630 ldrh r3, [r0, #70] 5649 0022 9BB2 uxth r3, r3 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5650 .loc 1 3804 6 view .LVU1892 5651 0024 03B1 cbz r3, .L395 5652 .LVL358: 5653 .L392: 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5654 .loc 1 3815 1 view .LVU1893 ARM GAS /tmp/ccywxtmH.s page 207 5655 0026 08BD pop {r3, pc} 5656 .LVL359: 5657 .L395: 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5658 .loc 1 3813 5 is_stmt 1 view .LVU1894 5659 0028 FFF7FEFF bl SPI_CloseRx_ISR 5660 .LVL360: 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5661 .loc 1 3815 1 is_stmt 0 view .LVU1895 5662 002c FBE7 b .L392 5663 .cfi_endproc 5664 .LFE173: 5666 .section .text.SPI_RxISR_16BIT,"ax",%progbits 5667 .align 1 5668 .syntax unified 5669 .thumb 5670 .thumb_func 5672 SPI_RxISR_16BIT: 5673 .LVL361: 5674 .LFB174: 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5675 .loc 1 3847 1 is_stmt 1 view -0 5676 .cfi_startproc 5677 @ args = 0, pretend = 0, frame = 0 5678 @ frame_needed = 0, uses_anonymous_args = 0 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5679 .loc 1 3847 1 is_stmt 0 view .LVU1897 5680 0000 08B5 push {r3, lr} 5681 .cfi_def_cfa_offset 8 5682 .cfi_offset 3, -8 5683 .cfi_offset 14, -4 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5684 .loc 1 3848 3 is_stmt 1 view .LVU1898 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5685 .loc 1 3848 52 is_stmt 0 view .LVU1899 5686 0002 0368 ldr r3, [r0] 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5687 .loc 1 3848 62 view .LVU1900 5688 0004 DA68 ldr r2, [r3, #12] 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5689 .loc 1 3848 21 view .LVU1901 5690 0006 036C ldr r3, [r0, #64] 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5691 .loc 1 3848 35 view .LVU1902 5692 0008 1A80 strh r2, [r3] @ movhi 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5693 .loc 1 3849 3 is_stmt 1 view .LVU1903 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5694 .loc 1 3849 7 is_stmt 0 view .LVU1904 5695 000a 036C ldr r3, [r0, #64] 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5696 .loc 1 3849 20 view .LVU1905 5697 000c 0233 adds r3, r3, #2 5698 000e 0364 str r3, [r0, #64] 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5699 .loc 1 3850 3 is_stmt 1 view .LVU1906 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 208 5700 .loc 1 3850 7 is_stmt 0 view .LVU1907 5701 0010 B0F84630 ldrh r3, [r0, #70] 5702 0014 9BB2 uxth r3, r3 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5703 .loc 1 3850 20 view .LVU1908 5704 0016 013B subs r3, r3, #1 5705 0018 9BB2 uxth r3, r3 5706 001a A0F84630 strh r3, [r0, #70] @ movhi 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5707 .loc 1 3860 3 is_stmt 1 view .LVU1909 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5708 .loc 1 3860 11 is_stmt 0 view .LVU1910 5709 001e B0F84630 ldrh r3, [r0, #70] 5710 0022 9BB2 uxth r3, r3 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5711 .loc 1 3860 6 view .LVU1911 5712 0024 03B1 cbz r3, .L399 5713 .LVL362: 5714 .L396: 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5715 .loc 1 3871 1 view .LVU1912 5716 0026 08BD pop {r3, pc} 5717 .LVL363: 5718 .L399: 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5719 .loc 1 3869 5 is_stmt 1 view .LVU1913 5720 0028 FFF7FEFF bl SPI_CloseRx_ISR 5721 .LVL364: 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5722 .loc 1 3871 1 is_stmt 0 view .LVU1914 5723 002c FBE7 b .L396 5724 .cfi_endproc 5725 .LFE174: 5727 .section .text.SPI_CloseRxTx_ISR,"ax",%progbits 5728 .align 1 5729 .syntax unified 5730 .thumb 5731 .thumb_func 5733 SPI_CloseRxTx_ISR: 5734 .LVL365: 5735 .LFB181: 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5736 .loc 1 4152 1 is_stmt 1 view -0 5737 .cfi_startproc 5738 @ args = 0, pretend = 0, frame = 0 5739 @ frame_needed = 0, uses_anonymous_args = 0 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5740 .loc 1 4152 1 is_stmt 0 view .LVU1916 5741 0000 10B5 push {r4, lr} 5742 .cfi_def_cfa_offset 8 5743 .cfi_offset 4, -8 5744 .cfi_offset 14, -4 5745 0002 0446 mov r4, r0 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5746 .loc 1 4153 3 is_stmt 1 view .LVU1917 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5747 .loc 1 4156 3 view .LVU1918 ARM GAS /tmp/ccywxtmH.s page 209 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5748 .loc 1 4156 15 is_stmt 0 view .LVU1919 5749 0004 FFF7FEFF bl HAL_GetTick 5750 .LVL366: 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5751 .loc 1 4156 15 view .LVU1920 5752 0008 0246 mov r2, r0 5753 .LVL367: 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5754 .loc 1 4159 3 is_stmt 1 view .LVU1921 5755 000a 2168 ldr r1, [r4] 5756 000c 4B68 ldr r3, [r1, #4] 5757 000e 23F02003 bic r3, r3, #32 5758 0012 4B60 str r3, [r1, #4] 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5759 .loc 1 4162 3 view .LVU1922 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5760 .loc 1 4162 7 is_stmt 0 view .LVU1923 5761 0014 6421 movs r1, #100 5762 0016 2046 mov r0, r4 5763 .LVL368: 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5764 .loc 1 4162 7 view .LVU1924 5765 0018 FFF7FEFF bl SPI_EndRxTxTransaction 5766 .LVL369: 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5767 .loc 1 4162 6 view .LVU1925 5768 001c 18B1 cbz r0, .L401 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5769 .loc 1 4164 5 is_stmt 1 view .LVU1926 5770 001e 236E ldr r3, [r4, #96] 5771 0020 43F02003 orr r3, r3, #32 5772 0024 2366 str r3, [r4, #96] 5773 .L401: 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5774 .loc 1 4184 5 view .LVU1927 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5775 .loc 1 4184 13 is_stmt 0 view .LVU1928 5776 0026 236E ldr r3, [r4, #96] 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5777 .loc 1 4184 8 view .LVU1929 5778 0028 93B9 cbnz r3, .L402 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5779 .loc 1 4186 7 is_stmt 1 view .LVU1930 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5780 .loc 1 4186 15 is_stmt 0 view .LVU1931 5781 002a 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 5782 002e DBB2 uxtb r3, r3 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5783 .loc 1 4186 10 view .LVU1932 5784 0030 042B cmp r3, #4 5785 0032 06D0 beq .L406 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5786 .loc 1 4198 9 is_stmt 1 view .LVU1933 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5787 .loc 1 4198 21 is_stmt 0 view .LVU1934 5788 0034 0123 movs r3, #1 ARM GAS /tmp/ccywxtmH.s page 210 5789 0036 84F85D30 strb r3, [r4, #93] 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5790 .loc 1 4203 9 is_stmt 1 view .LVU1935 5791 003a 2046 mov r0, r4 5792 003c FFF7FEFF bl HAL_SPI_TxRxCpltCallback 5793 .LVL370: 5794 .L400: 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5795 .loc 1 4220 1 is_stmt 0 view .LVU1936 5796 0040 10BD pop {r4, pc} 5797 .LVL371: 5798 .L406: 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5799 .loc 1 4188 9 is_stmt 1 view .LVU1937 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5800 .loc 1 4188 21 is_stmt 0 view .LVU1938 5801 0042 0123 movs r3, #1 5802 0044 84F85D30 strb r3, [r4, #93] 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5803 .loc 1 4193 9 is_stmt 1 view .LVU1939 5804 0048 2046 mov r0, r4 5805 004a FFF7FEFF bl HAL_SPI_RxCpltCallback 5806 .LVL372: 5807 004e F7E7 b .L400 5808 .L402: 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5809 .loc 1 4209 7 view .LVU1940 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5810 .loc 1 4209 19 is_stmt 0 view .LVU1941 5811 0050 0123 movs r3, #1 5812 0052 84F85D30 strb r3, [r4, #93] 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5813 .loc 1 4214 7 is_stmt 1 view .LVU1942 5814 0056 2046 mov r0, r4 5815 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 5816 .LVL373: 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5817 .loc 1 4220 1 is_stmt 0 view .LVU1943 5818 005c F0E7 b .L400 5819 .cfi_endproc 5820 .LFE181: 5822 .section .text.SPI_2linesTxISR_8BIT,"ax",%progbits 5823 .align 1 5824 .syntax unified 5825 .thumb 5826 .thumb_func 5828 SPI_2linesTxISR_8BIT: 5829 .LVL374: 5830 .LFB170: 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5831 .loc 1 3623 1 is_stmt 1 view -0 5832 .cfi_startproc 5833 @ args = 0, pretend = 0, frame = 0 5834 @ frame_needed = 0, uses_anonymous_args = 0 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5835 .loc 1 3623 1 is_stmt 0 view .LVU1945 5836 0000 08B5 push {r3, lr} ARM GAS /tmp/ccywxtmH.s page 211 5837 .cfi_def_cfa_offset 8 5838 .cfi_offset 3, -8 5839 .cfi_offset 14, -4 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5840 .loc 1 3625 3 is_stmt 1 view .LVU1946 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5841 .loc 1 3625 11 is_stmt 0 view .LVU1947 5842 0002 C38F ldrh r3, [r0, #62] 5843 0004 9BB2 uxth r3, r3 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5844 .loc 1 3625 6 view .LVU1948 5845 0006 012B cmp r3, #1 5846 0008 18D9 bls .L408 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5847 .loc 1 3627 5 is_stmt 1 view .LVU1949 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5848 .loc 1 3627 44 is_stmt 0 view .LVU1950 5849 000a 826B ldr r2, [r0, #56] 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5850 .loc 1 3627 9 view .LVU1951 5851 000c 0368 ldr r3, [r0] 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5852 .loc 1 3627 26 view .LVU1952 5853 000e 1288 ldrh r2, [r2] 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5854 .loc 1 3627 24 view .LVU1953 5855 0010 DA60 str r2, [r3, #12] 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5856 .loc 1 3628 5 is_stmt 1 view .LVU1954 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5857 .loc 1 3628 9 is_stmt 0 view .LVU1955 5858 0012 836B ldr r3, [r0, #56] 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5859 .loc 1 3628 22 view .LVU1956 5860 0014 0233 adds r3, r3, #2 5861 0016 8363 str r3, [r0, #56] 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5862 .loc 1 3629 5 is_stmt 1 view .LVU1957 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5863 .loc 1 3629 9 is_stmt 0 view .LVU1958 5864 0018 C38F ldrh r3, [r0, #62] 5865 001a 9BB2 uxth r3, r3 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5866 .loc 1 3629 23 view .LVU1959 5867 001c 023B subs r3, r3, #2 5868 001e 9BB2 uxth r3, r3 5869 0020 C387 strh r3, [r0, #62] @ movhi 5870 .L409: 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5871 .loc 1 3640 3 is_stmt 1 view .LVU1960 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5872 .loc 1 3640 11 is_stmt 0 view .LVU1961 5873 0022 C38F ldrh r3, [r0, #62] 5874 0024 9BB2 uxth r3, r3 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5875 .loc 1 3640 6 view .LVU1962 5876 0026 43B9 cbnz r3, .L407 ARM GAS /tmp/ccywxtmH.s page 212 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5877 .loc 1 3654 5 is_stmt 1 view .LVU1963 5878 0028 0268 ldr r2, [r0] 5879 002a 5368 ldr r3, [r2, #4] 5880 002c 23F08003 bic r3, r3, #128 5881 0030 5360 str r3, [r2, #4] 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5882 .loc 1 3656 5 view .LVU1964 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5883 .loc 1 3656 13 is_stmt 0 view .LVU1965 5884 0032 B0F84630 ldrh r3, [r0, #70] 5885 0036 9BB2 uxth r3, r3 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5886 .loc 1 3656 8 view .LVU1966 5887 0038 6BB1 cbz r3, .L412 5888 .LVL375: 5889 .L407: 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5890 .loc 1 3661 1 view .LVU1967 5891 003a 08BD pop {r3, pc} 5892 .LVL376: 5893 .L408: 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5894 .loc 1 3634 5 is_stmt 1 view .LVU1968 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5895 .loc 1 3634 50 is_stmt 0 view .LVU1969 5896 003c 826B ldr r2, [r0, #56] 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5897 .loc 1 3634 27 view .LVU1970 5898 003e 0368 ldr r3, [r0] 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5899 .loc 1 3634 45 view .LVU1971 5900 0040 1278 ldrb r2, [r2] @ zero_extendqisi2 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5901 .loc 1 3634 42 view .LVU1972 5902 0042 1A73 strb r2, [r3, #12] 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5903 .loc 1 3635 5 is_stmt 1 view .LVU1973 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5904 .loc 1 3635 9 is_stmt 0 view .LVU1974 5905 0044 836B ldr r3, [r0, #56] 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5906 .loc 1 3635 21 view .LVU1975 5907 0046 0133 adds r3, r3, #1 5908 0048 8363 str r3, [r0, #56] 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5909 .loc 1 3636 5 is_stmt 1 view .LVU1976 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5910 .loc 1 3636 9 is_stmt 0 view .LVU1977 5911 004a C38F ldrh r3, [r0, #62] 5912 004c 9BB2 uxth r3, r3 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5913 .loc 1 3636 22 view .LVU1978 5914 004e 013B subs r3, r3, #1 5915 0050 9BB2 uxth r3, r3 5916 0052 C387 strh r3, [r0, #62] @ movhi 5917 0054 E5E7 b .L409 ARM GAS /tmp/ccywxtmH.s page 213 5918 .L412: 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5919 .loc 1 3658 7 is_stmt 1 view .LVU1979 5920 0056 FFF7FEFF bl SPI_CloseRxTx_ISR 5921 .LVL377: 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5922 .loc 1 3661 1 is_stmt 0 view .LVU1980 5923 005a EEE7 b .L407 5924 .cfi_endproc 5925 .LFE170: 5927 .section .text.SPI_2linesRxISR_8BIT,"ax",%progbits 5928 .align 1 5929 .syntax unified 5930 .thumb 5931 .thumb_func 5933 SPI_2linesRxISR_8BIT: 5934 .LVL378: 5935 .LFB169: 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5936 .loc 1 3538 1 is_stmt 1 view -0 5937 .cfi_startproc 5938 @ args = 0, pretend = 0, frame = 0 5939 @ frame_needed = 0, uses_anonymous_args = 0 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5940 .loc 1 3538 1 is_stmt 0 view .LVU1982 5941 0000 08B5 push {r3, lr} 5942 .cfi_def_cfa_offset 8 5943 .cfi_offset 3, -8 5944 .cfi_offset 14, -4 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5945 .loc 1 3540 3 is_stmt 1 view .LVU1983 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5946 .loc 1 3540 11 is_stmt 0 view .LVU1984 5947 0002 B0F84630 ldrh r3, [r0, #70] 5948 0006 9BB2 uxth r3, r3 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5949 .loc 1 3540 6 view .LVU1985 5950 0008 012B cmp r3, #1 5951 000a 18D9 bls .L414 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5952 .loc 1 3542 5 is_stmt 1 view .LVU1986 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5953 .loc 1 3542 54 is_stmt 0 view .LVU1987 5954 000c 0368 ldr r3, [r0] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5955 .loc 1 3542 64 view .LVU1988 5956 000e DA68 ldr r2, [r3, #12] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5957 .loc 1 3542 23 view .LVU1989 5958 0010 036C ldr r3, [r0, #64] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5959 .loc 1 3542 37 view .LVU1990 5960 0012 1A80 strh r2, [r3] @ movhi 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5961 .loc 1 3543 5 is_stmt 1 view .LVU1991 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5962 .loc 1 3543 9 is_stmt 0 view .LVU1992 ARM GAS /tmp/ccywxtmH.s page 214 5963 0014 036C ldr r3, [r0, #64] 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5964 .loc 1 3543 22 view .LVU1993 5965 0016 0233 adds r3, r3, #2 5966 0018 0364 str r3, [r0, #64] 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5967 .loc 1 3544 5 is_stmt 1 view .LVU1994 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5968 .loc 1 3544 9 is_stmt 0 view .LVU1995 5969 001a B0F84630 ldrh r3, [r0, #70] 5970 001e 9BB2 uxth r3, r3 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5971 .loc 1 3544 23 view .LVU1996 5972 0020 023B subs r3, r3, #2 5973 0022 9BB2 uxth r3, r3 5974 0024 A0F84630 strh r3, [r0, #70] @ movhi 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5975 .loc 1 3545 5 is_stmt 1 view .LVU1997 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5976 .loc 1 3545 13 is_stmt 0 view .LVU1998 5977 0028 B0F84630 ldrh r3, [r0, #70] 5978 002c 9BB2 uxth r3, r3 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5979 .loc 1 3545 8 view .LVU1999 5980 002e 012B cmp r3, #1 5981 0030 13D1 bne .L415 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5982 .loc 1 3548 7 is_stmt 1 view .LVU2000 5983 0032 0268 ldr r2, [r0] 5984 0034 5368 ldr r3, [r2, #4] 5985 0036 43F48053 orr r3, r3, #4096 5986 003a 5360 str r3, [r2, #4] 5987 003c 0DE0 b .L415 5988 .L414: 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5989 .loc 1 3554 5 view .LVU2001 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5990 .loc 1 3554 48 is_stmt 0 view .LVU2002 5991 003e 0268 ldr r2, [r0] 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5992 .loc 1 3554 10 view .LVU2003 5993 0040 036C ldr r3, [r0, #64] 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5994 .loc 1 3554 25 view .LVU2004 5995 0042 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5996 .loc 1 3554 23 view .LVU2005 5997 0044 1A70 strb r2, [r3] 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5998 .loc 1 3555 5 is_stmt 1 view .LVU2006 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5999 .loc 1 3555 9 is_stmt 0 view .LVU2007 6000 0046 036C ldr r3, [r0, #64] 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6001 .loc 1 3555 21 view .LVU2008 6002 0048 0133 adds r3, r3, #1 6003 004a 0364 str r3, [r0, #64] ARM GAS /tmp/ccywxtmH.s page 215 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6004 .loc 1 3556 5 is_stmt 1 view .LVU2009 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6005 .loc 1 3556 9 is_stmt 0 view .LVU2010 6006 004c B0F84630 ldrh r3, [r0, #70] 6007 0050 9BB2 uxth r3, r3 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6008 .loc 1 3556 22 view .LVU2011 6009 0052 013B subs r3, r3, #1 6010 0054 9BB2 uxth r3, r3 6011 0056 A0F84630 strh r3, [r0, #70] @ movhi 6012 .L415: 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6013 .loc 1 3560 3 is_stmt 1 view .LVU2012 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6014 .loc 1 3560 11 is_stmt 0 view .LVU2013 6015 005a B0F84630 ldrh r3, [r0, #70] 6016 005e 9BB2 uxth r3, r3 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6017 .loc 1 3560 6 view .LVU2014 6018 0060 3BB9 cbnz r3, .L413 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6019 .loc 1 3572 5 is_stmt 1 view .LVU2015 6020 0062 0268 ldr r2, [r0] 6021 0064 5368 ldr r3, [r2, #4] 6022 0066 23F06003 bic r3, r3, #96 6023 006a 5360 str r3, [r2, #4] 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6024 .loc 1 3574 5 view .LVU2016 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6025 .loc 1 3574 13 is_stmt 0 view .LVU2017 6026 006c C38F ldrh r3, [r0, #62] 6027 006e 9BB2 uxth r3, r3 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6028 .loc 1 3574 8 view .LVU2018 6029 0070 03B1 cbz r3, .L418 6030 .LVL379: 6031 .L413: 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6032 .loc 1 3579 1 view .LVU2019 6033 0072 08BD pop {r3, pc} 6034 .LVL380: 6035 .L418: 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6036 .loc 1 3576 7 is_stmt 1 view .LVU2020 6037 0074 FFF7FEFF bl SPI_CloseRxTx_ISR 6038 .LVL381: 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6039 .loc 1 3579 1 is_stmt 0 view .LVU2021 6040 0078 FBE7 b .L413 6041 .cfi_endproc 6042 .LFE169: 6044 .section .text.SPI_2linesTxISR_16BIT,"ax",%progbits 6045 .align 1 6046 .syntax unified 6047 .thumb 6048 .thumb_func ARM GAS /tmp/ccywxtmH.s page 216 6050 SPI_2linesTxISR_16BIT: 6051 .LVL382: 6052 .LFB172: 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6053 .loc 1 3726 1 is_stmt 1 view -0 6054 .cfi_startproc 6055 @ args = 0, pretend = 0, frame = 0 6056 @ frame_needed = 0, uses_anonymous_args = 0 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6057 .loc 1 3726 1 is_stmt 0 view .LVU2023 6058 0000 08B5 push {r3, lr} 6059 .cfi_def_cfa_offset 8 6060 .cfi_offset 3, -8 6061 .cfi_offset 14, -4 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6062 .loc 1 3728 3 is_stmt 1 view .LVU2024 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6063 .loc 1 3728 42 is_stmt 0 view .LVU2025 6064 0002 826B ldr r2, [r0, #56] 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6065 .loc 1 3728 7 view .LVU2026 6066 0004 0368 ldr r3, [r0] 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6067 .loc 1 3728 24 view .LVU2027 6068 0006 1288 ldrh r2, [r2] 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6069 .loc 1 3728 22 view .LVU2028 6070 0008 DA60 str r2, [r3, #12] 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6071 .loc 1 3729 3 is_stmt 1 view .LVU2029 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6072 .loc 1 3729 7 is_stmt 0 view .LVU2030 6073 000a 836B ldr r3, [r0, #56] 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6074 .loc 1 3729 20 view .LVU2031 6075 000c 0233 adds r3, r3, #2 6076 000e 8363 str r3, [r0, #56] 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6077 .loc 1 3730 3 is_stmt 1 view .LVU2032 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6078 .loc 1 3730 7 is_stmt 0 view .LVU2033 6079 0010 C38F ldrh r3, [r0, #62] 6080 0012 9BB2 uxth r3, r3 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6081 .loc 1 3730 20 view .LVU2034 6082 0014 013B subs r3, r3, #1 6083 0016 9BB2 uxth r3, r3 6084 0018 C387 strh r3, [r0, #62] @ movhi 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6085 .loc 1 3733 3 is_stmt 1 view .LVU2035 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6086 .loc 1 3733 11 is_stmt 0 view .LVU2036 6087 001a C38F ldrh r3, [r0, #62] 6088 001c 9BB2 uxth r3, r3 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6089 .loc 1 3733 6 view .LVU2037 6090 001e 43B9 cbnz r3, .L419 ARM GAS /tmp/ccywxtmH.s page 217 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6091 .loc 1 3747 5 is_stmt 1 view .LVU2038 6092 0020 0268 ldr r2, [r0] 6093 0022 5368 ldr r3, [r2, #4] 6094 0024 23F08003 bic r3, r3, #128 6095 0028 5360 str r3, [r2, #4] 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6096 .loc 1 3749 5 view .LVU2039 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6097 .loc 1 3749 13 is_stmt 0 view .LVU2040 6098 002a B0F84630 ldrh r3, [r0, #70] 6099 002e 9BB2 uxth r3, r3 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6100 .loc 1 3749 8 view .LVU2041 6101 0030 03B1 cbz r3, .L422 6102 .LVL383: 6103 .L419: 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6104 .loc 1 3754 1 view .LVU2042 6105 0032 08BD pop {r3, pc} 6106 .LVL384: 6107 .L422: 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6108 .loc 1 3751 7 is_stmt 1 view .LVU2043 6109 0034 FFF7FEFF bl SPI_CloseRxTx_ISR 6110 .LVL385: 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6111 .loc 1 3754 1 is_stmt 0 view .LVU2044 6112 0038 FBE7 b .L419 6113 .cfi_endproc 6114 .LFE172: 6116 .section .text.SPI_2linesRxISR_16BIT,"ax",%progbits 6117 .align 1 6118 .syntax unified 6119 .thumb 6120 .thumb_func 6122 SPI_2linesRxISR_16BIT: 6123 .LVL386: 6124 .LFB171: 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6125 .loc 1 3670 1 is_stmt 1 view -0 6126 .cfi_startproc 6127 @ args = 0, pretend = 0, frame = 0 6128 @ frame_needed = 0, uses_anonymous_args = 0 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6129 .loc 1 3670 1 is_stmt 0 view .LVU2046 6130 0000 08B5 push {r3, lr} 6131 .cfi_def_cfa_offset 8 6132 .cfi_offset 3, -8 6133 .cfi_offset 14, -4 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6134 .loc 1 3672 3 is_stmt 1 view .LVU2047 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6135 .loc 1 3672 52 is_stmt 0 view .LVU2048 6136 0002 0368 ldr r3, [r0] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6137 .loc 1 3672 62 view .LVU2049 ARM GAS /tmp/ccywxtmH.s page 218 6138 0004 DA68 ldr r2, [r3, #12] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6139 .loc 1 3672 21 view .LVU2050 6140 0006 036C ldr r3, [r0, #64] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6141 .loc 1 3672 35 view .LVU2051 6142 0008 1A80 strh r2, [r3] @ movhi 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6143 .loc 1 3673 3 is_stmt 1 view .LVU2052 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6144 .loc 1 3673 7 is_stmt 0 view .LVU2053 6145 000a 036C ldr r3, [r0, #64] 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6146 .loc 1 3673 20 view .LVU2054 6147 000c 0233 adds r3, r3, #2 6148 000e 0364 str r3, [r0, #64] 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6149 .loc 1 3674 3 is_stmt 1 view .LVU2055 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6150 .loc 1 3674 7 is_stmt 0 view .LVU2056 6151 0010 B0F84630 ldrh r3, [r0, #70] 6152 0014 9BB2 uxth r3, r3 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6153 .loc 1 3674 20 view .LVU2057 6154 0016 013B subs r3, r3, #1 6155 0018 9BB2 uxth r3, r3 6156 001a A0F84630 strh r3, [r0, #70] @ movhi 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6157 .loc 1 3676 3 is_stmt 1 view .LVU2058 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6158 .loc 1 3676 11 is_stmt 0 view .LVU2059 6159 001e B0F84630 ldrh r3, [r0, #70] 6160 0022 9BB2 uxth r3, r3 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6161 .loc 1 3676 6 view .LVU2060 6162 0024 3BB9 cbnz r3, .L423 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6163 .loc 1 3687 5 is_stmt 1 view .LVU2061 6164 0026 0268 ldr r2, [r0] 6165 0028 5368 ldr r3, [r2, #4] 6166 002a 23F04003 bic r3, r3, #64 6167 002e 5360 str r3, [r2, #4] 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6168 .loc 1 3689 5 view .LVU2062 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6169 .loc 1 3689 13 is_stmt 0 view .LVU2063 6170 0030 C38F ldrh r3, [r0, #62] 6171 0032 9BB2 uxth r3, r3 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6172 .loc 1 3689 8 view .LVU2064 6173 0034 03B1 cbz r3, .L426 6174 .LVL387: 6175 .L423: 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6176 .loc 1 3694 1 view .LVU2065 6177 0036 08BD pop {r3, pc} 6178 .LVL388: ARM GAS /tmp/ccywxtmH.s page 219 6179 .L426: 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6180 .loc 1 3691 7 is_stmt 1 view .LVU2066 6181 0038 FFF7FEFF bl SPI_CloseRxTx_ISR 6182 .LVL389: 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6183 .loc 1 3694 1 is_stmt 0 view .LVU2067 6184 003c FBE7 b .L423 6185 .cfi_endproc 6186 .LFE171: 6188 .section .text.SPI_DMAError,"ax",%progbits 6189 .align 1 6190 .syntax unified 6191 .thumb 6192 .thumb_func 6194 SPI_DMAError: 6195 .LVL390: 6196 .LFB165: 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6197 .loc 1 3362 1 is_stmt 1 view -0 6198 .cfi_startproc 6199 @ args = 0, pretend = 0, frame = 0 6200 @ frame_needed = 0, uses_anonymous_args = 0 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6201 .loc 1 3362 1 is_stmt 0 view .LVU2069 6202 0000 08B5 push {r3, lr} 6203 .cfi_def_cfa_offset 8 6204 .cfi_offset 3, -8 6205 .cfi_offset 14, -4 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6206 .loc 1 3363 3 is_stmt 1 view .LVU2070 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6207 .loc 1 3363 22 is_stmt 0 view .LVU2071 6208 0002 406A ldr r0, [r0, #36] 6209 .LVL391: 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6210 .loc 1 3366 3 is_stmt 1 view .LVU2072 6211 0004 0268 ldr r2, [r0] 6212 0006 5368 ldr r3, [r2, #4] 6213 0008 23F00303 bic r3, r3, #3 6214 000c 5360 str r3, [r2, #4] 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6215 .loc 1 3368 3 view .LVU2073 6216 000e 036E ldr r3, [r0, #96] 6217 0010 43F01003 orr r3, r3, #16 6218 0014 0366 str r3, [r0, #96] 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6219 .loc 1 3369 3 view .LVU2074 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6220 .loc 1 3369 15 is_stmt 0 view .LVU2075 6221 0016 0123 movs r3, #1 6222 0018 80F85D30 strb r3, [r0, #93] 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6223 .loc 1 3374 3 is_stmt 1 view .LVU2076 6224 001c FFF7FEFF bl HAL_SPI_ErrorCallback 6225 .LVL392: 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 220 6226 .loc 1 3376 1 is_stmt 0 view .LVU2077 6227 0020 08BD pop {r3, pc} 6228 .cfi_endproc 6229 .LFE165: 6231 .section .text.SPI_DMATransmitCplt,"ax",%progbits 6232 .align 1 6233 .syntax unified 6234 .thumb 6235 .thumb_func 6237 SPI_DMATransmitCplt: 6238 .LVL393: 6239 .LFB159: 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6240 .loc 1 3034 1 is_stmt 1 view -0 6241 .cfi_startproc 6242 @ args = 0, pretend = 0, frame = 8 6243 @ frame_needed = 0, uses_anonymous_args = 0 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6244 .loc 1 3034 1 is_stmt 0 view .LVU2079 6245 0000 30B5 push {r4, r5, lr} 6246 .cfi_def_cfa_offset 12 6247 .cfi_offset 4, -12 6248 .cfi_offset 5, -8 6249 .cfi_offset 14, -4 6250 0002 83B0 sub sp, sp, #12 6251 .cfi_def_cfa_offset 24 6252 0004 0546 mov r5, r0 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6253 .loc 1 3035 3 is_stmt 1 view .LVU2080 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6254 .loc 1 3035 22 is_stmt 0 view .LVU2081 6255 0006 446A ldr r4, [r0, #36] 6256 .LVL394: 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6257 .loc 1 3036 3 is_stmt 1 view .LVU2082 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6258 .loc 1 3039 3 view .LVU2083 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6259 .loc 1 3039 15 is_stmt 0 view .LVU2084 6260 0008 FFF7FEFF bl HAL_GetTick 6261 .LVL395: 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6262 .loc 1 3042 3 is_stmt 1 view .LVU2085 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6263 .loc 1 3042 12 is_stmt 0 view .LVU2086 6264 000c 2B68 ldr r3, [r5] 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6265 .loc 1 3042 22 view .LVU2087 6266 000e 1B68 ldr r3, [r3] 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6267 .loc 1 3042 6 view .LVU2088 6268 0010 13F0200F tst r3, #32 6269 0014 23D1 bne .L430 6270 0016 0246 mov r2, r0 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6271 .loc 1 3045 5 is_stmt 1 view .LVU2089 6272 0018 2168 ldr r1, [r4] ARM GAS /tmp/ccywxtmH.s page 221 6273 001a 4B68 ldr r3, [r1, #4] 6274 001c 23F02003 bic r3, r3, #32 6275 0020 4B60 str r3, [r1, #4] 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6276 .loc 1 3048 5 view .LVU2090 6277 0022 2168 ldr r1, [r4] 6278 0024 4B68 ldr r3, [r1, #4] 6279 0026 23F00203 bic r3, r3, #2 6280 002a 4B60 str r3, [r1, #4] 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6281 .loc 1 3051 5 view .LVU2091 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6282 .loc 1 3051 9 is_stmt 0 view .LVU2092 6283 002c 6421 movs r1, #100 6284 002e 2046 mov r0, r4 6285 .LVL396: 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6286 .loc 1 3051 9 view .LVU2093 6287 0030 FFF7FEFF bl SPI_EndRxTxTransaction 6288 .LVL397: 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6289 .loc 1 3051 8 view .LVU2094 6290 0034 18B1 cbz r0, .L431 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6291 .loc 1 3053 7 is_stmt 1 view .LVU2095 6292 0036 236E ldr r3, [r4, #96] 6293 0038 43F02003 orr r3, r3, #32 6294 003c 2366 str r3, [r4, #96] 6295 .L431: 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6296 .loc 1 3057 5 view .LVU2096 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6297 .loc 1 3057 19 is_stmt 0 view .LVU2097 6298 003e A368 ldr r3, [r4, #8] 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6299 .loc 1 3057 8 view .LVU2098 6300 0040 33B9 cbnz r3, .L432 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6301 .loc 1 3059 7 is_stmt 1 view .LVU2099 6302 .LBB6: 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6303 .loc 1 3059 7 view .LVU2100 6304 0042 0193 str r3, [sp, #4] 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6305 .loc 1 3059 7 view .LVU2101 6306 0044 2368 ldr r3, [r4] 6307 0046 DA68 ldr r2, [r3, #12] 6308 0048 0192 str r2, [sp, #4] 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6309 .loc 1 3059 7 view .LVU2102 6310 004a 9B68 ldr r3, [r3, #8] 6311 004c 0193 str r3, [sp, #4] 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6312 .loc 1 3059 7 view .LVU2103 6313 004e 019B ldr r3, [sp, #4] 6314 .L432: 6315 .LBE6: ARM GAS /tmp/ccywxtmH.s page 222 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6316 .loc 1 3059 7 discriminator 1 view .LVU2104 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6317 .loc 1 3062 5 discriminator 1 view .LVU2105 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6318 .loc 1 3062 23 is_stmt 0 discriminator 1 view .LVU2106 6319 0050 0023 movs r3, #0 6320 0052 E387 strh r3, [r4, #62] @ movhi 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6321 .loc 1 3063 5 is_stmt 1 discriminator 1 view .LVU2107 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6322 .loc 1 3063 17 is_stmt 0 discriminator 1 view .LVU2108 6323 0054 0123 movs r3, #1 6324 0056 84F85D30 strb r3, [r4, #93] 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6325 .loc 1 3065 5 is_stmt 1 discriminator 1 view .LVU2109 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6326 .loc 1 3065 13 is_stmt 0 discriminator 1 view .LVU2110 6327 005a 236E ldr r3, [r4, #96] 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6328 .loc 1 3065 8 discriminator 1 view .LVU2111 6329 005c 23B9 cbnz r3, .L435 6330 .L430: 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6331 .loc 1 3080 3 is_stmt 1 view .LVU2112 6332 005e 2046 mov r0, r4 6333 0060 FFF7FEFF bl HAL_SPI_TxCpltCallback 6334 .LVL398: 6335 .L429: 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6336 .loc 1 3082 1 is_stmt 0 view .LVU2113 6337 0064 03B0 add sp, sp, #12 6338 .cfi_remember_state 6339 .cfi_def_cfa_offset 12 6340 @ sp needed 6341 0066 30BD pop {r4, r5, pc} 6342 .LVL399: 6343 .L435: 6344 .cfi_restore_state 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6345 .loc 1 3071 7 is_stmt 1 view .LVU2114 6346 0068 2046 mov r0, r4 6347 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6348 .LVL400: 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6349 .loc 1 3073 7 view .LVU2115 6350 006e F9E7 b .L429 6351 .cfi_endproc 6352 .LFE159: 6354 .section .text.SPI_DMAReceiveCplt,"ax",%progbits 6355 .align 1 6356 .syntax unified 6357 .thumb 6358 .thumb_func 6360 SPI_DMAReceiveCplt: 6361 .LVL401: 6362 .LFB160: ARM GAS /tmp/ccywxtmH.s page 223 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6363 .loc 1 3091 1 view -0 6364 .cfi_startproc 6365 @ args = 0, pretend = 0, frame = 0 6366 @ frame_needed = 0, uses_anonymous_args = 0 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6367 .loc 1 3091 1 is_stmt 0 view .LVU2117 6368 0000 38B5 push {r3, r4, r5, lr} 6369 .cfi_def_cfa_offset 16 6370 .cfi_offset 3, -16 6371 .cfi_offset 4, -12 6372 .cfi_offset 5, -8 6373 .cfi_offset 14, -4 6374 0002 0546 mov r5, r0 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6375 .loc 1 3092 3 is_stmt 1 view .LVU2118 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6376 .loc 1 3092 22 is_stmt 0 view .LVU2119 6377 0004 446A ldr r4, [r0, #36] 6378 .LVL402: 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 6379 .loc 1 3093 3 is_stmt 1 view .LVU2120 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6380 .loc 1 3101 3 view .LVU2121 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6381 .loc 1 3101 15 is_stmt 0 view .LVU2122 6382 0006 FFF7FEFF bl HAL_GetTick 6383 .LVL403: 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6384 .loc 1 3104 3 is_stmt 1 view .LVU2123 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6385 .loc 1 3104 12 is_stmt 0 view .LVU2124 6386 000a 2B68 ldr r3, [r5] 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6387 .loc 1 3104 22 view .LVU2125 6388 000c 1B68 ldr r3, [r3] 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6389 .loc 1 3104 6 view .LVU2126 6390 000e 13F0200F tst r3, #32 6391 0012 1FD1 bne .L437 6392 0014 0246 mov r2, r0 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6393 .loc 1 3107 5 is_stmt 1 view .LVU2127 6394 0016 2168 ldr r1, [r4] 6395 0018 4B68 ldr r3, [r1, #4] 6396 001a 23F02003 bic r3, r3, #32 6397 001e 4B60 str r3, [r1, #4] 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6398 .loc 1 3153 5 view .LVU2128 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6399 .loc 1 3153 20 is_stmt 0 view .LVU2129 6400 0020 A368 ldr r3, [r4, #8] 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6401 .loc 1 3153 8 view .LVU2130 6402 0022 1BB9 cbnz r3, .L438 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6403 .loc 1 3153 70 discriminator 1 view .LVU2131 ARM GAS /tmp/ccywxtmH.s page 224 6404 0024 6368 ldr r3, [r4, #4] 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6405 .loc 1 3153 56 discriminator 1 view .LVU2132 6406 0026 B3F5827F cmp r3, #260 6407 002a 17D0 beq .L443 6408 .L438: 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6409 .loc 1 3161 7 is_stmt 1 view .LVU2133 6410 002c 2168 ldr r1, [r4] 6411 002e 4B68 ldr r3, [r1, #4] 6412 0030 23F00103 bic r3, r3, #1 6413 0034 4B60 str r3, [r1, #4] 6414 .L439: 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6415 .loc 1 3165 5 view .LVU2134 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6416 .loc 1 3165 9 is_stmt 0 view .LVU2135 6417 0036 6421 movs r1, #100 6418 0038 2046 mov r0, r4 6419 .LVL404: 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6420 .loc 1 3165 9 view .LVU2136 6421 003a FFF7FEFF bl SPI_EndRxTransaction 6422 .LVL405: 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6423 .loc 1 3165 8 view .LVU2137 6424 003e 08B1 cbz r0, .L440 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6425 .loc 1 3167 7 is_stmt 1 view .LVU2138 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6426 .loc 1 3167 23 is_stmt 0 view .LVU2139 6427 0040 2023 movs r3, #32 6428 0042 2366 str r3, [r4, #96] 6429 .L440: 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6430 .loc 1 3170 5 is_stmt 1 view .LVU2140 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6431 .loc 1 3170 23 is_stmt 0 view .LVU2141 6432 0044 0023 movs r3, #0 6433 0046 A4F84630 strh r3, [r4, #70] @ movhi 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6434 .loc 1 3171 5 is_stmt 1 view .LVU2142 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6435 .loc 1 3171 17 is_stmt 0 view .LVU2143 6436 004a 0123 movs r3, #1 6437 004c 84F85D30 strb r3, [r4, #93] 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6438 .loc 1 3182 5 is_stmt 1 view .LVU2144 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6439 .loc 1 3182 13 is_stmt 0 view .LVU2145 6440 0050 236E ldr r3, [r4, #96] 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6441 .loc 1 3182 8 view .LVU2146 6442 0052 4BB9 cbnz r3, .L444 6443 .L437: 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6444 .loc 1 3197 3 is_stmt 1 view .LVU2147 ARM GAS /tmp/ccywxtmH.s page 225 6445 0054 2046 mov r0, r4 6446 0056 FFF7FEFF bl HAL_SPI_RxCpltCallback 6447 .LVL406: 6448 .L436: 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6449 .loc 1 3199 1 is_stmt 0 view .LVU2148 6450 005a 38BD pop {r3, r4, r5, pc} 6451 .LVL407: 6452 .L443: 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6453 .loc 1 3156 7 is_stmt 1 view .LVU2149 6454 005c 2168 ldr r1, [r4] 6455 005e 4B68 ldr r3, [r1, #4] 6456 0060 23F00303 bic r3, r3, #3 6457 0064 4B60 str r3, [r1, #4] 6458 0066 E6E7 b .L439 6459 .LVL408: 6460 .L444: 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6461 .loc 1 3188 7 view .LVU2150 6462 0068 2046 mov r0, r4 6463 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6464 .LVL409: 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6465 .loc 1 3190 7 view .LVU2151 6466 006e F4E7 b .L436 6467 .cfi_endproc 6468 .LFE160: 6470 .section .text.SPI_DMATransmitReceiveCplt,"ax",%progbits 6471 .align 1 6472 .syntax unified 6473 .thumb 6474 .thumb_func 6476 SPI_DMATransmitReceiveCplt: 6477 .LVL410: 6478 .LFB161: 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6479 .loc 1 3208 1 view -0 6480 .cfi_startproc 6481 @ args = 0, pretend = 0, frame = 0 6482 @ frame_needed = 0, uses_anonymous_args = 0 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6483 .loc 1 3208 1 is_stmt 0 view .LVU2153 6484 0000 38B5 push {r3, r4, r5, lr} 6485 .cfi_def_cfa_offset 16 6486 .cfi_offset 3, -16 6487 .cfi_offset 4, -12 6488 .cfi_offset 5, -8 6489 .cfi_offset 14, -4 6490 0002 0546 mov r5, r0 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6491 .loc 1 3209 3 is_stmt 1 view .LVU2154 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6492 .loc 1 3209 22 is_stmt 0 view .LVU2155 6493 0004 446A ldr r4, [r0, #36] 6494 .LVL411: 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) ARM GAS /tmp/ccywxtmH.s page 226 6495 .loc 1 3210 3 is_stmt 1 view .LVU2156 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6496 .loc 1 3218 3 view .LVU2157 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6497 .loc 1 3218 15 is_stmt 0 view .LVU2158 6498 0006 FFF7FEFF bl HAL_GetTick 6499 .LVL412: 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6500 .loc 1 3221 3 is_stmt 1 view .LVU2159 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6501 .loc 1 3221 12 is_stmt 0 view .LVU2160 6502 000a 2B68 ldr r3, [r5] 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6503 .loc 1 3221 22 view .LVU2161 6504 000c 1B68 ldr r3, [r3] 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6505 .loc 1 3221 6 view .LVU2162 6506 000e 13F0200F tst r3, #32 6507 0012 1CD1 bne .L446 6508 0014 0246 mov r2, r0 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6509 .loc 1 3224 5 is_stmt 1 view .LVU2163 6510 0016 2168 ldr r1, [r4] 6511 0018 4B68 ldr r3, [r1, #4] 6512 001a 23F02003 bic r3, r3, #32 6513 001e 4B60 str r3, [r1, #4] 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6514 .loc 1 3261 5 view .LVU2164 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6515 .loc 1 3261 9 is_stmt 0 view .LVU2165 6516 0020 6421 movs r1, #100 6517 0022 2046 mov r0, r4 6518 .LVL413: 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6519 .loc 1 3261 9 view .LVU2166 6520 0024 FFF7FEFF bl SPI_EndRxTxTransaction 6521 .LVL414: 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6522 .loc 1 3261 8 view .LVU2167 6523 0028 18B1 cbz r0, .L447 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6524 .loc 1 3263 7 is_stmt 1 view .LVU2168 6525 002a 236E ldr r3, [r4, #96] 6526 002c 43F02003 orr r3, r3, #32 6527 0030 2366 str r3, [r4, #96] 6528 .L447: 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6529 .loc 1 3267 5 view .LVU2169 6530 0032 2268 ldr r2, [r4] 6531 0034 5368 ldr r3, [r2, #4] 6532 0036 23F00303 bic r3, r3, #3 6533 003a 5360 str r3, [r2, #4] 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6534 .loc 1 3269 5 view .LVU2170 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6535 .loc 1 3269 23 is_stmt 0 view .LVU2171 6536 003c 0023 movs r3, #0 ARM GAS /tmp/ccywxtmH.s page 227 6537 003e E387 strh r3, [r4, #62] @ movhi 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6538 .loc 1 3270 5 is_stmt 1 view .LVU2172 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6539 .loc 1 3270 23 is_stmt 0 view .LVU2173 6540 0040 A4F84630 strh r3, [r4, #70] @ movhi 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6541 .loc 1 3271 5 is_stmt 1 view .LVU2174 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6542 .loc 1 3271 17 is_stmt 0 view .LVU2175 6543 0044 0123 movs r3, #1 6544 0046 84F85D30 strb r3, [r4, #93] 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6545 .loc 1 3282 5 is_stmt 1 view .LVU2176 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6546 .loc 1 3282 13 is_stmt 0 view .LVU2177 6547 004a 236E ldr r3, [r4, #96] 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6548 .loc 1 3282 8 view .LVU2178 6549 004c 1BB9 cbnz r3, .L450 6550 .L446: 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6551 .loc 1 3297 3 is_stmt 1 view .LVU2179 6552 004e 2046 mov r0, r4 6553 0050 FFF7FEFF bl HAL_SPI_TxRxCpltCallback 6554 .LVL415: 6555 .L445: 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6556 .loc 1 3299 1 is_stmt 0 view .LVU2180 6557 0054 38BD pop {r3, r4, r5, pc} 6558 .LVL416: 6559 .L450: 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6560 .loc 1 3288 7 is_stmt 1 view .LVU2181 6561 0056 2046 mov r0, r4 6562 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 6563 .LVL417: 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6564 .loc 1 3290 7 view .LVU2182 6565 005c FAE7 b .L445 6566 .cfi_endproc 6567 .LFE161: 6569 .section .text.HAL_SPI_IRQHandler,"ax",%progbits 6570 .align 1 6571 .global HAL_SPI_IRQHandler 6572 .syntax unified 6573 .thumb 6574 .thumb_func 6576 HAL_SPI_IRQHandler: 6577 .LVL418: 6578 .LFB148: 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 6579 .loc 1 2741 1 view -0 6580 .cfi_startproc 6581 @ args = 0, pretend = 0, frame = 16 6582 @ frame_needed = 0, uses_anonymous_args = 0 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; ARM GAS /tmp/ccywxtmH.s page 228 6583 .loc 1 2741 1 is_stmt 0 view .LVU2184 6584 0000 10B5 push {r4, lr} 6585 .cfi_def_cfa_offset 8 6586 .cfi_offset 4, -8 6587 .cfi_offset 14, -4 6588 0002 84B0 sub sp, sp, #16 6589 .cfi_def_cfa_offset 24 6590 0004 0446 mov r4, r0 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6591 .loc 1 2742 3 is_stmt 1 view .LVU2185 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6592 .loc 1 2742 27 is_stmt 0 view .LVU2186 6593 0006 0268 ldr r2, [r0] 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6594 .loc 1 2742 12 view .LVU2187 6595 0008 5168 ldr r1, [r2, #4] 6596 .LVL419: 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6597 .loc 1 2743 3 is_stmt 1 view .LVU2188 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6598 .loc 1 2743 12 is_stmt 0 view .LVU2189 6599 000a 9368 ldr r3, [r2, #8] 6600 .LVL420: 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 6601 .loc 1 2746 3 is_stmt 1 view .LVU2190 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 6602 .loc 1 2746 55 is_stmt 0 view .LVU2191 6603 000c 03F04100 and r0, r3, #65 6604 .LVL421: 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 6605 .loc 1 2746 6 view .LVU2192 6606 0010 0128 cmp r0, #1 6607 0012 67D0 beq .L463 6608 .L452: 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6609 .loc 1 2754 3 is_stmt 1 view .LVU2193 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6610 .loc 1 2754 6 is_stmt 0 view .LVU2194 6611 0014 13F0020F tst r3, #2 6612 0018 02D0 beq .L454 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6613 .loc 1 2754 55 discriminator 1 view .LVU2195 6614 001a 11F0800F tst r1, #128 6615 001e 68D1 bne .L464 6616 .L454: 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6617 .loc 1 2761 3 is_stmt 1 view .LVU2196 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6618 .loc 1 2761 6 is_stmt 0 view .LVU2197 6619 0020 13F4B07F tst r3, #352 6620 0024 68D0 beq .L451 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6621 .loc 1 2762 60 view .LVU2198 6622 0026 11F0200F tst r1, #32 6623 002a 65D0 beq .L451 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6624 .loc 1 2765 5 is_stmt 1 view .LVU2199 ARM GAS /tmp/ccywxtmH.s page 229 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6625 .loc 1 2765 8 is_stmt 0 view .LVU2200 6626 002c 13F0400F tst r3, #64 6627 0030 0FD0 beq .L455 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6628 .loc 1 2767 7 is_stmt 1 view .LVU2201 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6629 .loc 1 2767 15 is_stmt 0 view .LVU2202 6630 0032 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 6631 0036 C0B2 uxtb r0, r0 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6632 .loc 1 2767 10 view .LVU2203 6633 0038 0328 cmp r0, #3 6634 003a 5FD0 beq .L456 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 6635 .loc 1 2769 9 is_stmt 1 view .LVU2204 6636 003c 206E ldr r0, [r4, #96] 6637 003e 40F00400 orr r0, r0, #4 6638 0042 2066 str r0, [r4, #96] 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6639 .loc 1 2770 9 view .LVU2205 6640 .LBB7: 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6641 .loc 1 2770 9 view .LVU2206 6642 0044 0020 movs r0, #0 6643 0046 0090 str r0, [sp] 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6644 .loc 1 2770 9 view .LVU2207 6645 0048 D068 ldr r0, [r2, #12] 6646 004a 0090 str r0, [sp] 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6647 .loc 1 2770 9 view .LVU2208 6648 004c 9068 ldr r0, [r2, #8] 6649 004e 0090 str r0, [sp] 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6650 .loc 1 2770 9 view .LVU2209 6651 0050 0098 ldr r0, [sp] 6652 .LBE7: 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6653 .loc 1 2770 9 view .LVU2210 6654 .L455: 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6655 .loc 1 2780 5 view .LVU2211 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6656 .loc 1 2780 8 is_stmt 0 view .LVU2212 6657 0052 13F0200F tst r3, #32 6658 0056 0CD0 beq .L457 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 6659 .loc 1 2782 7 is_stmt 1 view .LVU2213 6660 0058 206E ldr r0, [r4, #96] 6661 005a 40F00100 orr r0, r0, #1 6662 005e 2066 str r0, [r4, #96] 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6663 .loc 1 2783 7 view .LVU2214 6664 .LBB8: 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6665 .loc 1 2783 7 view .LVU2215 ARM GAS /tmp/ccywxtmH.s page 230 6666 0060 0020 movs r0, #0 6667 0062 0290 str r0, [sp, #8] 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6668 .loc 1 2783 7 view .LVU2216 6669 0064 9068 ldr r0, [r2, #8] 6670 0066 0290 str r0, [sp, #8] 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6671 .loc 1 2783 7 view .LVU2217 6672 0068 1068 ldr r0, [r2] 6673 006a 20F04000 bic r0, r0, #64 6674 006e 1060 str r0, [r2] 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6675 .loc 1 2783 7 view .LVU2218 6676 0070 029A ldr r2, [sp, #8] 6677 .L457: 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6678 .loc 1 2783 7 is_stmt 0 view .LVU2219 6679 .LBE8: 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6680 .loc 1 2783 7 is_stmt 1 discriminator 1 view .LVU2220 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6681 .loc 1 2787 5 discriminator 1 view .LVU2221 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6682 .loc 1 2787 8 is_stmt 0 discriminator 1 view .LVU2222 6683 0072 13F4807F tst r3, #256 6684 0076 09D0 beq .L458 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6685 .loc 1 2789 7 is_stmt 1 view .LVU2223 6686 0078 236E ldr r3, [r4, #96] 6687 .LVL422: 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6688 .loc 1 2789 7 is_stmt 0 view .LVU2224 6689 007a 43F00803 orr r3, r3, #8 6690 007e 2366 str r3, [r4, #96] 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6691 .loc 1 2790 7 is_stmt 1 view .LVU2225 6692 .LBB9: 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6693 .loc 1 2790 7 view .LVU2226 6694 0080 0023 movs r3, #0 6695 0082 0393 str r3, [sp, #12] 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6696 .loc 1 2790 7 view .LVU2227 6697 0084 2368 ldr r3, [r4] 6698 0086 9B68 ldr r3, [r3, #8] 6699 0088 0393 str r3, [sp, #12] 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6700 .loc 1 2790 7 view .LVU2228 6701 008a 039B ldr r3, [sp, #12] 6702 .L458: 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6703 .loc 1 2790 7 is_stmt 0 view .LVU2229 6704 .LBE9: 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6705 .loc 1 2790 7 is_stmt 1 discriminator 1 view .LVU2230 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6706 .loc 1 2793 5 discriminator 1 view .LVU2231 ARM GAS /tmp/ccywxtmH.s page 231 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6707 .loc 1 2793 13 is_stmt 0 discriminator 1 view .LVU2232 6708 008c 236E ldr r3, [r4, #96] 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6709 .loc 1 2793 8 discriminator 1 view .LVU2233 6710 008e 002B cmp r3, #0 6711 0090 32D0 beq .L451 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6712 .loc 1 2796 7 is_stmt 1 view .LVU2234 6713 0092 2268 ldr r2, [r4] 6714 0094 5368 ldr r3, [r2, #4] 6715 0096 23F0E003 bic r3, r3, #224 6716 009a 5360 str r3, [r2, #4] 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6717 .loc 1 2798 7 view .LVU2235 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6718 .loc 1 2798 19 is_stmt 0 view .LVU2236 6719 009c 0123 movs r3, #1 6720 009e 84F85D30 strb r3, [r4, #93] 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6721 .loc 1 2800 7 is_stmt 1 view .LVU2237 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6722 .loc 1 2800 10 is_stmt 0 view .LVU2238 6723 00a2 11F0030F tst r1, #3 6724 00a6 31D0 beq .L460 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6725 .loc 1 2802 9 is_stmt 1 view .LVU2239 6726 00a8 2268 ldr r2, [r4] 6727 00aa 5368 ldr r3, [r2, #4] 6728 00ac 23F00303 bic r3, r3, #3 6729 00b0 5360 str r3, [r2, #4] 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6730 .loc 1 2805 9 view .LVU2240 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6731 .loc 1 2805 17 is_stmt 0 view .LVU2241 6732 00b2 A36D ldr r3, [r4, #88] 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6733 .loc 1 2805 12 view .LVU2242 6734 00b4 4BB1 cbz r3, .L461 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6735 .loc 1 2809 11 is_stmt 1 view .LVU2243 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6736 .loc 1 2809 43 is_stmt 0 view .LVU2244 6737 00b6 174A ldr r2, .L465 6738 00b8 5A63 str r2, [r3, #52] 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6739 .loc 1 2810 11 is_stmt 1 view .LVU2245 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6740 .loc 1 2810 25 is_stmt 0 view .LVU2246 6741 00ba A06D ldr r0, [r4, #88] 6742 00bc FFF7FEFF bl HAL_DMA_Abort_IT 6743 .LVL423: 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6744 .loc 1 2810 14 view .LVU2247 6745 00c0 18B1 cbz r0, .L461 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6746 .loc 1 2812 13 is_stmt 1 view .LVU2248 ARM GAS /tmp/ccywxtmH.s page 232 6747 00c2 236E ldr r3, [r4, #96] 6748 00c4 43F04003 orr r3, r3, #64 6749 00c8 2366 str r3, [r4, #96] 6750 .L461: 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6751 .loc 1 2816 9 view .LVU2249 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6752 .loc 1 2816 17 is_stmt 0 view .LVU2250 6753 00ca 636D ldr r3, [r4, #84] 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6754 .loc 1 2816 12 view .LVU2251 6755 00cc A3B1 cbz r3, .L451 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6756 .loc 1 2820 11 is_stmt 1 view .LVU2252 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6757 .loc 1 2820 43 is_stmt 0 view .LVU2253 6758 00ce 114A ldr r2, .L465 6759 00d0 5A63 str r2, [r3, #52] 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6760 .loc 1 2821 11 is_stmt 1 view .LVU2254 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6761 .loc 1 2821 25 is_stmt 0 view .LVU2255 6762 00d2 606D ldr r0, [r4, #84] 6763 00d4 FFF7FEFF bl HAL_DMA_Abort_IT 6764 .LVL424: 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6765 .loc 1 2821 14 view .LVU2256 6766 00d8 70B1 cbz r0, .L451 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6767 .loc 1 2823 13 is_stmt 1 view .LVU2257 6768 00da 236E ldr r3, [r4, #96] 6769 00dc 43F04003 orr r3, r3, #64 6770 00e0 2366 str r3, [r4, #96] 6771 00e2 09E0 b .L451 6772 .LVL425: 6773 .L463: 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6774 .loc 1 2747 56 is_stmt 0 view .LVU2258 6775 00e4 11F0400F tst r1, #64 6776 00e8 94D0 beq .L452 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6777 .loc 1 2749 5 is_stmt 1 view .LVU2259 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6778 .loc 1 2749 9 is_stmt 0 view .LVU2260 6779 00ea E36C ldr r3, [r4, #76] 6780 .LVL426: 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6781 .loc 1 2749 5 view .LVU2261 6782 00ec 2046 mov r0, r4 6783 00ee 9847 blx r3 6784 .LVL427: 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6785 .loc 1 2750 5 is_stmt 1 view .LVU2262 6786 00f0 02E0 b .L451 6787 .LVL428: 6788 .L464: 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; ARM GAS /tmp/ccywxtmH.s page 233 6789 .loc 1 2756 5 view .LVU2263 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6790 .loc 1 2756 9 is_stmt 0 view .LVU2264 6791 00f2 236D ldr r3, [r4, #80] 6792 .LVL429: 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6793 .loc 1 2756 5 view .LVU2265 6794 00f4 2046 mov r0, r4 6795 00f6 9847 blx r3 6796 .LVL430: 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6797 .loc 1 2757 5 is_stmt 1 view .LVU2266 6798 .L451: 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6799 .loc 1 2839 1 is_stmt 0 view .LVU2267 6800 00f8 04B0 add sp, sp, #16 6801 .cfi_remember_state 6802 .cfi_def_cfa_offset 8 6803 @ sp needed 6804 00fa 10BD pop {r4, pc} 6805 .LVL431: 6806 .L456: 6807 .cfi_restore_state 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6808 .loc 1 2774 9 is_stmt 1 view .LVU2268 6809 .LBB10: 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6810 .loc 1 2774 9 view .LVU2269 6811 00fc 0023 movs r3, #0 6812 .LVL432: 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6813 .loc 1 2774 9 is_stmt 0 view .LVU2270 6814 00fe 0193 str r3, [sp, #4] 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6815 .loc 1 2774 9 is_stmt 1 view .LVU2271 6816 0100 D368 ldr r3, [r2, #12] 6817 0102 0193 str r3, [sp, #4] 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6818 .loc 1 2774 9 view .LVU2272 6819 0104 9368 ldr r3, [r2, #8] 6820 0106 0193 str r3, [sp, #4] 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6821 .loc 1 2774 9 view .LVU2273 6822 0108 019B ldr r3, [sp, #4] 6823 .LBE10: 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6824 .loc 1 2774 9 view .LVU2274 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6825 .loc 1 2775 9 view .LVU2275 6826 010a F5E7 b .L451 6827 .L460: 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6828 .loc 1 2833 9 view .LVU2276 6829 010c 2046 mov r0, r4 6830 010e FFF7FEFF bl HAL_SPI_ErrorCallback 6831 .LVL433: 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 234 6832 .loc 1 2837 5 view .LVU2277 6833 0112 F1E7 b .L451 6834 .L466: 6835 .align 2 6836 .L465: 6837 0114 00000000 .word SPI_DMAAbortOnError 6838 .cfi_endproc 6839 .LFE148: 6841 .section .text.SPI_DMAAbortOnError,"ax",%progbits 6842 .align 1 6843 .syntax unified 6844 .thumb 6845 .thumb_func 6847 SPI_DMAAbortOnError: 6848 .LVL434: 6849 .LFB166: 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6850 .loc 1 3385 1 view -0 6851 .cfi_startproc 6852 @ args = 0, pretend = 0, frame = 0 6853 @ frame_needed = 0, uses_anonymous_args = 0 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6854 .loc 1 3385 1 is_stmt 0 view .LVU2279 6855 0000 08B5 push {r3, lr} 6856 .cfi_def_cfa_offset 8 6857 .cfi_offset 3, -8 6858 .cfi_offset 14, -4 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6859 .loc 1 3386 3 is_stmt 1 view .LVU2280 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6860 .loc 1 3386 22 is_stmt 0 view .LVU2281 6861 0002 406A ldr r0, [r0, #36] 6862 .LVL435: 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6863 .loc 1 3387 3 is_stmt 1 view .LVU2282 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6864 .loc 1 3387 21 is_stmt 0 view .LVU2283 6865 0004 0023 movs r3, #0 6866 0006 A0F84630 strh r3, [r0, #70] @ movhi 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6867 .loc 1 3388 3 is_stmt 1 view .LVU2284 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6868 .loc 1 3388 21 is_stmt 0 view .LVU2285 6869 000a C387 strh r3, [r0, #62] @ movhi 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6870 .loc 1 3394 3 is_stmt 1 view .LVU2286 6871 000c FFF7FEFF bl HAL_SPI_ErrorCallback 6872 .LVL436: 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6873 .loc 1 3396 1 is_stmt 0 view .LVU2287 6874 0010 08BD pop {r3, pc} 6875 .cfi_endproc 6876 .LFE166: 6878 .section .text.HAL_SPI_AbortCpltCallback,"ax",%progbits 6879 .align 1 6880 .weak HAL_SPI_AbortCpltCallback 6881 .syntax unified ARM GAS /tmp/ccywxtmH.s page 235 6882 .thumb 6883 .thumb_func 6885 HAL_SPI_AbortCpltCallback: 6886 .LVL437: 6887 .LFB156: 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 6888 .loc 1 2962 1 is_stmt 1 view -0 6889 .cfi_startproc 6890 @ args = 0, pretend = 0, frame = 0 6891 @ frame_needed = 0, uses_anonymous_args = 0 6892 @ link register save eliminated. 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6893 .loc 1 2964 3 view .LVU2289 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6894 .loc 1 2969 1 is_stmt 0 view .LVU2290 6895 0000 7047 bx lr 6896 .cfi_endproc 6897 .LFE156: 6899 .section .text.HAL_SPI_Abort_IT,"ax",%progbits 6900 .align 1 6901 .global HAL_SPI_Abort_IT 6902 .syntax unified 6903 .thumb 6904 .thumb_func 6906 HAL_SPI_Abort_IT: 6907 .LVL438: 6908 .LFB144: 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6909 .loc 1 2500 1 is_stmt 1 view -0 6910 .cfi_startproc 6911 @ args = 0, pretend = 0, frame = 16 6912 @ frame_needed = 0, uses_anonymous_args = 0 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6913 .loc 1 2500 1 is_stmt 0 view .LVU2292 6914 0000 70B5 push {r4, r5, r6, lr} 6915 .cfi_def_cfa_offset 16 6916 .cfi_offset 4, -16 6917 .cfi_offset 5, -12 6918 .cfi_offset 6, -8 6919 .cfi_offset 14, -4 6920 0002 84B0 sub sp, sp, #16 6921 .cfi_def_cfa_offset 32 6922 0004 0446 mov r4, r0 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 6923 .loc 1 2501 3 is_stmt 1 view .LVU2293 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 6924 .loc 1 2502 3 view .LVU2294 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 6925 .loc 1 2503 3 view .LVU2295 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6926 .loc 1 2504 3 view .LVU2296 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 6927 .loc 1 2507 3 view .LVU2297 6928 .LVL439: 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 6929 .loc 1 2508 3 view .LVU2298 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; ARM GAS /tmp/ccywxtmH.s page 236 6930 .loc 1 2509 3 view .LVU2299 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6931 .loc 1 2509 61 is_stmt 0 view .LVU2300 6932 0006 504B ldr r3, .L496 6933 0008 1B68 ldr r3, [r3] 6934 000a 504A ldr r2, .L496+4 6935 000c A2FB0323 umull r2, r3, r2, r3 6936 0010 5B0A lsrs r3, r3, #9 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6937 .loc 1 2509 36 view .LVU2301 6938 0012 6422 movs r2, #100 6939 0014 02FB03F3 mul r3, r2, r3 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6940 .loc 1 2509 14 view .LVU2302 6941 0018 0293 str r3, [sp, #8] 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6942 .loc 1 2510 3 is_stmt 1 view .LVU2303 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6943 .loc 1 2510 9 is_stmt 0 view .LVU2304 6944 001a 029B ldr r3, [sp, #8] 6945 001c 0393 str r3, [sp, #12] 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6946 .loc 1 2513 3 is_stmt 1 view .LVU2305 6947 001e 0268 ldr r2, [r0] 6948 0020 5368 ldr r3, [r2, #4] 6949 0022 23F02003 bic r3, r3, #32 6950 0026 5360 str r3, [r2, #4] 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6951 .loc 1 2516 3 view .LVU2306 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6952 .loc 1 2516 7 is_stmt 0 view .LVU2307 6953 0028 0268 ldr r2, [r0] 6954 002a 5368 ldr r3, [r2, #4] 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6955 .loc 1 2516 6 view .LVU2308 6956 002c 13F0800F tst r3, #128 6957 0030 12D0 beq .L471 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 6958 .loc 1 2518 5 is_stmt 1 view .LVU2309 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 6959 .loc 1 2518 17 is_stmt 0 view .LVU2310 6960 0032 474B ldr r3, .L496+8 6961 0034 0365 str r3, [r0, #80] 6962 .L474: 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6963 .loc 1 2520 5 is_stmt 1 view .LVU2311 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6964 .loc 1 2522 7 view .LVU2312 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6965 .loc 1 2522 17 is_stmt 0 view .LVU2313 6966 0036 039B ldr r3, [sp, #12] 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6967 .loc 1 2522 10 view .LVU2314 6968 0038 43B1 cbz r3, .L493 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 6969 .loc 1 2527 7 is_stmt 1 view .LVU2315 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); ARM GAS /tmp/ccywxtmH.s page 237 6970 .loc 1 2527 12 is_stmt 0 view .LVU2316 6971 003a 039B ldr r3, [sp, #12] 6972 003c 013B subs r3, r3, #1 6973 003e 0393 str r3, [sp, #12] 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6974 .loc 1 2528 26 is_stmt 1 view .LVU2317 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6975 .loc 1 2528 18 is_stmt 0 view .LVU2318 6976 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 6977 0044 DBB2 uxtb r3, r3 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6978 .loc 1 2528 26 view .LVU2319 6979 0046 072B cmp r3, #7 6980 0048 F5D1 bne .L474 6981 004a 03E0 b .L473 6982 .L493: 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 6983 .loc 1 2524 9 is_stmt 1 view .LVU2320 6984 004c 236E ldr r3, [r4, #96] 6985 004e 43F04003 orr r3, r3, #64 6986 0052 2366 str r3, [r4, #96] 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6987 .loc 1 2525 9 view .LVU2321 6988 .L473: 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6989 .loc 1 2530 5 view .LVU2322 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6990 .loc 1 2530 11 is_stmt 0 view .LVU2323 6991 0054 029B ldr r3, [sp, #8] 6992 0056 0393 str r3, [sp, #12] 6993 .L471: 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6994 .loc 1 2533 3 is_stmt 1 view .LVU2324 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6995 .loc 1 2533 7 is_stmt 0 view .LVU2325 6996 0058 5368 ldr r3, [r2, #4] 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6997 .loc 1 2533 6 view .LVU2326 6998 005a 13F0400F tst r3, #64 6999 005e 12D0 beq .L475 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7000 .loc 1 2535 5 is_stmt 1 view .LVU2327 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7001 .loc 1 2535 17 is_stmt 0 view .LVU2328 7002 0060 3C4B ldr r3, .L496+12 7003 0062 E364 str r3, [r4, #76] 7004 .L478: 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7005 .loc 1 2537 5 is_stmt 1 view .LVU2329 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7006 .loc 1 2539 7 view .LVU2330 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7007 .loc 1 2539 17 is_stmt 0 view .LVU2331 7008 0064 039B ldr r3, [sp, #12] 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7009 .loc 1 2539 10 view .LVU2332 7010 0066 43B1 cbz r3, .L494 ARM GAS /tmp/ccywxtmH.s page 238 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7011 .loc 1 2544 7 is_stmt 1 view .LVU2333 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7012 .loc 1 2544 12 is_stmt 0 view .LVU2334 7013 0068 039B ldr r3, [sp, #12] 7014 006a 013B subs r3, r3, #1 7015 006c 0393 str r3, [sp, #12] 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7016 .loc 1 2545 26 is_stmt 1 view .LVU2335 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7017 .loc 1 2545 18 is_stmt 0 view .LVU2336 7018 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 7019 0072 DBB2 uxtb r3, r3 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7020 .loc 1 2545 26 view .LVU2337 7021 0074 072B cmp r3, #7 7022 0076 F5D1 bne .L478 7023 0078 03E0 b .L477 7024 .L494: 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 7025 .loc 1 2541 9 is_stmt 1 view .LVU2338 7026 007a 236E ldr r3, [r4, #96] 7027 007c 43F04003 orr r3, r3, #64 7028 0080 2366 str r3, [r4, #96] 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7029 .loc 1 2542 9 view .LVU2339 7030 .L477: 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7031 .loc 1 2547 5 view .LVU2340 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7032 .loc 1 2547 11 is_stmt 0 view .LVU2341 7033 0082 029B ldr r3, [sp, #8] 7034 0084 0393 str r3, [sp, #12] 7035 .L475: 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7036 .loc 1 2553 3 is_stmt 1 view .LVU2342 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7037 .loc 1 2553 11 is_stmt 0 view .LVU2343 7038 0086 636D ldr r3, [r4, #84] 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7039 .loc 1 2553 6 view .LVU2344 7040 0088 2BB1 cbz r3, .L479 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7041 .loc 1 2557 5 is_stmt 1 view .LVU2345 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7042 .loc 1 2557 9 is_stmt 0 view .LVU2346 7043 008a 5268 ldr r2, [r2, #4] 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7044 .loc 1 2557 8 view .LVU2347 7045 008c 12F0020F tst r2, #2 7046 0090 1BD0 beq .L480 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7047 .loc 1 2559 7 is_stmt 1 view .LVU2348 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7048 .loc 1 2559 39 is_stmt 0 view .LVU2349 7049 0092 314A ldr r2, .L496+16 7050 0094 5A63 str r2, [r3, #52] ARM GAS /tmp/ccywxtmH.s page 239 7051 .L479: 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7052 .loc 1 2567 3 is_stmt 1 view .LVU2350 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7053 .loc 1 2567 11 is_stmt 0 view .LVU2351 7054 0096 A36D ldr r3, [r4, #88] 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7055 .loc 1 2567 6 view .LVU2352 7056 0098 33B1 cbz r3, .L481 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7057 .loc 1 2571 5 is_stmt 1 view .LVU2353 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7058 .loc 1 2571 9 is_stmt 0 view .LVU2354 7059 009a 2268 ldr r2, [r4] 7060 009c 5268 ldr r2, [r2, #4] 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7061 .loc 1 2571 8 view .LVU2355 7062 009e 12F0010F tst r2, #1 7063 00a2 15D0 beq .L482 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7064 .loc 1 2573 7 is_stmt 1 view .LVU2356 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7065 .loc 1 2573 39 is_stmt 0 view .LVU2357 7066 00a4 2D4A ldr r2, .L496+20 7067 00a6 5A63 str r2, [r3, #52] 7068 .L481: 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7069 .loc 1 2582 3 is_stmt 1 view .LVU2358 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7070 .loc 1 2582 7 is_stmt 0 view .LVU2359 7071 00a8 2368 ldr r3, [r4] 7072 00aa 5B68 ldr r3, [r3, #4] 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7073 .loc 1 2582 6 view .LVU2360 7074 00ac 13F0020F tst r3, #2 7075 00b0 11D0 beq .L487 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7076 .loc 1 2585 5 is_stmt 1 view .LVU2361 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7077 .loc 1 2585 13 is_stmt 0 view .LVU2362 7078 00b2 606D ldr r0, [r4, #84] 7079 .LVL440: 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7080 .loc 1 2585 8 view .LVU2363 7081 00b4 28B3 cbz r0, .L488 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7082 .loc 1 2588 7 is_stmt 1 view .LVU2364 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7083 .loc 1 2588 11 is_stmt 0 view .LVU2365 7084 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 7085 .LVL441: 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7086 .loc 1 2588 10 view .LVU2366 7087 00ba 20B3 cbz r0, .L489 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7088 .loc 1 2590 9 is_stmt 1 view .LVU2367 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; ARM GAS /tmp/ccywxtmH.s page 240 7089 .loc 1 2590 13 is_stmt 0 view .LVU2368 7090 00bc 636D ldr r3, [r4, #84] 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7091 .loc 1 2590 41 view .LVU2369 7092 00be 0022 movs r2, #0 7093 00c0 5A63 str r2, [r3, #52] 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7094 .loc 1 2591 9 is_stmt 1 view .LVU2370 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7095 .loc 1 2591 25 is_stmt 0 view .LVU2371 7096 00c2 4023 movs r3, #64 7097 00c4 2366 str r3, [r4, #96] 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7098 .loc 1 2508 13 view .LVU2372 7099 00c6 0126 movs r6, #1 7100 00c8 06E0 b .L483 7101 .LVL442: 7102 .L480: 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7103 .loc 1 2563 7 is_stmt 1 view .LVU2373 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7104 .loc 1 2563 39 is_stmt 0 view .LVU2374 7105 00ca 0022 movs r2, #0 7106 00cc 5A63 str r2, [r3, #52] 7107 00ce E2E7 b .L479 7108 .L482: 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7109 .loc 1 2577 7 is_stmt 1 view .LVU2375 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7110 .loc 1 2577 39 is_stmt 0 view .LVU2376 7111 00d0 0022 movs r2, #0 7112 00d2 5A63 str r2, [r3, #52] 7113 00d4 E8E7 b .L481 7114 .L487: 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7115 .loc 1 2508 13 view .LVU2377 7116 00d6 0126 movs r6, #1 7117 .LVL443: 7118 .L483: 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7119 .loc 1 2600 3 is_stmt 1 view .LVU2378 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7120 .loc 1 2600 7 is_stmt 0 view .LVU2379 7121 00d8 2368 ldr r3, [r4] 7122 00da 5B68 ldr r3, [r3, #4] 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7123 .loc 1 2600 6 view .LVU2380 7124 00dc 13F0010F tst r3, #1 7125 00e0 0AD0 beq .L484 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7126 .loc 1 2603 5 is_stmt 1 view .LVU2381 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7127 .loc 1 2603 13 is_stmt 0 view .LVU2382 7128 00e2 A06D ldr r0, [r4, #88] 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7129 .loc 1 2603 8 view .LVU2383 7130 00e4 40B1 cbz r0, .L484 ARM GAS /tmp/ccywxtmH.s page 241 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7131 .loc 1 2606 7 is_stmt 1 view .LVU2384 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7132 .loc 1 2606 11 is_stmt 0 view .LVU2385 7133 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 7134 .LVL444: 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7135 .loc 1 2606 10 view .LVU2386 7136 00ea 0546 mov r5, r0 7137 00ec 30B1 cbz r0, .L485 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7138 .loc 1 2608 9 is_stmt 1 view .LVU2387 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7139 .loc 1 2608 13 is_stmt 0 view .LVU2388 7140 00ee A36D ldr r3, [r4, #88] 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7141 .loc 1 2608 41 view .LVU2389 7142 00f0 0022 movs r2, #0 7143 00f2 5A63 str r2, [r3, #52] 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7144 .loc 1 2609 9 is_stmt 1 view .LVU2390 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7145 .loc 1 2609 25 is_stmt 0 view .LVU2391 7146 00f4 4023 movs r3, #64 7147 00f6 2366 str r3, [r4, #96] 7148 .L484: 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7149 .loc 1 2618 3 is_stmt 1 view .LVU2392 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7150 .loc 1 2618 6 is_stmt 0 view .LVU2393 7151 00f8 3EB9 cbnz r6, .L495 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 7152 .loc 1 2507 13 view .LVU2394 7153 00fa 0025 movs r5, #0 7154 .LVL445: 7155 .L485: 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7156 .loc 1 2651 3 is_stmt 1 view .LVU2395 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7157 .loc 1 2652 1 is_stmt 0 view .LVU2396 7158 00fc 2846 mov r0, r5 7159 00fe 04B0 add sp, sp, #16 7160 .cfi_remember_state 7161 .cfi_def_cfa_offset 16 7162 @ sp needed 7163 0100 70BD pop {r4, r5, r6, pc} 7164 .LVL446: 7165 .L488: 7166 .cfi_restore_state 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7167 .loc 1 2508 13 view .LVU2397 7168 0102 0126 movs r6, #1 7169 0104 E8E7 b .L483 7170 .L489: 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7171 .loc 1 2595 19 view .LVU2398 7172 0106 0026 movs r6, #0 ARM GAS /tmp/ccywxtmH.s page 242 7173 0108 E6E7 b .L483 7174 .LVL447: 7175 .L495: 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7176 .loc 1 2621 5 is_stmt 1 view .LVU2399 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7177 .loc 1 2621 23 is_stmt 0 view .LVU2400 7178 010a 0023 movs r3, #0 7179 010c A4F84630 strh r3, [r4, #70] @ movhi 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7180 .loc 1 2622 5 is_stmt 1 view .LVU2401 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7181 .loc 1 2622 23 is_stmt 0 view .LVU2402 7182 0110 E387 strh r3, [r4, #62] @ movhi 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7183 .loc 1 2625 5 is_stmt 1 view .LVU2403 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7184 .loc 1 2625 13 is_stmt 0 view .LVU2404 7185 0112 236E ldr r3, [r4, #96] 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7186 .loc 1 2625 8 view .LVU2405 7187 0114 402B cmp r3, #64 7188 0116 14D0 beq .L491 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7189 .loc 1 2633 7 is_stmt 1 view .LVU2406 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7190 .loc 1 2633 23 is_stmt 0 view .LVU2407 7191 0118 0025 movs r5, #0 7192 011a 2566 str r5, [r4, #96] 7193 .L486: 7194 .LVL448: 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7195 .loc 1 2637 5 is_stmt 1 view .LVU2408 7196 .LBB11: 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7197 .loc 1 2637 5 view .LVU2409 7198 011c 0022 movs r2, #0 7199 011e 0092 str r2, [sp] 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7200 .loc 1 2637 5 view .LVU2410 7201 0120 2368 ldr r3, [r4] 7202 0122 D968 ldr r1, [r3, #12] 7203 0124 0091 str r1, [sp] 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7204 .loc 1 2637 5 view .LVU2411 7205 0126 9968 ldr r1, [r3, #8] 7206 0128 0091 str r1, [sp] 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7207 .loc 1 2637 5 view .LVU2412 7208 012a 0099 ldr r1, [sp] 7209 .LBE11: 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7210 .loc 1 2637 5 view .LVU2413 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7211 .loc 1 2638 5 view .LVU2414 7212 .LBB12: 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccywxtmH.s page 243 7213 .loc 1 2638 5 view .LVU2415 7214 012c 0192 str r2, [sp, #4] 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7215 .loc 1 2638 5 view .LVU2416 7216 012e 9B68 ldr r3, [r3, #8] 7217 0130 0193 str r3, [sp, #4] 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7218 .loc 1 2638 5 view .LVU2417 7219 0132 019B ldr r3, [sp, #4] 7220 .LBE12: 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7221 .loc 1 2638 5 view .LVU2418 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7222 .loc 1 2641 5 view .LVU2419 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7223 .loc 1 2641 17 is_stmt 0 view .LVU2420 7224 0134 0123 movs r3, #1 7225 0136 84F85D30 strb r3, [r4, #93] 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7226 .loc 1 2647 5 is_stmt 1 view .LVU2421 7227 013a 2046 mov r0, r4 7228 013c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7229 .LVL449: 7230 0140 DCE7 b .L485 7231 .LVL450: 7232 .L491: 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7233 .loc 1 2628 17 is_stmt 0 view .LVU2422 7234 0142 0125 movs r5, #1 7235 0144 EAE7 b .L486 7236 .L497: 7237 0146 00BF .align 2 7238 .L496: 7239 0148 00000000 .word SystemCoreClock 7240 014c F1197605 .word 91625969 7241 0150 00000000 .word SPI_AbortTx_ISR 7242 0154 00000000 .word SPI_AbortRx_ISR 7243 0158 00000000 .word SPI_DMATxAbortCallback 7244 015c 00000000 .word SPI_DMARxAbortCallback 7245 .cfi_endproc 7246 .LFE144: 7248 .section .text.SPI_DMARxAbortCallback,"ax",%progbits 7249 .align 1 7250 .syntax unified 7251 .thumb 7252 .thumb_func 7254 SPI_DMARxAbortCallback: 7255 .LVL451: 7256 .LFB168: 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7257 .loc 1 3473 1 is_stmt 1 view -0 7258 .cfi_startproc 7259 @ args = 0, pretend = 0, frame = 8 7260 @ frame_needed = 0, uses_anonymous_args = 0 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7261 .loc 1 3473 1 is_stmt 0 view .LVU2424 7262 0000 30B5 push {r4, r5, lr} ARM GAS /tmp/ccywxtmH.s page 244 7263 .cfi_def_cfa_offset 12 7264 .cfi_offset 4, -12 7265 .cfi_offset 5, -8 7266 .cfi_offset 14, -4 7267 0002 85B0 sub sp, sp, #20 7268 .cfi_def_cfa_offset 32 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7269 .loc 1 3474 3 is_stmt 1 view .LVU2425 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7270 .loc 1 3474 22 is_stmt 0 view .LVU2426 7271 0004 446A ldr r4, [r0, #36] 7272 .LVL452: 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7273 .loc 1 3477 3 is_stmt 1 view .LVU2427 7274 0006 2268 ldr r2, [r4] 7275 0008 1368 ldr r3, [r2] 7276 000a 23F04003 bic r3, r3, #64 7277 000e 1360 str r3, [r2] 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7278 .loc 1 3479 3 view .LVU2428 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7279 .loc 1 3479 7 is_stmt 0 view .LVU2429 7280 0010 A36D ldr r3, [r4, #88] 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7281 .loc 1 3479 35 view .LVU2430 7282 0012 0025 movs r5, #0 7283 0014 5D63 str r5, [r3, #52] 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7284 .loc 1 3482 3 is_stmt 1 view .LVU2431 7285 0016 2268 ldr r2, [r4] 7286 0018 5368 ldr r3, [r2, #4] 7287 001a 23F00103 bic r3, r3, #1 7288 001e 5360 str r3, [r2, #4] 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7289 .loc 1 3485 3 view .LVU2432 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7290 .loc 1 3485 7 is_stmt 0 view .LVU2433 7291 0020 FFF7FEFF bl HAL_GetTick 7292 .LVL453: 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7293 .loc 1 3485 7 view .LVU2434 7294 0024 0090 str r0, [sp] 7295 0026 6423 movs r3, #100 7296 0028 2A46 mov r2, r5 7297 002a 8021 movs r1, #128 7298 002c 2046 mov r0, r4 7299 002e FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 7300 .LVL454: 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7301 .loc 1 3485 6 view .LVU2435 7302 0032 08B1 cbz r0, .L499 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7303 .loc 1 3487 5 is_stmt 1 view .LVU2436 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7304 .loc 1 3487 21 is_stmt 0 view .LVU2437 7305 0034 4023 movs r3, #64 7306 0036 2366 str r3, [r4, #96] ARM GAS /tmp/ccywxtmH.s page 245 7307 .L499: 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7308 .loc 1 3491 3 is_stmt 1 view .LVU2438 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7309 .loc 1 3491 7 is_stmt 0 view .LVU2439 7310 0038 FFF7FEFF bl HAL_GetTick 7311 .LVL455: 7312 003c 0090 str r0, [sp] 7313 003e 6423 movs r3, #100 7314 0040 0022 movs r2, #0 7315 0042 4FF4C061 mov r1, #1536 7316 0046 2046 mov r0, r4 7317 0048 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7318 .LVL456: 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7319 .loc 1 3491 6 view .LVU2440 7320 004c 08B1 cbz r0, .L500 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7321 .loc 1 3493 5 is_stmt 1 view .LVU2441 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7322 .loc 1 3493 21 is_stmt 0 view .LVU2442 7323 004e 4023 movs r3, #64 7324 0050 2366 str r3, [r4, #96] 7325 .L500: 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7326 .loc 1 3497 3 is_stmt 1 view .LVU2443 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7327 .loc 1 3497 11 is_stmt 0 view .LVU2444 7328 0052 636D ldr r3, [r4, #84] 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7329 .loc 1 3497 6 view .LVU2445 7330 0054 0BB1 cbz r3, .L501 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7331 .loc 1 3499 5 is_stmt 1 view .LVU2446 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7332 .loc 1 3499 21 is_stmt 0 view .LVU2447 7333 0056 5B6B ldr r3, [r3, #52] 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7334 .loc 1 3499 8 view .LVU2448 7335 0058 D3B9 cbnz r3, .L498 7336 .L501: 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7337 .loc 1 3506 3 is_stmt 1 view .LVU2449 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7338 .loc 1 3506 21 is_stmt 0 view .LVU2450 7339 005a 0023 movs r3, #0 7340 005c A4F84630 strh r3, [r4, #70] @ movhi 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7341 .loc 1 3507 3 is_stmt 1 view .LVU2451 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7342 .loc 1 3507 21 is_stmt 0 view .LVU2452 7343 0060 E387 strh r3, [r4, #62] @ movhi 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7344 .loc 1 3510 3 is_stmt 1 view .LVU2453 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7345 .loc 1 3510 11 is_stmt 0 view .LVU2454 7346 0062 236E ldr r3, [r4, #96] ARM GAS /tmp/ccywxtmH.s page 246 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7347 .loc 1 3510 6 view .LVU2455 7348 0064 402B cmp r3, #64 7349 0066 01D0 beq .L503 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7350 .loc 1 3513 5 is_stmt 1 view .LVU2456 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7351 .loc 1 3513 21 is_stmt 0 view .LVU2457 7352 0068 0023 movs r3, #0 7353 006a 2366 str r3, [r4, #96] 7354 .L503: 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7355 .loc 1 3517 3 is_stmt 1 view .LVU2458 7356 .LBB13: 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7357 .loc 1 3517 3 view .LVU2459 7358 006c 0022 movs r2, #0 7359 006e 0292 str r2, [sp, #8] 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7360 .loc 1 3517 3 view .LVU2460 7361 0070 2368 ldr r3, [r4] 7362 0072 D968 ldr r1, [r3, #12] 7363 0074 0291 str r1, [sp, #8] 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7364 .loc 1 3517 3 view .LVU2461 7365 0076 9968 ldr r1, [r3, #8] 7366 0078 0291 str r1, [sp, #8] 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7367 .loc 1 3517 3 view .LVU2462 7368 007a 0299 ldr r1, [sp, #8] 7369 .LBE13: 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7370 .loc 1 3517 3 view .LVU2463 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7371 .loc 1 3518 3 view .LVU2464 7372 .LBB14: 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7373 .loc 1 3518 3 view .LVU2465 7374 007c 0392 str r2, [sp, #12] 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7375 .loc 1 3518 3 view .LVU2466 7376 007e 9B68 ldr r3, [r3, #8] 7377 0080 0393 str r3, [sp, #12] 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7378 .loc 1 3518 3 view .LVU2467 7379 0082 039B ldr r3, [sp, #12] 7380 .LBE14: 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7381 .loc 1 3518 3 view .LVU2468 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7382 .loc 1 3521 3 view .LVU2469 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7383 .loc 1 3521 16 is_stmt 0 view .LVU2470 7384 0084 0123 movs r3, #1 7385 0086 84F85D30 strb r3, [r4, #93] 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7386 .loc 1 3527 3 is_stmt 1 view .LVU2471 ARM GAS /tmp/ccywxtmH.s page 247 7387 008a 2046 mov r0, r4 7388 008c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7389 .LVL457: 7390 .L498: 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7391 .loc 1 3529 1 is_stmt 0 view .LVU2472 7392 0090 05B0 add sp, sp, #20 7393 .cfi_def_cfa_offset 12 7394 @ sp needed 7395 0092 30BD pop {r4, r5, pc} 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7396 .loc 1 3529 1 view .LVU2473 7397 .cfi_endproc 7398 .LFE168: 7400 .section .text.SPI_DMATxAbortCallback,"ax",%progbits 7401 .align 1 7402 .syntax unified 7403 .thumb 7404 .thumb_func 7406 SPI_DMATxAbortCallback: 7407 .LVL458: 7408 .LFB167: 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7409 .loc 1 3407 1 is_stmt 1 view -0 7410 .cfi_startproc 7411 @ args = 0, pretend = 0, frame = 8 7412 @ frame_needed = 0, uses_anonymous_args = 0 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7413 .loc 1 3407 1 is_stmt 0 view .LVU2475 7414 0000 10B5 push {r4, lr} 7415 .cfi_def_cfa_offset 8 7416 .cfi_offset 4, -8 7417 .cfi_offset 14, -4 7418 0002 84B0 sub sp, sp, #16 7419 .cfi_def_cfa_offset 24 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7420 .loc 1 3408 3 is_stmt 1 view .LVU2476 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7421 .loc 1 3408 22 is_stmt 0 view .LVU2477 7422 0004 446A ldr r4, [r0, #36] 7423 .LVL459: 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7424 .loc 1 3410 3 is_stmt 1 view .LVU2478 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7425 .loc 1 3410 7 is_stmt 0 view .LVU2479 7426 0006 636D ldr r3, [r4, #84] 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7427 .loc 1 3410 35 view .LVU2480 7428 0008 0022 movs r2, #0 7429 000a 5A63 str r2, [r3, #52] 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7430 .loc 1 3413 3 is_stmt 1 view .LVU2481 7431 000c 2268 ldr r2, [r4] 7432 000e 5368 ldr r3, [r2, #4] 7433 0010 23F00203 bic r3, r3, #2 7434 0014 5360 str r3, [r2, #4] 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 248 7435 .loc 1 3415 3 view .LVU2482 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7436 .loc 1 3415 7 is_stmt 0 view .LVU2483 7437 0016 FFF7FEFF bl HAL_GetTick 7438 .LVL460: 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7439 .loc 1 3415 7 view .LVU2484 7440 001a 0246 mov r2, r0 7441 001c 6421 movs r1, #100 7442 001e 2046 mov r0, r4 7443 0020 FFF7FEFF bl SPI_EndRxTxTransaction 7444 .LVL461: 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7445 .loc 1 3415 6 view .LVU2485 7446 0024 08B1 cbz r0, .L506 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7447 .loc 1 3417 5 is_stmt 1 view .LVU2486 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7448 .loc 1 3417 21 is_stmt 0 view .LVU2487 7449 0026 4023 movs r3, #64 7450 0028 2366 str r3, [r4, #96] 7451 .L506: 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7452 .loc 1 3421 3 is_stmt 1 view .LVU2488 7453 002a 2268 ldr r2, [r4] 7454 002c 1368 ldr r3, [r2] 7455 002e 23F04003 bic r3, r3, #64 7456 0032 1360 str r3, [r2] 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7457 .loc 1 3424 3 view .LVU2489 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7458 .loc 1 3424 7 is_stmt 0 view .LVU2490 7459 0034 FFF7FEFF bl HAL_GetTick 7460 .LVL462: 7461 0038 0090 str r0, [sp] 7462 003a 6423 movs r3, #100 7463 003c 0022 movs r2, #0 7464 003e 4FF4C061 mov r1, #1536 7465 0042 2046 mov r0, r4 7466 0044 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7467 .LVL463: 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7468 .loc 1 3424 6 view .LVU2491 7469 0048 08B1 cbz r0, .L507 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7470 .loc 1 3426 5 is_stmt 1 view .LVU2492 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7471 .loc 1 3426 21 is_stmt 0 view .LVU2493 7472 004a 4023 movs r3, #64 7473 004c 2366 str r3, [r4, #96] 7474 .L507: 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7475 .loc 1 3430 3 is_stmt 1 view .LVU2494 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7476 .loc 1 3430 11 is_stmt 0 view .LVU2495 7477 004e A36D ldr r3, [r4, #88] 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccywxtmH.s page 249 7478 .loc 1 3430 6 view .LVU2496 7479 0050 0BB1 cbz r3, .L508 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7480 .loc 1 3432 5 is_stmt 1 view .LVU2497 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7481 .loc 1 3432 21 is_stmt 0 view .LVU2498 7482 0052 5B6B ldr r3, [r3, #52] 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7483 .loc 1 3432 8 view .LVU2499 7484 0054 D3B9 cbnz r3, .L505 7485 .L508: 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7486 .loc 1 3439 3 is_stmt 1 view .LVU2500 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7487 .loc 1 3439 21 is_stmt 0 view .LVU2501 7488 0056 0023 movs r3, #0 7489 0058 A4F84630 strh r3, [r4, #70] @ movhi 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7490 .loc 1 3440 3 is_stmt 1 view .LVU2502 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7491 .loc 1 3440 21 is_stmt 0 view .LVU2503 7492 005c E387 strh r3, [r4, #62] @ movhi 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7493 .loc 1 3443 3 is_stmt 1 view .LVU2504 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7494 .loc 1 3443 11 is_stmt 0 view .LVU2505 7495 005e 236E ldr r3, [r4, #96] 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7496 .loc 1 3443 6 view .LVU2506 7497 0060 402B cmp r3, #64 7498 0062 01D0 beq .L510 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7499 .loc 1 3446 5 is_stmt 1 view .LVU2507 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7500 .loc 1 3446 21 is_stmt 0 view .LVU2508 7501 0064 0023 movs r3, #0 7502 0066 2366 str r3, [r4, #96] 7503 .L510: 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7504 .loc 1 3450 3 is_stmt 1 view .LVU2509 7505 .LBB15: 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7506 .loc 1 3450 3 view .LVU2510 7507 0068 0022 movs r2, #0 7508 006a 0292 str r2, [sp, #8] 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7509 .loc 1 3450 3 view .LVU2511 7510 006c 2368 ldr r3, [r4] 7511 006e D968 ldr r1, [r3, #12] 7512 0070 0291 str r1, [sp, #8] 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7513 .loc 1 3450 3 view .LVU2512 7514 0072 9968 ldr r1, [r3, #8] 7515 0074 0291 str r1, [sp, #8] 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7516 .loc 1 3450 3 view .LVU2513 7517 0076 0299 ldr r1, [sp, #8] ARM GAS /tmp/ccywxtmH.s page 250 7518 .LBE15: 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7519 .loc 1 3450 3 view .LVU2514 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7520 .loc 1 3451 3 view .LVU2515 7521 .LBB16: 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7522 .loc 1 3451 3 view .LVU2516 7523 0078 0392 str r2, [sp, #12] 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7524 .loc 1 3451 3 view .LVU2517 7525 007a 9B68 ldr r3, [r3, #8] 7526 007c 0393 str r3, [sp, #12] 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7527 .loc 1 3451 3 view .LVU2518 7528 007e 039B ldr r3, [sp, #12] 7529 .LBE16: 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7530 .loc 1 3451 3 view .LVU2519 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7531 .loc 1 3454 3 view .LVU2520 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7532 .loc 1 3454 16 is_stmt 0 view .LVU2521 7533 0080 0123 movs r3, #1 7534 0082 84F85D30 strb r3, [r4, #93] 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7535 .loc 1 3460 3 is_stmt 1 view .LVU2522 7536 0086 2046 mov r0, r4 7537 0088 FFF7FEFF bl HAL_SPI_AbortCpltCallback 7538 .LVL464: 7539 .L505: 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7540 .loc 1 3462 1 is_stmt 0 view .LVU2523 7541 008c 04B0 add sp, sp, #16 7542 .cfi_def_cfa_offset 8 7543 @ sp needed 7544 008e 10BD pop {r4, pc} 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7545 .loc 1 3462 1 view .LVU2524 7546 .cfi_endproc 7547 .LFE167: 7549 .section .text.HAL_SPI_GetState,"ax",%progbits 7550 .align 1 7551 .global HAL_SPI_GetState 7552 .syntax unified 7553 .thumb 7554 .thumb_func 7556 HAL_SPI_GetState: 7557 .LVL465: 7558 .LFB157: 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 7559 .loc 1 2997 1 is_stmt 1 view -0 7560 .cfi_startproc 7561 @ args = 0, pretend = 0, frame = 0 7562 @ frame_needed = 0, uses_anonymous_args = 0 7563 @ link register save eliminated. 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccywxtmH.s page 251 7564 .loc 1 2999 3 view .LVU2526 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7565 .loc 1 2999 14 is_stmt 0 view .LVU2527 7566 0000 90F85D00 ldrb r0, [r0, #93] @ zero_extendqisi2 7567 .LVL466: 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7568 .loc 1 3000 1 view .LVU2528 7569 0004 7047 bx lr 7570 .cfi_endproc 7571 .LFE157: 7573 .section .text.HAL_SPI_GetError,"ax",%progbits 7574 .align 1 7575 .global HAL_SPI_GetError 7576 .syntax unified 7577 .thumb 7578 .thumb_func 7580 HAL_SPI_GetError: 7581 .LVL467: 7582 .LFB158: 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 7583 .loc 1 3009 1 is_stmt 1 view -0 7584 .cfi_startproc 7585 @ args = 0, pretend = 0, frame = 0 7586 @ frame_needed = 0, uses_anonymous_args = 0 7587 @ link register save eliminated. 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7588 .loc 1 3011 3 view .LVU2530 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7589 .loc 1 3011 14 is_stmt 0 view .LVU2531 7590 0000 006E ldr r0, [r0, #96] 7591 .LVL468: 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7592 .loc 1 3012 1 view .LVU2532 7593 0002 7047 bx lr 7594 .cfi_endproc 7595 .LFE158: 7597 .text 7598 .Letext0: 7599 .file 2 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 7600 .file 3 "/home/david/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-non 7601 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 7602 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 7603 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 7604 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 7605 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h" 7606 .file 9 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h" 7607 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccywxtmH.s page 252 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f3xx_hal_spi.c /tmp/ccywxtmH.s:21 .text.SPI_WaitFlagStateUntilTimeout:0000000000000000 $t /tmp/ccywxtmH.s:26 .text.SPI_WaitFlagStateUntilTimeout:0000000000000000 SPI_WaitFlagStateUntilTimeout /tmp/ccywxtmH.s:200 .text.SPI_WaitFlagStateUntilTimeout:00000000000000c4 $d /tmp/ccywxtmH.s:205 .text.SPI_WaitFifoStateUntilTimeout:0000000000000000 $t /tmp/ccywxtmH.s:210 .text.SPI_WaitFifoStateUntilTimeout:0000000000000000 SPI_WaitFifoStateUntilTimeout /tmp/ccywxtmH.s:415 .text.SPI_WaitFifoStateUntilTimeout:00000000000000ec $d /tmp/ccywxtmH.s:420 .text.SPI_EndRxTxTransaction:0000000000000000 $t /tmp/ccywxtmH.s:425 .text.SPI_EndRxTxTransaction:0000000000000000 SPI_EndRxTxTransaction /tmp/ccywxtmH.s:518 .text.SPI_EndRxTransaction:0000000000000000 $t /tmp/ccywxtmH.s:523 .text.SPI_EndRxTransaction:0000000000000000 SPI_EndRxTransaction /tmp/ccywxtmH.s:642 .text.SPI_AbortRx_ISR:0000000000000000 $t /tmp/ccywxtmH.s:647 .text.SPI_AbortRx_ISR:0000000000000000 SPI_AbortRx_ISR /tmp/ccywxtmH.s:761 .text.SPI_AbortRx_ISR:0000000000000088 $d /tmp/ccywxtmH.s:767 .text.SPI_AbortTx_ISR:0000000000000000 $t /tmp/ccywxtmH.s:772 .text.SPI_AbortTx_ISR:0000000000000000 SPI_AbortTx_ISR /tmp/ccywxtmH.s:956 .text.SPI_AbortTx_ISR:00000000000000e8 $d /tmp/ccywxtmH.s:962 .text.HAL_SPI_MspInit:0000000000000000 $t /tmp/ccywxtmH.s:968 .text.HAL_SPI_MspInit:0000000000000000 HAL_SPI_MspInit /tmp/ccywxtmH.s:983 .text.HAL_SPI_Init:0000000000000000 $t /tmp/ccywxtmH.s:989 .text.HAL_SPI_Init:0000000000000000 HAL_SPI_Init /tmp/ccywxtmH.s:1176 .text.HAL_SPI_MspDeInit:0000000000000000 $t /tmp/ccywxtmH.s:1182 .text.HAL_SPI_MspDeInit:0000000000000000 HAL_SPI_MspDeInit /tmp/ccywxtmH.s:1197 .text.HAL_SPI_DeInit:0000000000000000 $t /tmp/ccywxtmH.s:1203 .text.HAL_SPI_DeInit:0000000000000000 HAL_SPI_DeInit /tmp/ccywxtmH.s:1260 .text.HAL_SPI_Transmit:0000000000000000 $t /tmp/ccywxtmH.s:1266 .text.HAL_SPI_Transmit:0000000000000000 HAL_SPI_Transmit /tmp/ccywxtmH.s:1730 .text.HAL_SPI_TransmitReceive:0000000000000000 $t /tmp/ccywxtmH.s:1736 .text.HAL_SPI_TransmitReceive:0000000000000000 HAL_SPI_TransmitReceive /tmp/ccywxtmH.s:2436 .text.HAL_SPI_Receive:0000000000000000 $t /tmp/ccywxtmH.s:2442 .text.HAL_SPI_Receive:0000000000000000 HAL_SPI_Receive /tmp/ccywxtmH.s:2804 .text.HAL_SPI_Transmit_IT:0000000000000000 $t /tmp/ccywxtmH.s:2810 .text.HAL_SPI_Transmit_IT:0000000000000000 HAL_SPI_Transmit_IT /tmp/ccywxtmH.s:2975 .text.HAL_SPI_Transmit_IT:00000000000000a8 $d /tmp/ccywxtmH.s:5482 .text.SPI_TxISR_16BIT:0000000000000000 SPI_TxISR_16BIT /tmp/ccywxtmH.s:5421 .text.SPI_TxISR_8BIT:0000000000000000 SPI_TxISR_8BIT /tmp/ccywxtmH.s:2981 .text.HAL_SPI_TransmitReceive_IT:0000000000000000 $t /tmp/ccywxtmH.s:2987 .text.HAL_SPI_TransmitReceive_IT:0000000000000000 HAL_SPI_TransmitReceive_IT /tmp/ccywxtmH.s:3238 .text.HAL_SPI_TransmitReceive_IT:0000000000000104 $d /tmp/ccywxtmH.s:6122 .text.SPI_2linesRxISR_16BIT:0000000000000000 SPI_2linesRxISR_16BIT /tmp/ccywxtmH.s:6050 .text.SPI_2linesTxISR_16BIT:0000000000000000 SPI_2linesTxISR_16BIT /tmp/ccywxtmH.s:5933 .text.SPI_2linesRxISR_8BIT:0000000000000000 SPI_2linesRxISR_8BIT /tmp/ccywxtmH.s:5828 .text.SPI_2linesTxISR_8BIT:0000000000000000 SPI_2linesTxISR_8BIT /tmp/ccywxtmH.s:3246 .text.HAL_SPI_Receive_IT:0000000000000000 $t /tmp/ccywxtmH.s:3252 .text.HAL_SPI_Receive_IT:0000000000000000 HAL_SPI_Receive_IT /tmp/ccywxtmH.s:3452 .text.HAL_SPI_Receive_IT:00000000000000f4 $d /tmp/ccywxtmH.s:5672 .text.SPI_RxISR_16BIT:0000000000000000 SPI_RxISR_16BIT /tmp/ccywxtmH.s:5611 .text.SPI_RxISR_8BIT:0000000000000000 SPI_RxISR_8BIT /tmp/ccywxtmH.s:3458 .text.HAL_SPI_Transmit_DMA:0000000000000000 $t /tmp/ccywxtmH.s:3464 .text.HAL_SPI_Transmit_DMA:0000000000000000 HAL_SPI_Transmit_DMA /tmp/ccywxtmH.s:3724 .text.HAL_SPI_Transmit_DMA:0000000000000128 $d /tmp/ccywxtmH.s:5163 .text.SPI_DMAHalfTransmitCplt:0000000000000000 SPI_DMAHalfTransmitCplt /tmp/ccywxtmH.s:6237 .text.SPI_DMATransmitCplt:0000000000000000 SPI_DMATransmitCplt /tmp/ccywxtmH.s:6194 .text.SPI_DMAError:0000000000000000 SPI_DMAError /tmp/ccywxtmH.s:3731 .text.HAL_SPI_TransmitReceive_DMA:0000000000000000 $t /tmp/ccywxtmH.s:3737 .text.HAL_SPI_TransmitReceive_DMA:0000000000000000 HAL_SPI_TransmitReceive_DMA ARM GAS /tmp/ccywxtmH.s page 253 /tmp/ccywxtmH.s:4196 .text.HAL_SPI_TransmitReceive_DMA:0000000000000218 $d /tmp/ccywxtmH.s:5267 .text.SPI_DMAHalfTransmitReceiveCplt:0000000000000000 SPI_DMAHalfTransmitReceiveCplt /tmp/ccywxtmH.s:6476 .text.SPI_DMATransmitReceiveCplt:0000000000000000 SPI_DMATransmitReceiveCplt /tmp/ccywxtmH.s:5215 .text.SPI_DMAHalfReceiveCplt:0000000000000000 SPI_DMAHalfReceiveCplt /tmp/ccywxtmH.s:6360 .text.SPI_DMAReceiveCplt:0000000000000000 SPI_DMAReceiveCplt /tmp/ccywxtmH.s:4205 .text.HAL_SPI_Receive_DMA:0000000000000000 $t /tmp/ccywxtmH.s:4211 .text.HAL_SPI_Receive_DMA:0000000000000000 HAL_SPI_Receive_DMA /tmp/ccywxtmH.s:4523 .text.HAL_SPI_Receive_DMA:0000000000000188 $d /tmp/ccywxtmH.s:4530 .text.HAL_SPI_Abort:0000000000000000 $t /tmp/ccywxtmH.s:4536 .text.HAL_SPI_Abort:0000000000000000 HAL_SPI_Abort /tmp/ccywxtmH.s:4876 .text.HAL_SPI_Abort:0000000000000180 $d /tmp/ccywxtmH.s:4884 .text.HAL_SPI_DMAPause:0000000000000000 $t /tmp/ccywxtmH.s:4890 .text.HAL_SPI_DMAPause:0000000000000000 HAL_SPI_DMAPause /tmp/ccywxtmH.s:4934 .text.HAL_SPI_DMAResume:0000000000000000 $t /tmp/ccywxtmH.s:4940 .text.HAL_SPI_DMAResume:0000000000000000 HAL_SPI_DMAResume /tmp/ccywxtmH.s:4984 .text.HAL_SPI_DMAStop:0000000000000000 $t /tmp/ccywxtmH.s:4990 .text.HAL_SPI_DMAStop:0000000000000000 HAL_SPI_DMAStop /tmp/ccywxtmH.s:5074 .text.HAL_SPI_TxCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5080 .text.HAL_SPI_TxCpltCallback:0000000000000000 HAL_SPI_TxCpltCallback /tmp/ccywxtmH.s:5095 .text.HAL_SPI_RxCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5101 .text.HAL_SPI_RxCpltCallback:0000000000000000 HAL_SPI_RxCpltCallback /tmp/ccywxtmH.s:5116 .text.HAL_SPI_TxRxCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5122 .text.HAL_SPI_TxRxCpltCallback:0000000000000000 HAL_SPI_TxRxCpltCallback /tmp/ccywxtmH.s:5137 .text.HAL_SPI_TxHalfCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5143 .text.HAL_SPI_TxHalfCpltCallback:0000000000000000 HAL_SPI_TxHalfCpltCallback /tmp/ccywxtmH.s:5158 .text.SPI_DMAHalfTransmitCplt:0000000000000000 $t /tmp/ccywxtmH.s:5189 .text.HAL_SPI_RxHalfCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5195 .text.HAL_SPI_RxHalfCpltCallback:0000000000000000 HAL_SPI_RxHalfCpltCallback /tmp/ccywxtmH.s:5210 .text.SPI_DMAHalfReceiveCplt:0000000000000000 $t /tmp/ccywxtmH.s:5241 .text.HAL_SPI_TxRxHalfCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:5247 .text.HAL_SPI_TxRxHalfCpltCallback:0000000000000000 HAL_SPI_TxRxHalfCpltCallback /tmp/ccywxtmH.s:5262 .text.SPI_DMAHalfTransmitReceiveCplt:0000000000000000 $t /tmp/ccywxtmH.s:5293 .text.HAL_SPI_ErrorCallback:0000000000000000 $t /tmp/ccywxtmH.s:5299 .text.HAL_SPI_ErrorCallback:0000000000000000 HAL_SPI_ErrorCallback /tmp/ccywxtmH.s:5314 .text.SPI_CloseTx_ISR:0000000000000000 $t /tmp/ccywxtmH.s:5319 .text.SPI_CloseTx_ISR:0000000000000000 SPI_CloseTx_ISR /tmp/ccywxtmH.s:5416 .text.SPI_TxISR_8BIT:0000000000000000 $t /tmp/ccywxtmH.s:5477 .text.SPI_TxISR_16BIT:0000000000000000 $t /tmp/ccywxtmH.s:5538 .text.SPI_CloseRx_ISR:0000000000000000 $t /tmp/ccywxtmH.s:5543 .text.SPI_CloseRx_ISR:0000000000000000 SPI_CloseRx_ISR /tmp/ccywxtmH.s:5606 .text.SPI_RxISR_8BIT:0000000000000000 $t /tmp/ccywxtmH.s:5667 .text.SPI_RxISR_16BIT:0000000000000000 $t /tmp/ccywxtmH.s:5728 .text.SPI_CloseRxTx_ISR:0000000000000000 $t /tmp/ccywxtmH.s:5733 .text.SPI_CloseRxTx_ISR:0000000000000000 SPI_CloseRxTx_ISR /tmp/ccywxtmH.s:5823 .text.SPI_2linesTxISR_8BIT:0000000000000000 $t /tmp/ccywxtmH.s:5928 .text.SPI_2linesRxISR_8BIT:0000000000000000 $t /tmp/ccywxtmH.s:6045 .text.SPI_2linesTxISR_16BIT:0000000000000000 $t /tmp/ccywxtmH.s:6117 .text.SPI_2linesRxISR_16BIT:0000000000000000 $t /tmp/ccywxtmH.s:6189 .text.SPI_DMAError:0000000000000000 $t /tmp/ccywxtmH.s:6232 .text.SPI_DMATransmitCplt:0000000000000000 $t /tmp/ccywxtmH.s:6355 .text.SPI_DMAReceiveCplt:0000000000000000 $t /tmp/ccywxtmH.s:6471 .text.SPI_DMATransmitReceiveCplt:0000000000000000 $t /tmp/ccywxtmH.s:6570 .text.HAL_SPI_IRQHandler:0000000000000000 $t /tmp/ccywxtmH.s:6576 .text.HAL_SPI_IRQHandler:0000000000000000 HAL_SPI_IRQHandler /tmp/ccywxtmH.s:6837 .text.HAL_SPI_IRQHandler:0000000000000114 $d /tmp/ccywxtmH.s:6847 .text.SPI_DMAAbortOnError:0000000000000000 SPI_DMAAbortOnError /tmp/ccywxtmH.s:6842 .text.SPI_DMAAbortOnError:0000000000000000 $t ARM GAS /tmp/ccywxtmH.s page 254 /tmp/ccywxtmH.s:6879 .text.HAL_SPI_AbortCpltCallback:0000000000000000 $t /tmp/ccywxtmH.s:6885 .text.HAL_SPI_AbortCpltCallback:0000000000000000 HAL_SPI_AbortCpltCallback /tmp/ccywxtmH.s:6900 .text.HAL_SPI_Abort_IT:0000000000000000 $t /tmp/ccywxtmH.s:6906 .text.HAL_SPI_Abort_IT:0000000000000000 HAL_SPI_Abort_IT /tmp/ccywxtmH.s:7239 .text.HAL_SPI_Abort_IT:0000000000000148 $d /tmp/ccywxtmH.s:7406 .text.SPI_DMATxAbortCallback:0000000000000000 SPI_DMATxAbortCallback /tmp/ccywxtmH.s:7254 .text.SPI_DMARxAbortCallback:0000000000000000 SPI_DMARxAbortCallback /tmp/ccywxtmH.s:7249 .text.SPI_DMARxAbortCallback:0000000000000000 $t /tmp/ccywxtmH.s:7401 .text.SPI_DMATxAbortCallback:0000000000000000 $t /tmp/ccywxtmH.s:7550 .text.HAL_SPI_GetState:0000000000000000 $t /tmp/ccywxtmH.s:7556 .text.HAL_SPI_GetState:0000000000000000 HAL_SPI_GetState /tmp/ccywxtmH.s:7574 .text.HAL_SPI_GetError:0000000000000000 $t /tmp/ccywxtmH.s:7580 .text.HAL_SPI_GetError:0000000000000000 HAL_SPI_GetError UNDEFINED SYMBOLS HAL_GetTick SystemCoreClock HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_Abort_IT