ARM GAS /tmp/ccZ0BHQJ.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 **** * @attention 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Copyright (c) 2016 STMicroelectronics. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * All rights reserved. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * in the root directory of this software component. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ****************************************************************************** 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### How to use this driver ##### 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The SPI HAL driver can be used as follows: 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Declare a SPI_HandleTypeDef handle structure, for example: ARM GAS /tmp/ccZ0BHQJ.s page 2 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef hspi; 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#)Initialize the SPI low level resources by implementing the HAL_SPI_MspInit() API: 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Enable the SPIx interface clock 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) SPI pins configuration 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the clock for the SPI GPIOs 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure these SPI pins as alternate function push-pull 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the SPIx interrupt priority 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the NVIC SPI IRQ handle 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Declare a DMA_HandleTypeDef handle structure for the transmit or receive Stream 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Enable the DMAx clock 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the DMA handle parameters 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the DMA Tx or Rx Stream/Channel 46: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 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Program the Mode, BidirectionalMode , Data size, Baudrate Prescaler, NSS 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** management, Clock polarity and phase, FirstBit and CRC configuration in the hspi Init str 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Initialize the SPI registers by calling the HAL_SPI_Init() API: 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) This API configures also the low level Hardware GPIO, CLOCK, CORTEX...etc) 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** by calling the customized HAL_SPI_MspInit() API. 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Circular mode restriction: 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The DMA circular mode cannot be used when the SPI is configured in these modes: 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Master 2Lines RxOnly 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) Master 1Line Rx 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The CRC feature is not managed when the DMA circular mode is enabled 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) When the SPI DMA Pause/Stop features are used, we must use the following APIs 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_DMAPause()/ HAL_SPI_DMAStop() only under the SPI callbacks 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Master Receive mode restriction: 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) In Master unidirectional receive-only mode (MSTR =1, BIDIMODE=0, RXONLY=1) or 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** bidirectional receive mode (MSTR=1, BIDIMODE=1, BIDIOE=0), to ensure that the SPI 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** does not initiate a new transfer the following procedure has to be respected: 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) HAL_SPI_DeInit() 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (##) HAL_SPI_Init() 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Callback registration: 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) The compilation flag USE_HAL_SPI_REGISTER_CALLBACKS when set to 1U 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** allows the user to configure dynamically the driver callbacks. 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Use Functions HAL_SPI_RegisterCallback() to register an interrupt callback. 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Function HAL_SPI_RegisterCallback() allows to register following callbacks: 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxCpltCallback : SPI Tx Completed callback 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxCpltCallback : SPI Rx Completed callback 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxCpltCallback : SPI TxRx Completed callback 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxHalfCpltCallback : SPI Tx Half Completed callback 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxHalfCpltCallback : SPI Rx Half Completed callback 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) ErrorCallback : SPI Error callback 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) AbortCpltCallback : SPI Abort callback 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspInitCallback : SPI Msp Init callback 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspDeInitCallback : SPI Msp DeInit callback ARM GAS /tmp/ccZ0BHQJ.s page 3 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and a pointer to the user callback function. 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) Use function HAL_SPI_UnRegisterCallback to reset a callback to the default 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** weak function. 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_UnRegisterCallback takes as parameters the HAL peripheral handle, 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the Callback ID. 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This function allows to reset following callbacks: 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxCpltCallback : SPI Tx Completed callback 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxCpltCallback : SPI Rx Completed callback 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxCpltCallback : SPI TxRx Completed callback 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxHalfCpltCallback : SPI Tx Half Completed callback 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) RxHalfCpltCallback : SPI Rx Half Completed callback 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TxRxHalfCpltCallback : SPI TxRx Half Completed callback 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) ErrorCallback : SPI Error callback 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) AbortCpltCallback : SPI Abort callback 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspInitCallback : SPI Msp Init callback 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) MspDeInitCallback : SPI Msp DeInit callback 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 **** By default, after the HAL_SPI_Init() and when the state is HAL_SPI_STATE_RESET 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** all callbacks are set to the corresponding weak functions: 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** examples HAL_SPI_MasterTxCpltCallback(), HAL_SPI_MasterRxCpltCallback(). 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Exception done for MspInit and MspDeInit functions that are 113: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 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** these callbacks are null (not registered beforehand). 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** If MspInit or MspDeInit are not null, the HAL_SPI_Init()/ HAL_SPI_DeInit() 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Callbacks can be registered/unregistered in HAL_SPI_STATE_READY state only. 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** in HAL_SPI_STATE_READY or HAL_SPI_STATE_RESET state, 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** using HAL_SPI_RegisterCallback() before calling HAL_SPI_DeInit() 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** or HAL_SPI_Init() function. 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** When the compilation define USE_HAL_PPP_REGISTER_CALLBACKS is set to 0 or 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** not defined, the callback registering feature is not available 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and weak (surcharged) callbacks are used. 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 133: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 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the following table resume the max SPI frequency reached with data size 8bits/16bits, 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** according to frequency of the APBx Peripheral Clock (fPCLK) used by the SPI instance. 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Additional table : 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** DataSize = SPI_DATASIZE_8BIT: 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | Process | Transfer mode |---------------------|----------------------|------------------- ARM GAS /tmp/ccZ0BHQJ.s page 4 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | Master | Slave | Master | Slave | Master | Slave 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========================================================================================== 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Polling | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | / | Interrupt | Fpclk/4 | Fpclk/16 | NA | NA | NA | NA 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R |----------------|----------|----------|-----------|----------|-----------|------- 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/4 | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/ 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R | Interrupt | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/8 | Fpclk/ 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/4 | Fpclk/2 | Fpclk/2 | Fpclk/16 | Fpclk/2 | Fpclk/ 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/8 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/16 | Fpclk/ 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** DataSize = SPI_DATASIZE_16BIT: 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | 2Lines Fullduplex | 2Lines RxOnly | 1Line 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | Process | Transfer mode |---------------------|----------------------|------------------- 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | | Master | Slave | Master | Slave | Master | Slave 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========================================================================================== 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Polling | Fpclk/4 | Fpclk/8 | NA | NA | NA | NA 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | / | Interrupt | Fpclk/4 | Fpclk/16 | NA | NA | NA | NA 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R |----------------|----------|----------|-----------|----------|-----------|------- 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X | DMA | Fpclk/2 | Fpclk/2 | NA | NA | NA | NA 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/4 | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/ 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | R | Interrupt | Fpclk/8 | Fpclk/16 | Fpclk/8 | Fpclk/8 | Fpclk/8 | Fpclk/ 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/4 | Fpclk/2 | Fpclk/2 | Fpclk/16 | Fpclk/2 | Fpclk/ 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** |=========|================|==========|==========|===========|==========|===========|======= 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | Polling | Fpclk/8 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | |----------------|----------|----------|-----------|----------|-----------|------- 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | T | Interrupt | Fpclk/2 | Fpclk/4 | NA | NA | Fpclk/16 | Fpclk/ 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | X |----------------|----------|----------|-----------|----------|-----------|------- 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** | | DMA | Fpclk/2 | Fpclk/2 | NA | NA | Fpclk/8 | Fpclk/ 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** +------------------------------------------------------------------------------------------- 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @note The max SPI frequency depend on SPI data size (4bits, 5bits,..., 8bits,...15bits, 16bi 191: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, 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @note 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) TX/RX processes are HAL_SPI_TransmitReceive(), HAL_SPI_TransmitReceive_IT() and HAL 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) RX processes are HAL_SPI_Receive(), HAL_SPI_Receive_IT() and HAL_SPI_Receive_DMA() 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) TX processes are HAL_SPI_Transmit(), HAL_SPI_Transmit_IT() and HAL_SPI_Transmit_DMA 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 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 **** /* Includes ------------------------------------------------------------------*/ 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #include "stm32f3xx_hal.h" 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 5 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup STM32F3xx_HAL_Driver 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI SPI 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI HAL module driver 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #ifdef HAL_SPI_MODULE_ENABLED 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private typedef -----------------------------------------------------------*/ 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private defines -----------------------------------------------------------*/ 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Private_Constants SPI Private Constants 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #define SPI_DEFAULT_TIMEOUT 100U 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 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 **** /* Private macros ------------------------------------------------------------*/ 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private variables ---------------------------------------------------------*/ 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Private function prototypes -----------------------------------------------*/ 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Private_Functions SPI Private Functions 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma); 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma); 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma); 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma); 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma); 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma); 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma); 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma); 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart); 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 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 void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi); 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi); 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi); 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi); 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi); 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi); 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi); ARM GAS /tmp/ccZ0BHQJ.s page 6 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi); 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi); 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t T 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 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 **** /* Exported functions --------------------------------------------------------*/ 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions SPI Exported Functions 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Initialization and Configuration functions 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Initialization and de-initialization functions ##### 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] This subsection provides a set of functions allowing to initialize and 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** de-initialize the SPIx peripheral: 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) User must implement HAL_SPI_MspInit() function in which he configures 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) Call the function HAL_SPI_Init() to configure the selected device with 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the selected configuration: 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Mode 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Direction 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Data Size 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Clock Polarity and Phase 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) NSS Management 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) BaudRate Prescaler 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) FirstBit 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) TIMode 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Calculation 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Polynomial if CRC enabled 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) CRC Length, used only with Data8 and Data16 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) FIFO reception threshold 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) Call the function HAL_SPI_DeInit() to restore the default configuration 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** of the selected SPIx peripheral. 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Initialize the SPI according to the specified parameters 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * in the SPI_InitTypeDef and initialize the associated handle. 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi) 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 7 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi == NULL) 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the parameters */ 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_MODE(hspi->Init.Mode)); 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION(hspi->Init.Direction)); 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize)); 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSS(hspi->Init.NSS)); 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode)); 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPOL(hspi->Init.CLKPolarity)); 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Mode == SPI_MODE_MASTER) 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Baudrate prescaler not use in Motoraola Slave mode. force to default value */ 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Force polarity and phase to TI protocaol requirements */ 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPolarity = SPI_POLARITY_LOW; 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_CALCULATION(hspi->Init.CRCCalculation)); 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_POLYNOMIAL(hspi->Init.CRCPolynomial)); 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CRC_LENGTH(hspi->Init.CRCLength)); 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_RESET) 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Allocate lock resource and initialize it */ 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Lock = HAL_UNLOCKED; 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 8 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the SPI Callback settings */ 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallback 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallback 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->MspInitCallback == NULL) 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit */ 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC... */ 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback(hspi); 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init the low level hardware : GPIO, CLOCK, NVIC... */ 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_MspInit(hspi); 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY; 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the selected SPI peripheral */ 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Align by default the rs fifo threshold on the data size */ 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** frxth = SPI_RXFIFO_THRESHOLD_HF; 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** frxth = SPI_RXFIFO_THRESHOLD_QF; 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC calculation is valid only for 16Bit and 8 Bit */ 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize != SPI_DATASIZE_16BIT) && (hspi->Init.DataSize != SPI_DATASIZE_8BIT)) 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC must be disabled */ 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*----------------------- SPIx CR1 & CR2 Configuration ---------------------*/ 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : SPI Mode, Communication Mode, Clock polarity and phase, NSS management, 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Communication speed, First bit and CRC calculation state */ 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CR1, ((hspi->Init.Mode & (SPI_CR1_MSTR | SPI_CR1_SSI)) | 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.Direction & (SPI_CR1_RXONLY | SPI_CR1_BIDIMODE)) | 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CLKPolarity & SPI_CR1_CPOL) | 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CLKPhase & SPI_CR1_CPHA) | 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.NSS & SPI_CR1_SSM) | 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.BaudRatePrescaler & SPI_CR1_BR_Msk) | 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.FirstBit & SPI_CR1_LSBFIRST) | 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.CRCCalculation & SPI_CR1_CRCEN))); ARM GAS /tmp/ccZ0BHQJ.s page 9 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*---------------------------- SPIx CRCL Configuration -------------------*/ 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Align the CRC Length on the data size */ 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_DATASIZE) 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC Length aligned on the data size : value set by default */ 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCLength = SPI_CRC_LENGTH_16BIT; 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CRCLength = SPI_CRC_LENGTH_8BIT; 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : CRC Length */ 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCL); 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : NSS management, TI Mode, NSS Pulse, Data size and Rx Fifo threshold */ 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CR2, (((hspi->Init.NSS >> 16U) & SPI_CR2_SSOE) | 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.TIMode & SPI_CR2_FRF) | 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.NSSPMode & SPI_CR2_NSSP) | 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.DataSize & SPI_CR2_DS_Msk) | 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (frxth & SPI_CR2_FRXTH))); 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*---------------------------- SPIx CRCPOLY Configuration ------------------*/ 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure : CRC Polynomial */ 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** WRITE_REG(hspi->Instance->CRCPR, (hspi->Init.CRCPolynomial & SPI_CRCPR_CRCPOLY_Msk)); 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined(SPI_I2SCFGR_I2SMOD) 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Activate the SPI mode (Make sure that I2SMOD bit in I2SCFGR register is reset) */ 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->I2SCFGR, SPI_I2SCFGR_I2SMOD); 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* SPI_I2SCFGR_I2SMOD */ 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief De-Initialize the SPI peripheral. 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccZ0BHQJ.s page 10 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi) 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi == NULL) 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check SPI Instance parameter */ 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_ALL_INSTANCE(hspi->Instance)); 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY; 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI Peripheral Clock */ 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->MspDeInitCallback == NULL) 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit */ 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback(hspi); 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC... */ 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_MspDeInit(hspi); 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Initialize the SPI MSP. 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_MspInit should be implemented in the user file 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccZ0BHQJ.s page 11 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief De-Initialize the SPI MSP. 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_MspDeInit should be implemented in the user file 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Register a User SPI Callback 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * To be used instead of the weak predefined callback 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi Pointer to a SPI_HandleTypeDef structure that contains 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI. 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param CallbackID ID of the callback to be registered 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pCallback pointer to the Callback function 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_RegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef Callb 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** pSPI_CallbackTypeDef pCallback) 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef status = HAL_OK; 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (pCallback == NULL) 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode |= HAL_SPI_ERROR_INVALID_CALLBACK; 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_SPI_STATE_READY == hspi->State) 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_COMPLETE_CB_ID : 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = pCallback; 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_COMPLETE_CB_ID : 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = pCallback; 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_COMPLETE_CB_ID : 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = pCallback; 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_HALF_COMPLETE_CB_ID : ARM GAS /tmp/ccZ0BHQJ.s page 12 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = pCallback; 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_HALF_COMPLETE_CB_ID : 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = pCallback; 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = pCallback; 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ERROR_CB_ID : 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = pCallback; 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ABORT_CB_ID : 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = pCallback; 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = pCallback; 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = pCallback; 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else if (HAL_SPI_STATE_RESET == hspi->State) 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = pCallback; 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = pCallback; 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 13 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return status; 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Unregister an SPI Callback 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * SPI callback is redirected to the weak predefined callback 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi Pointer to a SPI_HandleTypeDef structure that contains 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI. 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param CallbackID ID of the callback to be unregistered 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_UnRegisterCallback(SPI_HandleTypeDef *hspi, HAL_SPI_CallbackIDTypeDef Cal 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef status = HAL_OK; 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_SPI_STATE_READY == hspi->State) 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_COMPLETE_CB_ID : 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback = HAL_SPI_TxCpltCallback; /* Legacy weak TxCpltCallback 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_COMPLETE_CB_ID : 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback = HAL_SPI_RxCpltCallback; /* Legacy weak RxCpltCallback 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_COMPLETE_CB_ID : 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback = HAL_SPI_TxRxCpltCallback; /* Legacy weak TxRxCpltCallback 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_HALF_COMPLETE_CB_ID : 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback = HAL_SPI_TxHalfCpltCallback; /* Legacy weak TxHalfCpltCallbac 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_RX_HALF_COMPLETE_CB_ID : 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback = HAL_SPI_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallbac 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID : 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback = HAL_SPI_TxRxHalfCpltCallback; /* Legacy weak TxRxHalfCpltCallb 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 14 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ERROR_CB_ID : 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback = HAL_SPI_ErrorCallback; /* Legacy weak ErrorCallback 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_ABORT_CB_ID : 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback = HAL_SPI_AbortCpltCallback; /* Legacy weak AbortCpltCallback 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else if (HAL_SPI_STATE_RESET == hspi->State) 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** switch (CallbackID) 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPINIT_CB_ID : 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspInitCallback = HAL_SPI_MspInit; /* Legacy weak MspInit 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_MSPDEINIT_CB_ID : 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->MspDeInitCallback = HAL_SPI_MspDeInit; /* Legacy weak MspDeInit 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** default : 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update the error code */ 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_INVALID_CALLBACK); 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return error status */ 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** status = HAL_ERROR; 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); ARM GAS /tmp/ccZ0BHQJ.s page 15 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return status; 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 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 **** /** @defgroup SPI_Exported_Functions_Group2 IO operation functions 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Data transfers functions 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ============================================================================== 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### IO operation functions ##### 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to manage the SPI 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** data transfers. 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] The SPI supports master and slave mode : 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (#) There are two modes of transfer: 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) Blocking mode: The communication is performed in polling mode. 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL status of all data processing is returned by the same function 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** after finishing transfer. 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (++) No-Blocking mode: The communication is performed using Interrupts 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** or DMA, These APIs return the HAL status. 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The end of the data processing will be indicated through the 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** dedicated SPI IRQ when using Interrupt mode or the DMA IRQ when 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** using DMA mode. 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL_SPI_TxCpltCallback(), HAL_SPI_RxCpltCallback() and HAL_SPI_TxRxCpltCallback() u 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will be executed respectively at the end of the transmit or Receive process 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** The HAL_SPI_ErrorCallback()user callback will be executed when a communication error is 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 805: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 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** exist for 1Line (simplex) and 2Lines (full duplex) modes. 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Transmit an amount of data in blocking mode. 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 821: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 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); ARM GAS /tmp/ccZ0BHQJ.s page 16 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 17 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->TxXferCount > 0U) 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag is set to send data */ 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** /* Transmit data in 8 Bit mode */ 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* write on the data register in packing mode */ 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr); 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->TxXferCount > 0U) 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag is set to send data */ 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 18 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* write on the data register in packing mode */ 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((__IO uint8_t *)&hspi->Instance->DR) = (*hspi->pTxBuffPtr); 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 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 **** else 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 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 **** } 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; ARM GAS /tmp/ccZ0BHQJ.s page 19 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in blocking mode. 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be received 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1011: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 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES)) 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1030: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 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive(hspi, pData, pData, Size, Timeout); 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; ARM GAS /tmp/ccZ0BHQJ.s page 20 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* this is done to handle the CRCNEXT before the latest data */ 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the Rx Fifo threshold */ 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction: 1Line */ 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 8 Bit mode */ 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize <= SPI_DATASIZE_8BIT) 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transfer loop */ 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->RxXferCount > 0U) 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the RXNE flag */ 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* read the received data */ 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (* (uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ ARM GAS /tmp/ccZ0BHQJ.s page 21 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transfer loop */ 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while (hspi->RxXferCount > 0U) 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the RXNE flag */ 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Timeout management */ 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Handle the CRC Transmission */ 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* freeze the CRC before the latest data */ 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read the latest data */ 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* the latest data has not been received */ 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive last data in 16 Bit mode */ 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive last data in 8 Bit mode */ 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 22 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait the CRC data */ 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16B 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, Timeout, tickstart) != HAL_OK) 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); ARM GAS /tmp/ccZ0BHQJ.s page 23 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in blocking mode. 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxDa 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout) 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_RxXferCount; 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t spi_cr1; 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t spi_cr2; 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Variable used to alternate Rx and Tx during transfer */ 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t txallowed = 1U; 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 24 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_RxXferCount = Size; 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** spi_cr1 = READ_REG(hspi->Instance->CR1); 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** spi_cr2 = READ_REG(hspi->Instance->CR2); 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the Rx Fifo threshold */ 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (initial_RxXferCount > 1U)) 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else ARM GAS /tmp/ccZ0BHQJ.s page 25 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 8bit */ 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 16 Bit mode */ 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1379: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 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNE flag */ 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 26 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 8 Bit mode */ 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1448: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 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 27 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag is reset */ 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold before to switch on 8 bit data size */ 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout = 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC from DR to close CRC calculation process */ 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag */ 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; ARM GAS /tmp/ccZ0BHQJ.s page 28 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear CRC Flag */ 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with Interrupt. 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains ARM GAS /tmp/ccZ0BHQJ.s page 29 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_16BIT; 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_8BIT; 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 30 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Receive an amount of data in non-blocking mode with Interrupt. 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1674: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 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_IT(hspi, pData, pData, Size); 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; ARM GAS /tmp/ccZ0BHQJ.s page 31 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1700: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 */ 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); ARM GAS /tmp/ccZ0BHQJ.s page 32 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Note : The SPI must be enabled after unlocking current process 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to avoid the risk of SPI interrupt handle execution before current 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** process unlock */ 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with Interrupt. 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pR 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ ARM GAS /tmp/ccZ0BHQJ.s page 33 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BIT; 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BIT; 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1841: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 */ 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (Size >= 2U)) 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); ARM GAS /tmp/ccZ0BHQJ.s page 34 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with DMA. 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; ARM GAS /tmp/ccZ0BHQJ.s page 35 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA Half transfer complete callback */ 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt; 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA transfer complete callback */ 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt; 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = SPI_DMAError; 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmatx->Init.MemDataAlignment == DMA_MDA 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the even/odd of the data size + crc if enabled */ 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount & 0x1U) == 0U) 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 Tx DMA Stream/Channel */ 1962: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 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 36 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with DMA. 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note In case of MASTER mode and SPI_DIRECTION_2LINES direction, hdmatx shall be defined. 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pData Length must be Size + 1. 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx dma handle */ 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2021: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 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size); 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ ARM GAS /tmp/ccZ0BHQJ.s page 37 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 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 **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); ARM GAS /tmp/ccZ0BHQJ.s page 38 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI RxDMA Half transfer complete callback */ 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA transfer complete callback */ 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2115: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 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ ARM GAS /tmp/ccZ0BHQJ.s page 39 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with DMA. 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pRxData Length must be Size + 1 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *p 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t Size) 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx & tx dma handles */ 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; ARM GAS /tmp/ccZ0BHQJ.s page 40 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset the threshold bit */ 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX | SPI_CR2_LDMARX); 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The packing mode management is enabled by the DMA settings according the spi data size */ 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferSize & 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_LDMATX); 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 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_LDMATX); 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 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 **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) ARM GAS /tmp/ccZ0BHQJ.s page 41 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2271: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 * 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA Half transfer complete callback */ 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx/Rx DMA Half transfer complete callback */ 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt; 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2292: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 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** is performed in DMA reception complete callback */ 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = NULL; 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/ccZ0BHQJ.s page 42 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 2313: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 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (blocking mode). 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 43 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */ 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK) 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN)); 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; ARM GAS /tmp/ccZ0BHQJ.s page 44 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */ 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK) 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 peripheral */ 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXDMAEN)); 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; ARM GAS /tmp/ccZ0BHQJ.s page 45 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->state to ready */ 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (Interrupt mode). 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2507: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) 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - At abort completion, call user abort complete callback 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * considered as completed only when user abort complete callback is executed (not when ex 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi) 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Change Rx and Tx Irq Handler to Disable TXEIE, RXNEIE and ERRIE interrupts */ 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 46 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2565: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 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** before any call to DMA Abort functions */ 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Tx Handle is valid */ 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback; 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 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 **** /* DMA Rx Handle is valid */ 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback; 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 47 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel */ 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK) 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel */ 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK) 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (abortcplt == 1U) 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 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 **** /* Clear the Error flags in the SR register */ 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); ARM GAS /tmp/ccZ0BHQJ.s page 48 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Pause the DMA Transfer. 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi) 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Resume the DMA Transfer. 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi) 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI DMA Tx & Rx requests */ 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 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 **** /** ARM GAS /tmp/ccZ0BHQJ.s page 49 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Stop the DMA Transfer. 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi) 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 2719: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 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the correspond call back is executed HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA tx Stream/Channel */ 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmatx)) 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA rx Stream/Channel */ 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmarx)) 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI interrupt request. 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Receiver ----------------------------------------------------*/ 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && 2762: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 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR(hspi); 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 50 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Transmitter -------------------------------------------------*/ 2769: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) 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR(hspi); 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in Error Treatment --------------------------------------------------*/ 2776: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) != 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Overrun error interrupt occurred ----------------------------------*/ 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_TX) 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 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 **** 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Mode Fault error interrupt occurred -------------------------------*/ 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Frame error interrupt occurred ------------------------------------*/ 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable all interrupts */ 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 2815: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) 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx channel */ 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ ARM GAS /tmp/ccZ0BHQJ.s page 51 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx channel */ 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 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 **** else 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Tx Transfer completed callback. 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxCpltCallback should be implemented in the user file 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Rx Transfer completed callback. 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccZ0BHQJ.s page 52 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxCpltCallback should be implemented in the user file 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Tx and Rx Transfer completed callback. 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxCpltCallback should be implemented in the user file 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Tx Half Transfer completed callback. 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxHalfCpltCallback should be implemented in the user file 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Rx Half Transfer completed callback. 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 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 **** * @brief Tx and Rx Half Transfer callback. ARM GAS /tmp/ccZ0BHQJ.s page 53 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI error callback. 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_ErrorCallback should be implemented in the user file 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and user can use HAL_SPI_GetError() API to check the latest error occurred 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 **** * @brief SPI Abort Complete callback. 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_AbortCpltCallback can be implemented in the user file. 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 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 **** /** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI control functions 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== ARM GAS /tmp/ccZ0BHQJ.s page 54 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Peripheral State and Errors functions ##### 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to control the SPI. 2999: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 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetError() check in run-time Errors occurring during communication 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI handle state. 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI state 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi) 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->State; 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 **** * @brief Return the SPI error code. 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI error code in bitmap format 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi) 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->ErrorCode; 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup SPI_Private_Functions 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Private functions 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit process complete callback. 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; ARM GAS /tmp/ccZ0BHQJ.s page 55 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received data is not read */ 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx complete callback */ 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI receive process complete callback. 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; ARM GAS /tmp/ccZ0BHQJ.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 **** __IO uint32_t tmpreg = 0U; 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag */ 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) ! 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstar 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 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 **** } 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ ARM GAS /tmp/ccZ0BHQJ.s page 57 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if we are in Master RX 2 line mode */ 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3170: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) 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Normal case */ 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit receive process complete callback. 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma) ARM GAS /tmp/ccZ0BHQJ.s page 58 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 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 **** __IO uint32_t tmpreg = 0U; 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_8BI 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_QUARTER_FULL, SPI_DEFAULT 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart) != HAL_OK) 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_HALF_FULL, SPI_DEFAULT_TI 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 59 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request */ 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit process complete callback. 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx half complete callback */ 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback(hspi); 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxHalfCpltCallback(hspi); 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half receive process complete callback 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains ARM GAS /tmp/ccZ0BHQJ.s page 60 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx half complete callback */ 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback(hspi); 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxHalfCpltCallback(hspi); 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit receive process complete callback. 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx half complete callback */ 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback(hspi); 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxHalfCpltCallback(hspi); 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication error callback. 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma) 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Stop the disable DMA transfer on SPI side */ 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccZ0BHQJ.s page 61 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication abort callback, when initiated by HAL services on Error 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Tx communication abort callback, when initiated by user 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3416: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 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Rx DMA Handle. 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->XferAbortCallback != NULL) 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 62 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 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 **** /* Clear the Error flags in the SR register */ 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Rx communication abort callback, when initiated by user 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3482: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 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Tx DMA Handle. 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 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 **** /* Empty the FRLVL fifo */ 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 63 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->XferAbortCallback != NULL) 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 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 **** /* Clear the Error flags in the SR register */ 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 64 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 8 Bit mode */ 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = *((__IO uint8_t *)&hspi->Instance->DR); 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BITCRC; 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); ARM GAS /tmp/ccZ0BHQJ.s page 65 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 8-bit handler for Transmit and Receive in Interrupt mode. 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount >= 2U) 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 8 Bit mode */ 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transmission */ 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** ARM GAS /tmp/ccZ0BHQJ.s page 66 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 16-bit handler for Transmit and Receive in Interrupt mode. 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BITCRC; 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 16-bit handler for Transmit and Receive in Interrupt mode. ARM GAS /tmp/ccZ0BHQJ.s page 67 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 8-bit receive in Interrupt context. 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) ARM GAS /tmp/ccZ0BHQJ.s page 68 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the receive 8-bit in Interrupt context. 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BITCRC; 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive in Interrupt context. 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); ARM GAS /tmp/ccZ0BHQJ.s page 69 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the 16-bit receive in Interrupt context. 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BITCRC; 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 8-bit transmit in Interrupt mode. 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); ARM GAS /tmp/ccZ0BHQJ.s page 70 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 16-bit transmit in Interrupt mode. 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI Communication Timeout. 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Flag SPI flag to check 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State flag state to check 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 29 .loc 1 3951 1 view -0 30 .cfi_startproc 31 @ args = 4, pretend = 0, frame = 8 32 @ frame_needed = 0, uses_anonymous_args = 0 33 .loc 1 3951 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 ARM GAS /tmp/ccZ0BHQJ.s page 71 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 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 50 .loc 1 3952 3 is_stmt 1 view .LVU2 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 51 .loc 1 3953 3 view .LVU3 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 52 .loc 1 3954 3 view .LVU4 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 53 .loc 1 3957 3 view .LVU5 54 .loc 1 3957 30 is_stmt 0 view .LVU6 55 000e FFF7FEFF bl HAL_GetTick 56 .LVL1: 57 .loc 1 3957 44 discriminator 1 view .LVU7 58 0012 0A9B ldr r3, [sp, #40] 59 0014 1B1A subs r3, r3, r0 60 .loc 1 3957 17 discriminator 1 view .LVU8 61 0016 03EB0609 add r9, r3, r6 62 .LVL2: 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 63 .loc 1 3958 3 is_stmt 1 view .LVU9 64 .loc 1 3958 19 is_stmt 0 view .LVU10 65 001a FFF7FEFF bl HAL_GetTick 66 .LVL3: 67 001e 8246 mov r10, r0 68 .LVL4: 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); 69 .loc 1 3961 3 is_stmt 1 view .LVU11 70 .loc 1 3961 43 is_stmt 0 view .LVU12 71 0020 284B ldr r3, .L16 72 0022 1B68 ldr r3, [r3] 73 .loc 1 3961 50 view .LVU13 74 0024 C3F3CB33 ubfx r3, r3, #15, #12 75 .loc 1 3961 23 view .LVU14 76 0028 09FB03F3 mul r3, r9, r3 77 .loc 1 3961 9 view .LVU15 78 002c 0193 str r3, [sp, #4] 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) 79 .loc 1 3963 3 is_stmt 1 view .LVU16 80 .LVL5: 81 .L3: 82 .loc 1 3963 57 view .LVU17 83 .loc 1 3963 11 is_stmt 0 view .LVU18 84 002e 2B68 ldr r3, [r5] 85 0030 9C68 ldr r4, [r3, #8] ARM GAS /tmp/ccZ0BHQJ.s page 72 86 .loc 1 3963 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 3963 57 view .LVU20 92 003c BB42 cmp r3, r7 93 003e 3DD0 beq .L12 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 94 .loc 1 3965 5 is_stmt 1 view .LVU21 95 .loc 1 3965 8 is_stmt 0 view .LVU22 96 0040 B6F1FF3F cmp r6, #-1 97 0044 F3D0 beq .L3 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 98 .loc 1 3967 7 is_stmt 1 view .LVU23 99 .loc 1 3967 13 is_stmt 0 view .LVU24 100 0046 FFF7FEFF bl HAL_GetTick 101 .LVL6: 102 .loc 1 3967 27 discriminator 1 view .LVU25 103 004a A0EB0A00 sub r0, r0, r10 104 .loc 1 3967 10 discriminator 1 view .LVU26 105 004e 4845 cmp r0, r9 106 0050 07D2 bcs .L13 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 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 **** hspi->State = HAL_SPI_STATE_READY; 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 107 .loc 1 3997 7 is_stmt 1 view .LVU27 108 .loc 1 3997 17 is_stmt 0 view .LVU28 ARM GAS /tmp/ccZ0BHQJ.s page 73 109 0052 019A ldr r2, [sp, #4] 110 .loc 1 3997 10 view .LVU29 111 0054 02B1 cbz r2, .L9 112 0056 4A46 mov r2, r9 113 .L9: 114 .LVL7: 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 115 .loc 1 4001 7 is_stmt 1 view .LVU30 116 .loc 1 4001 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] 120 005e 9146 mov r9, r2 121 0060 E5E7 b .L3 122 .LVL8: 123 .L13: 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 124 .loc 1 3974 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] 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 129 .loc 1 3976 9 view .LVU33 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 130 .loc 1 3976 24 is_stmt 0 view .LVU34 131 006c 6B68 ldr r3, [r5, #4] 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 132 .loc 1 3976 12 view .LVU35 133 006e B3F5827F cmp r3, #260 134 0072 0BD0 beq .L14 135 .L5: 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 136 .loc 1 3984 9 is_stmt 1 view .LVU36 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 137 .loc 1 3984 23 is_stmt 0 view .LVU37 138 0074 AB6A ldr r3, [r5, #40] 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 139 .loc 1 3984 12 view .LVU38 140 0076 B3F5005F cmp r3, #8192 141 007a 14D0 beq .L15 142 .L7: 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 143 .loc 1 3986 11 is_stmt 1 discriminator 1 view .LVU39 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 144 .loc 1 3989 9 view .LVU40 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 145 .loc 1 3989 21 is_stmt 0 view .LVU41 146 007c 0123 movs r3, #1 147 007e 85F85D30 strb r3, [r5, #93] 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 148 .loc 1 3992 9 is_stmt 1 view .LVU42 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 149 .loc 1 3992 9 view .LVU43 ARM GAS /tmp/ccZ0BHQJ.s page 74 150 0082 0023 movs r3, #0 151 0084 85F85C30 strb r3, [r5, #92] 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 152 .loc 1 3992 9 view .LVU44 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 153 .loc 1 3994 9 view .LVU45 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 154 .loc 1 3994 16 is_stmt 0 view .LVU46 155 0088 0320 movs r0, #3 156 008a 18E0 b .L8 157 .L14: 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 158 .loc 1 3976 65 discriminator 1 view .LVU47 159 008c AB68 ldr r3, [r5, #8] 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 160 .loc 1 3976 50 discriminator 1 view .LVU48 161 008e B3F5004F cmp r3, #32768 162 0092 02D0 beq .L6 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 163 .loc 1 3977 54 view .LVU49 164 0094 B3F5806F cmp r3, #1024 165 0098 ECD1 bne .L5 166 .L6: 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 167 .loc 1 3980 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: 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 174 .loc 1 3986 11 view .LVU51 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 175 .loc 1 3986 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] 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 180 .loc 1 3986 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: 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 187 .loc 1 4005 10 is_stmt 0 view .LVU54 188 00bc 0020 movs r0, #0 189 .L8: 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 190 .loc 1 4006 1 view .LVU55 191 00be 02B0 add sp, sp, #8 ARM GAS /tmp/ccZ0BHQJ.s page 75 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 4006 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 208 .thumb_func 210 SPI_WaitFifoStateUntilTimeout: 211 .LVL10: 212 .LFB178: 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI FIFO Communication Timeout. 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Fifo Fifo to check 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State Fifo state to check 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 213 .loc 1 4020 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 4020 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 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 234 .loc 1 4021 3 is_stmt 1 view .LVU59 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; ARM GAS /tmp/ccZ0BHQJ.s page 76 235 .loc 1 4022 3 view .LVU60 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 236 .loc 1 4023 3 view .LVU61 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 237 .loc 1 4024 3 view .LVU62 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 238 .loc 1 4025 3 view .LVU63 239 .loc 1 4025 17 is_stmt 0 view .LVU64 240 000e 0023 movs r3, #0 241 .LVL11: 242 .loc 1 4025 17 view .LVU65 243 0010 8DF80330 strb r3, [sp, #3] 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 244 .loc 1 4028 3 is_stmt 1 view .LVU66 245 .loc 1 4028 28 is_stmt 0 view .LVU67 246 0014 FFF7FEFF bl HAL_GetTick 247 .LVL12: 248 .loc 1 4028 42 discriminator 1 view .LVU68 249 0018 0A9B ldr r3, [sp, #40] 250 001a 1B1A subs r3, r3, r0 251 .loc 1 4028 15 discriminator 1 view .LVU69 252 001c 03EB0708 add r8, r3, r7 253 .LVL13: 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 254 .loc 1 4029 3 is_stmt 1 view .LVU70 255 .loc 1 4029 19 is_stmt 0 view .LVU71 256 0020 FFF7FEFF bl HAL_GetTick 257 .LVL14: 258 0024 8146 mov r9, r0 259 .LVL15: 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 260 .loc 1 4032 3 is_stmt 1 view .LVU72 261 .loc 1 4032 35 is_stmt 0 view .LVU73 262 0026 D6F800A0 ldr r10, [r6] 263 .LVL16: 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 35U) >> 20U); 264 .loc 1 4035 3 is_stmt 1 view .LVU74 265 .loc 1 4035 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 4035 50 view .LVU76 271 0036 1B0D lsrs r3, r3, #20 272 .loc 1 4035 23 view .LVU77 273 0038 08FB03F3 mul r3, r8, r3 274 .loc 1 4035 9 view .LVU78 275 003c 0193 str r3, [sp, #4] 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->Instance->SR & Fifo) != State) 276 .loc 1 4037 3 is_stmt 1 view .LVU79 ARM GAS /tmp/ccZ0BHQJ.s page 77 277 .loc 1 4037 9 is_stmt 0 view .LVU80 278 003e 02E0 b .L21 279 .LVL17: 280 .L20: 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((Fifo == SPI_SR_FRLVL) && (State == SPI_FRLVL_EMPTY)) 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Flush Data Register by a blank read */ 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 281 .loc 1 4047 5 is_stmt 1 view .LVU81 282 .loc 1 4047 8 is_stmt 0 view .LVU82 283 0040 B7F1FF3F cmp r7, #-1 284 0044 12D1 bne .L30 285 .L21: 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 286 .loc 1 4037 38 is_stmt 1 view .LVU83 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 287 .loc 1 4037 15 is_stmt 0 view .LVU84 288 0046 3368 ldr r3, [r6] 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 289 .loc 1 4037 25 view .LVU85 290 0048 9B68 ldr r3, [r3, #8] 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 291 .loc 1 4037 30 view .LVU86 292 004a 03EA040C and ip, r3, r4 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 293 .loc 1 4037 38 view .LVU87 294 004e AC45 cmp ip, r5 295 0050 47D0 beq .L31 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 296 .loc 1 4039 5 is_stmt 1 view .LVU88 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 297 .loc 1 4039 8 is_stmt 0 view .LVU89 298 0052 B4F5C06F cmp r4, #1536 299 0056 F3D1 bne .L20 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 300 .loc 1 4039 32 discriminator 1 view .LVU90 301 0058 002D cmp r5, #0 302 005a F1D1 bne .L20 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 303 .loc 1 4042 7 is_stmt 1 view .LVU91 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 304 .loc 1 4042 17 is_stmt 0 view .LVU92 305 005c 9AF80C30 ldrb r3, [r10, #12] @ zero_extendqisi2 306 0060 DBB2 uxtb r3, r3 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 307 .loc 1 4042 15 view .LVU93 308 0062 8DF80330 strb r3, [sp, #3] 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 309 .loc 1 4044 7 is_stmt 1 view .LVU94 310 0066 9DF80330 ldrb r3, [sp, #3] @ zero_extendqisi2 311 006a E9E7 b .L20 ARM GAS /tmp/ccZ0BHQJ.s page 78 312 .L30: 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 313 .loc 1 4049 7 view .LVU95 314 .loc 1 4049 13 is_stmt 0 view .LVU96 315 006c FFF7FEFF bl HAL_GetTick 316 .LVL18: 317 .loc 1 4049 27 discriminator 1 view .LVU97 318 0070 A0EB0900 sub r0, r0, r9 319 .loc 1 4049 10 discriminator 1 view .LVU98 320 0074 4045 cmp r0, r8 321 0076 07D2 bcs .L32 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 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 **** hspi->State = HAL_SPI_STATE_READY; 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 322 .loc 1 4079 7 is_stmt 1 view .LVU99 323 .loc 1 4079 17 is_stmt 0 view .LVU100 324 0078 019A ldr r2, [sp, #4] 325 .loc 1 4079 10 view .LVU101 326 007a 02B1 cbz r2, .L27 327 007c 4246 mov r2, r8 328 .L27: 329 .LVL19: 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 330 .loc 1 4083 7 is_stmt 1 view .LVU102 331 .loc 1 4083 12 is_stmt 0 view .LVU103 332 007e 019B ldr r3, [sp, #4] ARM GAS /tmp/ccZ0BHQJ.s page 79 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: 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 339 .loc 1 4056 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] 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 344 .loc 1 4058 9 view .LVU105 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 345 .loc 1 4058 24 is_stmt 0 view .LVU106 346 0092 7368 ldr r3, [r6, #4] 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 347 .loc 1 4058 12 view .LVU107 348 0094 B3F5827F cmp r3, #260 349 0098 0BD0 beq .L33 350 .L23: 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 351 .loc 1 4066 9 is_stmt 1 view .LVU108 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 352 .loc 1 4066 23 is_stmt 0 view .LVU109 353 009a B36A ldr r3, [r6, #40] 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 354 .loc 1 4066 12 view .LVU110 355 009c B3F5005F cmp r3, #8192 356 00a0 14D0 beq .L34 357 .L25: 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 358 .loc 1 4068 11 is_stmt 1 discriminator 1 view .LVU111 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 359 .loc 1 4071 9 view .LVU112 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 360 .loc 1 4071 21 is_stmt 0 view .LVU113 361 00a2 0123 movs r3, #1 362 00a4 86F85D30 strb r3, [r6, #93] 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 363 .loc 1 4074 9 is_stmt 1 view .LVU114 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 364 .loc 1 4074 9 view .LVU115 365 00a8 0023 movs r3, #0 366 00aa 86F85C30 strb r3, [r6, #92] 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 367 .loc 1 4074 9 view .LVU116 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 368 .loc 1 4076 9 view .LVU117 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 369 .loc 1 4076 16 is_stmt 0 view .LVU118 370 00ae 0320 movs r0, #3 371 00b0 18E0 b .L26 372 .L33: 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 373 .loc 1 4058 65 discriminator 1 view .LVU119 ARM GAS /tmp/ccZ0BHQJ.s page 80 374 00b2 B368 ldr r3, [r6, #8] 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 375 .loc 1 4058 50 discriminator 1 view .LVU120 376 00b4 B3F5004F cmp r3, #32768 377 00b8 02D0 beq .L24 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 378 .loc 1 4059 54 view .LVU121 379 00ba B3F5806F cmp r3, #1024 380 00be ECD1 bne .L23 381 .L24: 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 382 .loc 1 4062 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 386 00c8 1360 str r3, [r2] 387 00ca E6E7 b .L23 388 .L34: 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 389 .loc 1 4068 11 view .LVU123 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 390 .loc 1 4068 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] 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 395 .loc 1 4068 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: 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 402 .loc 1 4087 10 is_stmt 0 view .LVU126 403 00e2 0020 movs r0, #0 404 .L26: 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 405 .loc 1 4088 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 4088 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 ARM GAS /tmp/ccZ0BHQJ.s page 81 421 .syntax unified 422 .thumb 423 .thumb_func 425 SPI_EndRxTxTransaction: 426 .LVL22: 427 .LFB180: 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RX transaction complete. 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Handle the check of the RXTX or TX transaction complete. 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 428 .loc 1 4135 1 is_stmt 1 view -0 429 .cfi_startproc 430 @ args = 0, pretend = 0, frame = 0 431 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccZ0BHQJ.s page 82 432 .loc 1 4135 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 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the TX fifo is empty */ 4137: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 4137 3 is_stmt 1 view .LVU131 445 .loc 1 4137 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 4137 7 view .LVU133 451 0010 4FF4C051 mov r1, #6144 452 .LVL24: 453 .loc 1 4137 7 view .LVU134 454 0014 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 455 .LVL25: 456 .loc 1 4137 6 discriminator 1 view .LVU135 457 0018 B0B9 cbnz r0, .L42 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 458 .loc 1 4144 3 is_stmt 1 view .LVU136 459 .loc 1 4144 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 4144 6 discriminator 1 view .LVU138 468 0028 A8B9 cbnz r0, .L43 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the RX fifo is empty */ 4151: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 4151 3 is_stmt 1 view .LVU139 470 .loc 1 4151 7 is_stmt 0 view .LVU140 471 002a 0096 str r6, [sp] 472 002c 2B46 mov r3, r5 ARM GAS /tmp/ccZ0BHQJ.s page 83 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 4151 6 discriminator 1 view .LVU141 479 003a 50B1 cbz r0, .L39 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 480 .loc 1 4153 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] 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 484 .loc 1 4154 5 view .LVU143 485 .loc 1 4154 12 is_stmt 0 view .LVU144 486 0044 0320 movs r0, #3 487 0046 04E0 b .L39 488 .L42: 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 489 .loc 1 4139 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] 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 493 .loc 1 4140 5 view .LVU146 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 494 .loc 1 4140 12 is_stmt 0 view .LVU147 495 0050 0320 movs r0, #3 496 .L39: 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 497 .loc 1 4158 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 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 506 .loc 1 4146 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] 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 510 .loc 1 4147 5 view .LVU150 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 511 .loc 1 4147 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 ARM GAS /tmp/ccZ0BHQJ.s page 84 518 .align 1 519 .syntax unified 520 .thumb 521 .thumb_func 523 SPI_EndRxTransaction: 524 .LVL29: 525 .LFB179: 4099: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 4099 1 is_stmt 1 view -0 527 .cfi_startproc 528 @ args = 0, pretend = 0, frame = 0 529 @ frame_needed = 0, uses_anonymous_args = 0 4099: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 4099 1 is_stmt 0 view .LVU153 531 0000 70B5 push {r4, r5, r6, lr} 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 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 542 .loc 1 4100 3 is_stmt 1 view .LVU154 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 543 .loc 1 4100 18 is_stmt 0 view .LVU155 544 000a 4368 ldr r3, [r0, #4] 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 545 .loc 1 4100 6 view .LVU156 546 000c B3F5827F cmp r3, #260 547 0010 0DD0 beq .L51 548 .LVL30: 549 .L45: 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 550 .loc 1 4108 3 is_stmt 1 view .LVU157 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 551 .loc 1 4108 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: 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 557 .loc 1 4108 7 view .LVU159 558 001a 2046 mov r0, r4 559 .LVL32: 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 560 .loc 1 4108 7 view .LVU160 561 001c FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 562 .LVL33: 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 563 .loc 1 4108 6 discriminator 1 view .LVU161 564 0020 90B9 cbnz r0, .L52 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO ARM GAS /tmp/ccZ0BHQJ.s page 85 565 .loc 1 4114 3 is_stmt 1 view .LVU162 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 566 .loc 1 4114 18 is_stmt 0 view .LVU163 567 0022 6368 ldr r3, [r4, #4] 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 568 .loc 1 4114 6 view .LVU164 569 0024 B3F5827F cmp r3, #260 570 0028 14D0 beq .L53 571 .L48: 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 572 .loc 1 4125 1 view .LVU165 573 002a 02B0 add sp, sp, #8 574 .cfi_remember_state 575 .cfi_def_cfa_offset 16 576 @ sp needed 577 002c 70BD pop {r4, r5, r6, pc} 578 .LVL34: 579 .L51: 580 .cfi_restore_state 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 581 .loc 1 4100 59 discriminator 1 view .LVU166 582 002e 8368 ldr r3, [r0, #8] 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 583 .loc 1 4100 44 discriminator 1 view .LVU167 584 0030 B3F5004F cmp r3, #32768 585 0034 02D0 beq .L46 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 586 .loc 1 4101 48 view .LVU168 587 0036 B3F5806F cmp r3, #1024 588 003a EAD1 bne .L45 589 .L46: 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 590 .loc 1 4104 5 is_stmt 1 view .LVU169 591 003c 2268 ldr r2, [r4] 592 .LVL35: 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 593 .loc 1 4104 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: 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 600 .loc 1 4110 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] 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 604 .loc 1 4111 5 view .LVU172 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 605 .loc 1 4111 12 is_stmt 0 view .LVU173 606 0050 0320 movs r0, #3 607 0052 EAE7 b .L48 608 .L53: 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 609 .loc 1 4114 59 discriminator 1 view .LVU174 ARM GAS /tmp/ccZ0BHQJ.s page 86 610 0054 A368 ldr r3, [r4, #8] 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 611 .loc 1 4114 44 discriminator 1 view .LVU175 612 0056 B3F5004F cmp r3, #32768 613 005a 02D0 beq .L49 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 614 .loc 1 4115 48 view .LVU176 615 005c B3F5806F cmp r3, #1024 616 0060 E3D1 bne .L48 617 .L49: 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 618 .loc 1 4118 5 is_stmt 1 view .LVU177 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 619 .loc 1 4118 9 is_stmt 0 view .LVU178 620 0062 0096 str r6, [sp] 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: 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 627 .loc 1 4118 8 discriminator 1 view .LVU179 628 0072 0028 cmp r0, #0 629 0074 D9D0 beq .L48 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 630 .loc 1 4120 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] 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 634 .loc 1 4121 7 view .LVU181 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 635 .loc 1 4121 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: 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RXTX transaction. 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi) 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 87 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management */ 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error 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->ErrorCallback(hspi); 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(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 **** #endif /* USE_SPI_CRC */ 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 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 **** else 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) ARM GAS /tmp/ccZ0BHQJ.s page 88 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RX transaction. 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi) 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) ARM GAS /tmp/ccZ0BHQJ.s page 89 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the TX transaction. 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE and ERR interrupt */ 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received is not read */ 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 90 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Rx transaction. 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi) 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 650 .loc 1 4350 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 4350 1 is_stmt 0 view .LVU184 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 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 662 .loc 1 4351 3 is_stmt 1 view .LVU185 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 663 .loc 1 4354 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] 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 668 .loc 1 4356 3 view .LVU187 669 .loc 1 4356 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 4356 31 view .LVU189 676 001c 6422 movs r2, #100 677 001e 02FB03F3 mul r3, r2, r3 678 .loc 1 4356 9 view .LVU190 679 0022 0393 str r3, [sp, #12] 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 680 .loc 1 4359 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: 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ ARM GAS /tmp/ccZ0BHQJ.s page 91 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 686 .loc 1 4362 3 view .LVU192 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 687 .loc 1 4364 5 view .LVU193 688 .loc 1 4364 15 is_stmt 0 view .LVU194 689 002e 039B ldr r3, [sp, #12] 690 .loc 1 4364 8 view .LVU195 691 0030 43B1 cbz r3, .L61 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 692 .loc 1 4369 5 is_stmt 1 view .LVU196 693 .loc 1 4369 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] 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 697 .loc 1 4370 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: 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 704 .loc 1 4366 7 view .LVU199 705 0044 236E ldr r3, [r4, #96] 706 0046 43F04003 orr r3, r3, #64 707 004a 2366 str r3, [r4, #96] 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 708 .loc 1 4367 7 view .LVU200 709 .L56: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4373: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 4373 3 view .LVU201 711 .loc 1 4373 7 is_stmt 0 view .LVU202 712 004c FFF7FEFF bl HAL_GetTick 713 .LVL39: 714 .loc 1 4373 7 discriminator 1 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 4373 6 discriminator 2 view .LVU204 723 005e 08B1 cbz r0, .L58 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 724 .loc 1 4375 5 is_stmt 1 view .LVU205 725 .loc 1 4375 21 is_stmt 0 view .LVU206 726 0060 4023 movs r3, #64 ARM GAS /tmp/ccZ0BHQJ.s page 92 727 0062 2366 str r3, [r4, #96] 728 .L58: 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4379: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 4379 3 is_stmt 1 view .LVU207 730 .loc 1 4379 7 is_stmt 0 view .LVU208 731 0064 FFF7FEFF bl HAL_GetTick 732 .LVL41: 733 .loc 1 4379 7 discriminator 1 view .LVU209 734 0068 0090 str r0, [sp] 735 006a 6423 movs r3, #100 736 006c 0022 movs r2, #0 737 006e 4FF4C061 mov r1, #1536 738 0072 2046 mov r0, r4 739 0074 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 740 .LVL42: 741 .loc 1 4379 6 discriminator 2 view .LVU210 742 0078 08B1 cbz r0, .L59 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 743 .loc 1 4381 5 is_stmt 1 view .LVU211 744 .loc 1 4381 21 is_stmt 0 view .LVU212 745 007a 4023 movs r3, #64 746 007c 2366 str r3, [r4, #96] 747 .L59: 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 748 .loc 1 4384 3 is_stmt 1 view .LVU213 749 .loc 1 4384 15 is_stmt 0 view .LVU214 750 007e 0723 movs r3, #7 751 0080 84F85D30 strb r3, [r4, #93] 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 752 .loc 1 4385 1 view .LVU215 753 0084 04B0 add sp, sp, #16 754 .cfi_def_cfa_offset 8 755 @ sp needed 756 0086 10BD pop {r4, pc} 757 .LVL43: 758 .L63: 759 .loc 1 4385 1 view .LVU216 760 .align 2 761 .L62: 762 0088 00000000 .word SystemCoreClock 763 008c F1197605 .word 91625969 764 .cfi_endproc 765 .LFE184: 767 .section .text.SPI_AbortTx_ISR,"ax",%progbits 768 .align 1 769 .syntax unified 770 .thumb 771 .thumb_func 773 SPI_AbortTx_ISR: 774 .LVL44: 775 .LFB185: ARM GAS /tmp/ccZ0BHQJ.s page 93 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Tx or Rx/Tx transaction. 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi) 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 776 .loc 1 4394 1 is_stmt 1 view -0 777 .cfi_startproc 778 @ args = 0, pretend = 0, frame = 8 779 @ frame_needed = 0, uses_anonymous_args = 0 780 .loc 1 4394 1 is_stmt 0 view .LVU218 781 0000 10B5 push {r4, lr} 782 .cfi_def_cfa_offset 8 783 .cfi_offset 4, -8 784 .cfi_offset 14, -4 785 0002 84B0 sub sp, sp, #16 786 .cfi_def_cfa_offset 24 787 0004 0446 mov r4, r0 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 788 .loc 1 4395 3 is_stmt 1 view .LVU219 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 789 .loc 1 4397 3 view .LVU220 790 .loc 1 4397 56 is_stmt 0 view .LVU221 791 0006 384B ldr r3, .L78 792 0008 1B68 ldr r3, [r3] 793 000a 384A ldr r2, .L78+4 794 000c A2FB0323 umull r2, r3, r2, r3 795 0010 5B0A lsrs r3, r3, #9 796 .loc 1 4397 31 view .LVU222 797 0012 6422 movs r2, #100 798 0014 02FB03F3 mul r3, r2, r3 799 .loc 1 4397 9 view .LVU223 800 0018 0393 str r3, [sp, #12] 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE interrupt */ 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE)); 801 .loc 1 4400 3 is_stmt 1 view .LVU224 802 001a 0268 ldr r2, [r0] 803 001c 5368 ldr r3, [r2, #4] 804 001e 23F08003 bic r3, r3, #128 805 0022 5360 str r3, [r2, #4] 806 .L67: 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXEIE is disabled */ 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 807 .loc 1 4403 3 view .LVU225 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 808 .loc 1 4405 5 view .LVU226 809 .loc 1 4405 15 is_stmt 0 view .LVU227 810 0024 039B ldr r3, [sp, #12] 811 .loc 1 4405 8 view .LVU228 812 0026 43B1 cbz r3, .L76 ARM GAS /tmp/ccZ0BHQJ.s page 94 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 813 .loc 1 4410 5 is_stmt 1 view .LVU229 814 .loc 1 4410 10 is_stmt 0 view .LVU230 815 0028 039B ldr r3, [sp, #12] 816 002a 013B subs r3, r3, #1 817 002c 0393 str r3, [sp, #12] 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)); 818 .loc 1 4411 12 is_stmt 1 view .LVU231 819 002e 2368 ldr r3, [r4] 820 0030 5B68 ldr r3, [r3, #4] 821 0032 13F0800F tst r3, #128 822 0036 F5D1 bne .L67 823 0038 03E0 b .L66 824 .L76: 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 825 .loc 1 4407 7 view .LVU232 826 003a 236E ldr r3, [r4, #96] 827 003c 43F04003 orr r3, r3, #64 828 0040 2366 str r3, [r4, #96] 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 829 .loc 1 4408 7 view .LVU233 830 .L66: 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 831 .loc 1 4413 3 view .LVU234 832 .loc 1 4413 7 is_stmt 0 view .LVU235 833 0042 FFF7FEFF bl HAL_GetTick 834 .LVL45: 835 .loc 1 4413 7 view .LVU236 836 0046 0246 mov r2, r0 837 .loc 1 4413 7 discriminator 1 view .LVU237 838 0048 6421 movs r1, #100 839 004a 2046 mov r0, r4 840 004c FFF7FEFF bl SPI_EndRxTxTransaction 841 .LVL46: 842 .loc 1 4413 6 discriminator 2 view .LVU238 843 0050 08B1 cbz r0, .L68 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 844 .loc 1 4415 5 is_stmt 1 view .LVU239 845 .loc 1 4415 21 is_stmt 0 view .LVU240 846 0052 4023 movs r3, #64 847 0054 2366 str r3, [r4, #96] 848 .L68: 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 849 .loc 1 4419 3 is_stmt 1 view .LVU241 850 0056 2268 ldr r2, [r4] 851 0058 1368 ldr r3, [r2] 852 005a 23F04003 bic r3, r3, #64 853 005e 1360 str r3, [r2] ARM GAS /tmp/ccZ0BHQJ.s page 95 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 854 .loc 1 4422 3 view .LVU242 855 .loc 1 4422 7 is_stmt 0 view .LVU243 856 0060 FFF7FEFF bl HAL_GetTick 857 .LVL47: 858 .loc 1 4422 7 discriminator 1 view .LVU244 859 0064 0090 str r0, [sp] 860 0066 6423 movs r3, #100 861 0068 0022 movs r2, #0 862 006a 4FF4C061 mov r1, #1536 863 006e 2046 mov r0, r4 864 0070 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 865 .LVL48: 866 .loc 1 4422 6 discriminator 2 view .LVU245 867 0074 08B1 cbz r0, .L69 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 868 .loc 1 4424 5 is_stmt 1 view .LVU246 869 .loc 1 4424 21 is_stmt 0 view .LVU247 870 0076 4023 movs r3, #64 871 0078 2366 str r3, [r4, #96] 872 .L69: 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check case of Full-Duplex Mode and disable directly RXNEIE interrupt */ 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 873 .loc 1 4428 3 is_stmt 1 view .LVU248 874 .loc 1 4428 7 is_stmt 0 view .LVU249 875 007a 2368 ldr r3, [r4] 876 007c 5A68 ldr r2, [r3, #4] 877 .loc 1 4428 6 view .LVU250 878 007e 12F0400F tst r2, #64 879 0082 2BD0 beq .L70 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 880 .loc 1 4431 5 is_stmt 1 view .LVU251 881 0084 5A68 ldr r2, [r3, #4] 882 0086 22F04002 bic r2, r2, #64 883 008a 5A60 str r2, [r3, #4] 884 .L73: 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 885 .loc 1 4434 5 view .LVU252 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 886 .loc 1 4436 7 view .LVU253 887 .loc 1 4436 17 is_stmt 0 view .LVU254 888 008c 039B ldr r3, [sp, #12] 889 .loc 1 4436 10 view .LVU255 890 008e 43B1 cbz r3, .L77 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; ARM GAS /tmp/ccZ0BHQJ.s page 96 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 891 .loc 1 4441 7 is_stmt 1 view .LVU256 892 .loc 1 4441 12 is_stmt 0 view .LVU257 893 0090 039B ldr r3, [sp, #12] 894 0092 013B subs r3, r3, #1 895 0094 0393 str r3, [sp, #12] 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 896 .loc 1 4442 14 is_stmt 1 view .LVU258 897 0096 2368 ldr r3, [r4] 898 0098 5B68 ldr r3, [r3, #4] 899 009a 13F0400F tst r3, #64 900 009e F5D1 bne .L73 901 00a0 03E0 b .L72 902 .L77: 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 903 .loc 1 4438 9 view .LVU259 904 00a2 236E ldr r3, [r4, #96] 905 00a4 43F04003 orr r3, r3, #64 906 00a8 2366 str r3, [r4, #96] 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 907 .loc 1 4439 9 view .LVU260 908 .L72: 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick() 909 .loc 1 4445 5 view .LVU261 910 .loc 1 4445 9 is_stmt 0 view .LVU262 911 00aa FFF7FEFF bl HAL_GetTick 912 .LVL49: 913 .loc 1 4445 9 discriminator 1 view .LVU263 914 00ae 0090 str r0, [sp] 915 00b0 6423 movs r3, #100 916 00b2 0022 movs r2, #0 917 00b4 8021 movs r1, #128 918 00b6 2046 mov r0, r4 919 00b8 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 920 .LVL50: 921 .loc 1 4445 8 discriminator 2 view .LVU264 922 00bc 08B1 cbz r0, .L74 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 923 .loc 1 4447 7 is_stmt 1 view .LVU265 924 .loc 1 4447 23 is_stmt 0 view .LVU266 925 00be 4023 movs r3, #64 926 00c0 2366 str r3, [r4, #96] 927 .L74: 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, H 928 .loc 1 4451 5 is_stmt 1 view .LVU267 929 .loc 1 4451 9 is_stmt 0 view .LVU268 930 00c2 FFF7FEFF bl HAL_GetTick 931 .LVL51: 932 .loc 1 4451 9 discriminator 1 view .LVU269 933 00c6 0090 str r0, [sp] ARM GAS /tmp/ccZ0BHQJ.s page 97 934 00c8 6423 movs r3, #100 935 00ca 0022 movs r2, #0 936 00cc 4FF4C061 mov r1, #1536 937 00d0 2046 mov r0, r4 938 00d2 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 939 .LVL52: 940 .loc 1 4451 8 discriminator 2 view .LVU270 941 00d6 08B1 cbz r0, .L70 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 942 .loc 1 4453 7 is_stmt 1 view .LVU271 943 .loc 1 4453 23 is_stmt 0 view .LVU272 944 00d8 4023 movs r3, #64 945 00da 2366 str r3, [r4, #96] 946 .L70: 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 947 .loc 1 4456 3 is_stmt 1 view .LVU273 948 .loc 1 4456 15 is_stmt 0 view .LVU274 949 00dc 0723 movs r3, #7 950 00de 84F85D30 strb r3, [r4, #93] 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 951 .loc 1 4457 1 view .LVU275 952 00e2 04B0 add sp, sp, #16 953 .cfi_def_cfa_offset 8 954 @ sp needed 955 00e4 10BD pop {r4, pc} 956 .LVL53: 957 .L79: 958 .loc 1 4457 1 view .LVU276 959 00e6 00BF .align 2 960 .L78: 961 00e8 00000000 .word SystemCoreClock 962 00ec F1197605 .word 91625969 963 .cfi_endproc 964 .LFE185: 966 .section .text.HAL_SPI_MspInit,"ax",%progbits 967 .align 1 968 .weak HAL_SPI_MspInit 969 .syntax unified 970 .thumb 971 .thumb_func 973 HAL_SPI_MspInit: 974 .LVL54: 975 .LFB132: 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 976 .loc 1 534 1 is_stmt 1 view -0 977 .cfi_startproc 978 @ args = 0, pretend = 0, frame = 0 979 @ frame_needed = 0, uses_anonymous_args = 0 980 @ link register save eliminated. 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 981 .loc 1 536 3 view .LVU278 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 982 .loc 1 541 1 is_stmt 0 view .LVU279 983 0000 7047 bx lr ARM GAS /tmp/ccZ0BHQJ.s page 98 984 .cfi_endproc 985 .LFE132: 987 .section .text.HAL_SPI_Init,"ax",%progbits 988 .align 1 989 .global HAL_SPI_Init 990 .syntax unified 991 .thumb 992 .thumb_func 994 HAL_SPI_Init: 995 .LVL55: 996 .LFB130: 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 997 .loc 1 315 1 is_stmt 1 view -0 998 .cfi_startproc 999 @ args = 0, pretend = 0, frame = 0 1000 @ frame_needed = 0, uses_anonymous_args = 0 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1001 .loc 1 316 3 view .LVU281 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1002 .loc 1 319 3 view .LVU282 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1003 .loc 1 319 6 is_stmt 0 view .LVU283 1004 0000 0028 cmp r0, #0 1005 0002 6FD0 beq .L88 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t frxth; 1006 .loc 1 315 1 view .LVU284 1007 0004 10B5 push {r4, lr} 1008 .cfi_def_cfa_offset 8 1009 .cfi_offset 4, -8 1010 .cfi_offset 14, -4 1011 0006 0446 mov r4, r0 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_MODE(hspi->Init.Mode)); 1012 .loc 1 325 3 is_stmt 1 view .LVU285 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION(hspi->Init.Direction)); 1013 .loc 1 326 3 view .LVU286 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DATASIZE(hspi->Init.DataSize)); 1014 .loc 1 327 3 view .LVU287 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSS(hspi->Init.NSS)); 1015 .loc 1 328 3 view .LVU288 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_NSSP(hspi->Init.NSSPMode)); 1016 .loc 1 329 3 view .LVU289 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_BAUDRATE_PRESCALER(hspi->Init.BaudRatePrescaler)); 1017 .loc 1 330 3 view .LVU290 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_FIRST_BIT(hspi->Init.FirstBit)); 1018 .loc 1 331 3 view .LVU291 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_TIMODE(hspi->Init.TIMode)); 1019 .loc 1 332 3 view .LVU292 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.TIMode == SPI_TIMODE_DISABLE) 1020 .loc 1 333 3 view .LVU293 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1021 .loc 1 334 3 view .LVU294 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1022 .loc 1 334 17 is_stmt 0 view .LVU295 1023 0008 436A ldr r3, [r0, #36] 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1024 .loc 1 334 6 view .LVU296 1025 000a 33B9 cbnz r3, .L83 ARM GAS /tmp/ccZ0BHQJ.s page 99 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_CPHA(hspi->Init.CLKPhase)); 1026 .loc 1 336 5 is_stmt 1 view .LVU297 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1027 .loc 1 337 5 view .LVU298 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1028 .loc 1 339 5 view .LVU299 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1029 .loc 1 339 19 is_stmt 0 view .LVU300 1030 000c 4368 ldr r3, [r0, #4] 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1031 .loc 1 339 8 view .LVU301 1032 000e B3F5827F cmp r3, #260 1033 0012 05D0 beq .L84 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1034 .loc 1 346 7 is_stmt 1 view .LVU302 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1035 .loc 1 346 36 is_stmt 0 view .LVU303 1036 0014 0023 movs r3, #0 1037 0016 C361 str r3, [r0, #28] 1038 0018 02E0 b .L84 1039 .L83: 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1040 .loc 1 351 5 is_stmt 1 view .LVU304 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 1041 .loc 1 354 5 view .LVU305 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 1042 .loc 1 354 28 is_stmt 0 view .LVU306 1043 001a 0023 movs r3, #0 1044 001c 0361 str r3, [r0, #16] 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1045 .loc 1 355 5 is_stmt 1 view .LVU307 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1046 .loc 1 355 28 is_stmt 0 view .LVU308 1047 001e 4361 str r3, [r0, #20] 1048 .L84: 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1049 .loc 1 365 3 is_stmt 1 view .LVU309 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1050 .loc 1 365 29 is_stmt 0 view .LVU310 1051 0020 0023 movs r3, #0 1052 0022 A362 str r3, [r4, #40] 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1053 .loc 1 368 3 is_stmt 1 view .LVU311 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1054 .loc 1 368 11 is_stmt 0 view .LVU312 1055 0024 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1056 .loc 1 368 6 view .LVU313 1057 0028 002B cmp r3, #0 1058 002a 52D0 beq .L94 1059 .LVL56: 1060 .L85: 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1061 .loc 1 397 3 is_stmt 1 view .LVU314 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1062 .loc 1 397 15 is_stmt 0 view .LVU315 1063 002c 0223 movs r3, #2 ARM GAS /tmp/ccZ0BHQJ.s page 100 1064 002e 84F85D30 strb r3, [r4, #93] 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1065 .loc 1 400 3 is_stmt 1 view .LVU316 1066 0032 2268 ldr r2, [r4] 1067 0034 1368 ldr r3, [r2] 1068 0036 23F04003 bic r3, r3, #64 1069 003a 1360 str r3, [r2] 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1070 .loc 1 403 3 view .LVU317 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1071 .loc 1 403 17 is_stmt 0 view .LVU318 1072 003c E368 ldr r3, [r4, #12] 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1073 .loc 1 403 6 view .LVU319 1074 003e B3F5E06F cmp r3, #1792 1075 0042 4CD9 bls .L89 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1076 .loc 1 405 11 view .LVU320 1077 0044 0022 movs r2, #0 1078 .L86: 1079 .LVL57: 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1080 .loc 1 413 3 is_stmt 1 view .LVU321 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1081 .loc 1 413 6 is_stmt 0 view .LVU322 1082 0046 B3F5706F cmp r3, #3840 1083 004a 04D0 beq .L87 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1084 .loc 1 413 51 discriminator 1 view .LVU323 1085 004c B3F5E06F cmp r3, #1792 1086 0050 01D0 beq .L87 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1087 .loc 1 416 5 is_stmt 1 view .LVU324 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1088 .loc 1 416 31 is_stmt 0 view .LVU325 1089 0052 0023 movs r3, #0 1090 0054 A362 str r3, [r4, #40] 1091 .L87: 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.Direction & (SPI_CR1_RXONLY | SPI_CR1_BIDIMODE)) | 1092 .loc 1 422 3 is_stmt 1 view .LVU326 1093 0056 6368 ldr r3, [r4, #4] 1094 0058 03F48273 and r3, r3, #260 1095 005c A168 ldr r1, [r4, #8] 1096 005e 01F40441 and r1, r1, #33792 1097 0062 0B43 orrs r3, r3, r1 1098 0064 2169 ldr r1, [r4, #16] 1099 0066 01F00201 and r1, r1, #2 1100 006a 0B43 orrs r3, r3, r1 1101 006c 6169 ldr r1, [r4, #20] 1102 006e 01F00101 and r1, r1, #1 1103 0072 0B43 orrs r3, r3, r1 1104 0074 A169 ldr r1, [r4, #24] 1105 0076 01F40071 and r1, r1, #512 1106 007a 0B43 orrs r3, r3, r1 1107 007c E169 ldr r1, [r4, #28] 1108 007e 01F03801 and r1, r1, #56 1109 0082 0B43 orrs r3, r3, r1 ARM GAS /tmp/ccZ0BHQJ.s page 101 1110 0084 216A ldr r1, [r4, #32] 1111 0086 01F08001 and r1, r1, #128 1112 008a 0B43 orrs r3, r3, r1 1113 008c A16A ldr r1, [r4, #40] 1114 008e 01F40051 and r1, r1, #8192 1115 0092 2068 ldr r0, [r4] 1116 0094 0B43 orrs r3, r3, r1 1117 0096 0360 str r3, [r0] 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (hspi->Init.TIMode & SPI_CR2_FRF) | 1118 .loc 1 457 3 view .LVU327 1119 0098 638B ldrh r3, [r4, #26] 1120 009a 03F00403 and r3, r3, #4 1121 009e 616A ldr r1, [r4, #36] 1122 00a0 01F01001 and r1, r1, #16 1123 00a4 0B43 orrs r3, r3, r1 1124 00a6 616B ldr r1, [r4, #52] 1125 00a8 01F00801 and r1, r1, #8 1126 00ac 0B43 orrs r3, r3, r1 1127 00ae E168 ldr r1, [r4, #12] 1128 00b0 01F47061 and r1, r1, #3840 1129 00b4 0B43 orrs r3, r3, r1 1130 00b6 2168 ldr r1, [r4] 1131 00b8 1343 orrs r3, r3, r2 1132 00ba 4B60 str r3, [r1, #4] 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* SPI_I2SCFGR_I2SMOD */ 1133 .loc 1 474 3 view .LVU328 1134 00bc 2268 ldr r2, [r4] 1135 .LVL58: 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* SPI_I2SCFGR_I2SMOD */ 1136 .loc 1 474 3 is_stmt 0 view .LVU329 1137 00be D369 ldr r3, [r2, #28] 1138 00c0 23F40063 bic r3, r3, #2048 1139 00c4 D361 str r3, [r2, #28] 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1140 .loc 1 477 3 is_stmt 1 view .LVU330 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1141 .loc 1 477 19 is_stmt 0 view .LVU331 1142 00c6 0020 movs r0, #0 1143 00c8 2066 str r0, [r4, #96] 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1144 .loc 1 478 3 is_stmt 1 view .LVU332 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1145 .loc 1 478 19 is_stmt 0 view .LVU333 1146 00ca 0123 movs r3, #1 1147 00cc 84F85D30 strb r3, [r4, #93] 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1148 .loc 1 480 3 is_stmt 1 view .LVU334 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1149 .loc 1 481 1 is_stmt 0 view .LVU335 1150 00d0 10BD pop {r4, pc} 1151 .LVL59: 1152 .L94: 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1153 .loc 1 371 5 is_stmt 1 view .LVU336 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1154 .loc 1 371 16 is_stmt 0 view .LVU337 1155 00d2 84F85C30 strb r3, [r4, #92] ARM GAS /tmp/ccZ0BHQJ.s page 102 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1156 .loc 1 393 5 is_stmt 1 view .LVU338 1157 00d6 2046 mov r0, r4 1158 .LVL60: 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1159 .loc 1 393 5 is_stmt 0 view .LVU339 1160 00d8 FFF7FEFF bl HAL_SPI_MspInit 1161 .LVL61: 1162 00dc A6E7 b .L85 1163 .L89: 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1164 .loc 1 409 11 view .LVU340 1165 00de 4FF48052 mov r2, #4096 1166 00e2 B0E7 b .L86 1167 .LVL62: 1168 .L88: 1169 .cfi_def_cfa_offset 0 1170 .cfi_restore 4 1171 .cfi_restore 14 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1172 .loc 1 321 12 view .LVU341 1173 00e4 0120 movs r0, #1 1174 .LVL63: 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1175 .loc 1 481 1 view .LVU342 1176 00e6 7047 bx lr 1177 .cfi_endproc 1178 .LFE130: 1180 .section .text.HAL_SPI_MspDeInit,"ax",%progbits 1181 .align 1 1182 .weak HAL_SPI_MspDeInit 1183 .syntax unified 1184 .thumb 1185 .thumb_func 1187 HAL_SPI_MspDeInit: 1188 .LVL64: 1189 .LFB133: 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 1190 .loc 1 550 1 is_stmt 1 view -0 1191 .cfi_startproc 1192 @ args = 0, pretend = 0, frame = 0 1193 @ frame_needed = 0, uses_anonymous_args = 0 1194 @ link register save eliminated. 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1195 .loc 1 552 3 view .LVU344 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1196 .loc 1 557 1 is_stmt 0 view .LVU345 1197 0000 7047 bx lr 1198 .cfi_endproc 1199 .LFE133: 1201 .section .text.HAL_SPI_DeInit,"ax",%progbits 1202 .align 1 1203 .global HAL_SPI_DeInit 1204 .syntax unified 1205 .thumb 1206 .thumb_func 1208 HAL_SPI_DeInit: ARM GAS /tmp/ccZ0BHQJ.s page 103 1209 .LVL65: 1210 .LFB131: 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 1211 .loc 1 490 1 is_stmt 1 view -0 1212 .cfi_startproc 1213 @ args = 0, pretend = 0, frame = 0 1214 @ frame_needed = 0, uses_anonymous_args = 0 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1215 .loc 1 492 3 view .LVU347 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1216 .loc 1 492 6 is_stmt 0 view .LVU348 1217 0000 90B1 cbz r0, .L98 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the SPI handle allocation */ 1218 .loc 1 490 1 view .LVU349 1219 0002 10B5 push {r4, lr} 1220 .cfi_def_cfa_offset 8 1221 .cfi_offset 4, -8 1222 .cfi_offset 14, -4 1223 0004 0446 mov r4, r0 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1224 .loc 1 498 3 is_stmt 1 view .LVU350 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1225 .loc 1 500 3 view .LVU351 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1226 .loc 1 500 15 is_stmt 0 view .LVU352 1227 0006 0223 movs r3, #2 1228 0008 80F85D30 strb r3, [r0, #93] 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1229 .loc 1 503 3 is_stmt 1 view .LVU353 1230 000c 0268 ldr r2, [r0] 1231 000e 1368 ldr r3, [r2] 1232 0010 23F04003 bic r3, r3, #64 1233 0014 1360 str r3, [r2] 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 1234 .loc 1 515 3 view .LVU354 1235 0016 FFF7FEFF bl HAL_SPI_MspDeInit 1236 .LVL66: 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 1237 .loc 1 518 3 view .LVU355 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 1238 .loc 1 518 19 is_stmt 0 view .LVU356 1239 001a 0020 movs r0, #0 1240 001c 2066 str r0, [r4, #96] 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1241 .loc 1 519 3 is_stmt 1 view .LVU357 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1242 .loc 1 519 15 is_stmt 0 view .LVU358 1243 001e 84F85D00 strb r0, [r4, #93] 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1244 .loc 1 522 3 is_stmt 1 view .LVU359 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1245 .loc 1 522 3 view .LVU360 1246 0022 84F85C00 strb r0, [r4, #92] 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1247 .loc 1 522 3 view .LVU361 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1248 .loc 1 524 3 view .LVU362 ARM GAS /tmp/ccZ0BHQJ.s page 104 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1249 .loc 1 525 1 is_stmt 0 view .LVU363 1250 0026 10BD pop {r4, pc} 1251 .LVL67: 1252 .L98: 1253 .cfi_def_cfa_offset 0 1254 .cfi_restore 4 1255 .cfi_restore 14 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1256 .loc 1 494 12 view .LVU364 1257 0028 0120 movs r0, #1 1258 .LVL68: 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1259 .loc 1 525 1 view .LVU365 1260 002a 7047 bx lr 1261 .cfi_endproc 1262 .LFE131: 1264 .section .text.HAL_SPI_Transmit,"ax",%progbits 1265 .align 1 1266 .global HAL_SPI_Transmit 1267 .syntax unified 1268 .thumb 1269 .thumb_func 1271 HAL_SPI_Transmit: 1272 .LVL69: 1273 .LFB134: 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1274 .loc 1 822 1 is_stmt 1 view -0 1275 .cfi_startproc 1276 @ args = 0, pretend = 0, frame = 8 1277 @ frame_needed = 0, uses_anonymous_args = 0 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1278 .loc 1 822 1 is_stmt 0 view .LVU367 1279 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 1280 .cfi_def_cfa_offset 28 1281 .cfi_offset 4, -28 1282 .cfi_offset 5, -24 1283 .cfi_offset 6, -20 1284 .cfi_offset 7, -16 1285 .cfi_offset 8, -12 1286 .cfi_offset 9, -8 1287 .cfi_offset 14, -4 1288 0004 83B0 sub sp, sp, #12 1289 .cfi_def_cfa_offset 40 1290 0006 1D46 mov r5, r3 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1291 .loc 1 823 3 is_stmt 1 view .LVU368 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1292 .loc 1 824 3 view .LVU369 1293 .LVL70: 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1294 .loc 1 825 3 view .LVU370 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1295 .loc 1 828 3 view .LVU371 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1296 .loc 1 831 3 view .LVU372 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 105 1297 .loc 1 831 3 view .LVU373 1298 0008 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 1299 .LVL71: 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1300 .loc 1 831 3 is_stmt 0 view .LVU374 1301 000c 012B cmp r3, #1 1302 000e 00F0F480 beq .L130 1303 0012 0446 mov r4, r0 1304 0014 8846 mov r8, r1 1305 0016 9146 mov r9, r2 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1306 .loc 1 831 3 is_stmt 1 discriminator 2 view .LVU375 1307 0018 0123 movs r3, #1 1308 001a 80F85C30 strb r3, [r0, #92] 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1309 .loc 1 831 3 discriminator 2 view .LVU376 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1310 .loc 1 834 3 view .LVU377 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1311 .loc 1 834 15 is_stmt 0 view .LVU378 1312 001e FFF7FEFF bl HAL_GetTick 1313 .LVL72: 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1314 .loc 1 834 15 view .LVU379 1315 0022 0746 mov r7, r0 1316 .LVL73: 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1317 .loc 1 835 3 is_stmt 1 view .LVU380 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1318 .loc 1 837 3 view .LVU381 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1319 .loc 1 837 11 is_stmt 0 view .LVU382 1320 0024 94F85D60 ldrb r6, [r4, #93] @ zero_extendqisi2 1321 0028 F6B2 uxtb r6, r6 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1322 .loc 1 837 6 view .LVU383 1323 002a 012E cmp r6, #1 1324 002c 40F0DD80 bne .L131 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1325 .loc 1 843 3 is_stmt 1 view .LVU384 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1326 .loc 1 843 6 is_stmt 0 view .LVU385 1327 0030 B8F1000F cmp r8, #0 1328 0034 00F0DA80 beq .L105 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1329 .loc 1 843 23 discriminator 1 view .LVU386 1330 0038 B9F1000F cmp r9, #0 1331 003c 00F0D680 beq .L105 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1332 .loc 1 850 3 is_stmt 1 view .LVU387 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1333 .loc 1 850 21 is_stmt 0 view .LVU388 1334 0040 0323 movs r3, #3 1335 0042 84F85D30 strb r3, [r4, #93] 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1336 .loc 1 851 3 is_stmt 1 view .LVU389 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; ARM GAS /tmp/ccZ0BHQJ.s page 106 1337 .loc 1 851 21 is_stmt 0 view .LVU390 1338 0046 0023 movs r3, #0 1339 0048 2366 str r3, [r4, #96] 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1340 .loc 1 852 3 is_stmt 1 view .LVU391 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1341 .loc 1 852 21 is_stmt 0 view .LVU392 1342 004a C4F83880 str r8, [r4, #56] 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1343 .loc 1 853 3 is_stmt 1 view .LVU393 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1344 .loc 1 853 21 is_stmt 0 view .LVU394 1345 004e A4F83C90 strh r9, [r4, #60] @ movhi 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1346 .loc 1 854 3 is_stmt 1 view .LVU395 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1347 .loc 1 854 21 is_stmt 0 view .LVU396 1348 0052 A4F83E90 strh r9, [r4, #62] @ movhi 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1349 .loc 1 857 3 is_stmt 1 view .LVU397 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1350 .loc 1 857 21 is_stmt 0 view .LVU398 1351 0056 2364 str r3, [r4, #64] 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1352 .loc 1 858 3 is_stmt 1 view .LVU399 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1353 .loc 1 858 21 is_stmt 0 view .LVU400 1354 0058 A4F84430 strh r3, [r4, #68] @ movhi 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1355 .loc 1 859 3 is_stmt 1 view .LVU401 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1356 .loc 1 859 21 is_stmt 0 view .LVU402 1357 005c A4F84630 strh r3, [r4, #70] @ movhi 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1358 .loc 1 860 3 is_stmt 1 view .LVU403 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1359 .loc 1 860 21 is_stmt 0 view .LVU404 1360 0060 2365 str r3, [r4, #80] 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1361 .loc 1 861 3 is_stmt 1 view .LVU405 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1362 .loc 1 861 21 is_stmt 0 view .LVU406 1363 0062 E364 str r3, [r4, #76] 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1364 .loc 1 864 3 is_stmt 1 view .LVU407 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1365 .loc 1 864 17 is_stmt 0 view .LVU408 1366 0064 A368 ldr r3, [r4, #8] 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1367 .loc 1 864 6 view .LVU409 1368 0066 B3F5004F cmp r3, #32768 1369 006a 1ED0 beq .L133 1370 .L106: 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1371 .loc 1 880 3 is_stmt 1 view .LVU410 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1372 .loc 1 880 12 is_stmt 0 view .LVU411 ARM GAS /tmp/ccZ0BHQJ.s page 107 1373 006c 2368 ldr r3, [r4] 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1374 .loc 1 880 22 view .LVU412 1375 006e 1A68 ldr r2, [r3] 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1376 .loc 1 880 6 view .LVU413 1377 0070 12F0400F tst r2, #64 1378 0074 03D1 bne .L107 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1379 .loc 1 883 5 is_stmt 1 view .LVU414 1380 0076 1A68 ldr r2, [r3] 1381 0078 42F04002 orr r2, r2, #64 1382 007c 1A60 str r2, [r3] 1383 .L107: 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1384 .loc 1 887 3 view .LVU415 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1385 .loc 1 887 17 is_stmt 0 view .LVU416 1386 007e E368 ldr r3, [r4, #12] 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1387 .loc 1 887 6 view .LVU417 1388 0080 B3F5E06F cmp r3, #1792 1389 0084 44D9 bls .L108 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1390 .loc 1 889 5 is_stmt 1 view .LVU418 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1391 .loc 1 889 20 is_stmt 0 view .LVU419 1392 0086 6368 ldr r3, [r4, #4] 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1393 .loc 1 889 8 view .LVU420 1394 0088 13B1 cbz r3, .L109 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1395 .loc 1 889 45 discriminator 1 view .LVU421 1396 008a B9F1010F cmp r9, #1 1397 008e 20D1 bne .L111 1398 .L109: 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1399 .loc 1 891 7 is_stmt 1 view .LVU422 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1400 .loc 1 891 46 is_stmt 0 view .LVU423 1401 0090 A26B ldr r2, [r4, #56] 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1402 .loc 1 891 11 view .LVU424 1403 0092 2368 ldr r3, [r4] 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1404 .loc 1 891 28 view .LVU425 1405 0094 1288 ldrh r2, [r2] 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1406 .loc 1 891 26 view .LVU426 1407 0096 DA60 str r2, [r3, #12] 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1408 .loc 1 892 7 is_stmt 1 view .LVU427 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1409 .loc 1 892 11 is_stmt 0 view .LVU428 1410 0098 A36B ldr r3, [r4, #56] 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1411 .loc 1 892 24 view .LVU429 ARM GAS /tmp/ccZ0BHQJ.s page 108 1412 009a 0233 adds r3, r3, #2 1413 009c A363 str r3, [r4, #56] 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1414 .loc 1 893 7 is_stmt 1 view .LVU430 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1415 .loc 1 893 11 is_stmt 0 view .LVU431 1416 009e E38F ldrh r3, [r4, #62] 1417 00a0 9BB2 uxth r3, r3 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1418 .loc 1 893 24 view .LVU432 1419 00a2 013B subs r3, r3, #1 1420 00a4 9BB2 uxth r3, r3 1421 00a6 E387 strh r3, [r4, #62] @ movhi 1422 00a8 13E0 b .L111 1423 .L133: 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1424 .loc 1 867 5 is_stmt 1 view .LVU433 1425 00aa 2268 ldr r2, [r4] 1426 00ac 1368 ldr r3, [r2] 1427 00ae 23F04003 bic r3, r3, #64 1428 00b2 1360 str r3, [r2] 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1429 .loc 1 868 5 view .LVU434 1430 00b4 2268 ldr r2, [r4] 1431 00b6 1368 ldr r3, [r2] 1432 00b8 43F48043 orr r3, r3, #16384 1433 00bc 1360 str r3, [r2] 1434 00be D5E7 b .L106 1435 .LVL74: 1436 .L112: 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1437 .loc 1 908 9 view .LVU435 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1438 .loc 1 908 16 is_stmt 0 view .LVU436 1439 00c0 FFF7FEFF bl HAL_GetTick 1440 .LVL75: 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1441 .loc 1 908 30 discriminator 1 view .LVU437 1442 00c4 C01B subs r0, r0, r7 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1443 .loc 1 908 12 discriminator 1 view .LVU438 1444 00c6 A842 cmp r0, r5 1445 00c8 02D3 bcc .L114 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1446 .loc 1 908 56 discriminator 1 view .LVU439 1447 00ca B5F1FF3F cmp r5, #-1 1448 00ce 1AD1 bne .L115 1449 .L114: 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1450 .loc 1 908 87 discriminator 3 view .LVU440 1451 00d0 CDB1 cbz r5, .L115 1452 .L111: 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1453 .loc 1 896 30 is_stmt 1 view .LVU441 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1454 .loc 1 896 16 is_stmt 0 view .LVU442 1455 00d2 E38F ldrh r3, [r4, #62] ARM GAS /tmp/ccZ0BHQJ.s page 109 1456 00d4 9BB2 uxth r3, r3 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1457 .loc 1 896 30 view .LVU443 1458 00d6 002B cmp r3, #0 1459 00d8 6FD0 beq .L117 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1460 .loc 1 899 7 is_stmt 1 view .LVU444 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1461 .loc 1 899 11 is_stmt 0 view .LVU445 1462 00da 2368 ldr r3, [r4] 1463 00dc 9A68 ldr r2, [r3, #8] 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1464 .loc 1 899 10 view .LVU446 1465 00de 12F0020F tst r2, #2 1466 00e2 EDD0 beq .L112 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1467 .loc 1 901 9 is_stmt 1 view .LVU447 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1468 .loc 1 901 48 is_stmt 0 view .LVU448 1469 00e4 A26B ldr r2, [r4, #56] 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1470 .loc 1 901 30 view .LVU449 1471 00e6 1288 ldrh r2, [r2] 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1472 .loc 1 901 28 view .LVU450 1473 00e8 DA60 str r2, [r3, #12] 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1474 .loc 1 902 9 is_stmt 1 view .LVU451 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1475 .loc 1 902 13 is_stmt 0 view .LVU452 1476 00ea A36B ldr r3, [r4, #56] 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1477 .loc 1 902 26 view .LVU453 1478 00ec 0233 adds r3, r3, #2 1479 00ee A363 str r3, [r4, #56] 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1480 .loc 1 903 9 is_stmt 1 view .LVU454 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1481 .loc 1 903 13 is_stmt 0 view .LVU455 1482 00f0 B4F83EC0 ldrh ip, [r4, #62] 1483 00f4 1FFA8CFC uxth ip, ip 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1484 .loc 1 903 26 view .LVU456 1485 00f8 0CF1FF3C add ip, ip, #-1 1486 00fc 1FFA8CFC uxth ip, ip 1487 0100 A4F83EC0 strh ip, [r4, #62] @ movhi 1488 0104 E5E7 b .L111 1489 .L115: 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1490 .loc 1 910 11 is_stmt 1 view .LVU457 1491 .LVL76: 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1492 .loc 1 911 11 view .LVU458 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1493 .loc 1 911 23 is_stmt 0 view .LVU459 1494 0106 0123 movs r3, #1 1495 0108 84F85D30 strb r3, [r4, #93] ARM GAS /tmp/ccZ0BHQJ.s page 110 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1496 .loc 1 912 11 is_stmt 1 view .LVU460 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1497 .loc 1 910 21 is_stmt 0 view .LVU461 1498 010c 0326 movs r6, #3 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1499 .loc 1 912 11 view .LVU462 1500 010e 6DE0 b .L105 1501 .LVL77: 1502 .L108: 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1503 .loc 1 920 5 is_stmt 1 view .LVU463 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1504 .loc 1 920 20 is_stmt 0 view .LVU464 1505 0110 6368 ldr r3, [r4, #4] 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1506 .loc 1 920 8 view .LVU465 1507 0112 13B1 cbz r3, .L118 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1508 .loc 1 920 45 discriminator 1 view .LVU466 1509 0114 B9F1010F cmp r9, #1 1510 0118 32D1 bne .L121 1511 .L118: 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1512 .loc 1 922 7 is_stmt 1 view .LVU467 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1513 .loc 1 922 15 is_stmt 0 view .LVU468 1514 011a E38F ldrh r3, [r4, #62] 1515 011c 9BB2 uxth r3, r3 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1516 .loc 1 922 10 view .LVU469 1517 011e 012B cmp r3, #1 1518 0120 0CD9 bls .L120 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1519 .loc 1 925 9 is_stmt 1 view .LVU470 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1520 .loc 1 925 48 is_stmt 0 view .LVU471 1521 0122 A26B ldr r2, [r4, #56] 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1522 .loc 1 925 13 view .LVU472 1523 0124 2368 ldr r3, [r4] 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1524 .loc 1 925 30 view .LVU473 1525 0126 1288 ldrh r2, [r2] 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1526 .loc 1 925 28 view .LVU474 1527 0128 DA60 str r2, [r3, #12] 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1528 .loc 1 926 9 is_stmt 1 view .LVU475 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1529 .loc 1 926 13 is_stmt 0 view .LVU476 1530 012a A36B ldr r3, [r4, #56] 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1531 .loc 1 926 26 view .LVU477 1532 012c 0233 adds r3, r3, #2 1533 012e A363 str r3, [r4, #56] 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 111 1534 .loc 1 927 9 is_stmt 1 view .LVU478 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1535 .loc 1 927 13 is_stmt 0 view .LVU479 1536 0130 E38F ldrh r3, [r4, #62] 1537 0132 9BB2 uxth r3, r3 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1538 .loc 1 927 27 view .LVU480 1539 0134 023B subs r3, r3, #2 1540 0136 9BB2 uxth r3, r3 1541 0138 E387 strh r3, [r4, #62] @ movhi 1542 013a 21E0 b .L121 1543 .L120: 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1544 .loc 1 931 9 is_stmt 1 view .LVU481 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1545 .loc 1 931 56 is_stmt 0 view .LVU482 1546 013c A26B ldr r2, [r4, #56] 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1547 .loc 1 931 32 view .LVU483 1548 013e 2368 ldr r3, [r4] 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1549 .loc 1 931 51 view .LVU484 1550 0140 1278 ldrb r2, [r2] @ zero_extendqisi2 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 1551 .loc 1 931 48 view .LVU485 1552 0142 1A73 strb r2, [r3, #12] 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1553 .loc 1 932 9 is_stmt 1 view .LVU486 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1554 .loc 1 932 13 is_stmt 0 view .LVU487 1555 0144 A36B ldr r3, [r4, #56] 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1556 .loc 1 932 26 view .LVU488 1557 0146 0133 adds r3, r3, #1 1558 0148 A363 str r3, [r4, #56] 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1559 .loc 1 933 9 is_stmt 1 view .LVU489 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1560 .loc 1 933 13 is_stmt 0 view .LVU490 1561 014a E38F ldrh r3, [r4, #62] 1562 014c 9BB2 uxth r3, r3 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1563 .loc 1 933 26 view .LVU491 1564 014e 013B subs r3, r3, #1 1565 0150 9BB2 uxth r3, r3 1566 0152 E387 strh r3, [r4, #62] @ movhi 1567 0154 14E0 b .L121 1568 .LVL78: 1569 .L123: 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1570 .loc 1 950 11 is_stmt 1 view .LVU492 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1571 .loc 1 950 58 is_stmt 0 view .LVU493 1572 0156 A36B ldr r3, [r4, #56] 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1573 .loc 1 950 53 view .LVU494 1574 0158 1B78 ldrb r3, [r3] @ zero_extendqisi2 ARM GAS /tmp/ccZ0BHQJ.s page 112 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1575 .loc 1 950 50 view .LVU495 1576 015a 1373 strb r3, [r2, #12] 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1577 .loc 1 951 11 is_stmt 1 view .LVU496 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1578 .loc 1 951 15 is_stmt 0 view .LVU497 1579 015c A36B ldr r3, [r4, #56] 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1580 .loc 1 951 27 view .LVU498 1581 015e 0133 adds r3, r3, #1 1582 0160 A363 str r3, [r4, #56] 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1583 .loc 1 952 11 is_stmt 1 view .LVU499 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1584 .loc 1 952 15 is_stmt 0 view .LVU500 1585 0162 E38F ldrh r3, [r4, #62] 1586 0164 9BB2 uxth r3, r3 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1587 .loc 1 952 28 view .LVU501 1588 0166 013B subs r3, r3, #1 1589 0168 9BB2 uxth r3, r3 1590 016a E387 strh r3, [r4, #62] @ movhi 1591 016c 08E0 b .L121 1592 .L122: 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1593 .loc 1 958 9 is_stmt 1 view .LVU502 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1594 .loc 1 958 16 is_stmt 0 view .LVU503 1595 016e FFF7FEFF bl HAL_GetTick 1596 .LVL79: 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1597 .loc 1 958 30 discriminator 1 view .LVU504 1598 0172 C01B subs r0, r0, r7 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1599 .loc 1 958 12 discriminator 1 view .LVU505 1600 0174 A842 cmp r0, r5 1601 0176 02D3 bcc .L125 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1602 .loc 1 958 56 discriminator 1 view .LVU506 1603 0178 B5F1FF3F cmp r5, #-1 1604 017c 18D1 bne .L126 1605 .L125: 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1606 .loc 1 958 87 discriminator 3 view .LVU507 1607 017e BDB1 cbz r5, .L126 1608 .L121: 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1609 .loc 1 936 30 is_stmt 1 view .LVU508 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1610 .loc 1 936 16 is_stmt 0 view .LVU509 1611 0180 E38F ldrh r3, [r4, #62] 1612 0182 9BB2 uxth r3, r3 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1613 .loc 1 936 30 view .LVU510 1614 0184 CBB1 cbz r3, .L117 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 113 1615 .loc 1 939 7 is_stmt 1 view .LVU511 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1616 .loc 1 939 11 is_stmt 0 view .LVU512 1617 0186 2268 ldr r2, [r4] 1618 0188 9368 ldr r3, [r2, #8] 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1619 .loc 1 939 10 view .LVU513 1620 018a 13F0020F tst r3, #2 1621 018e EED0 beq .L122 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1622 .loc 1 941 9 is_stmt 1 view .LVU514 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1623 .loc 1 941 17 is_stmt 0 view .LVU515 1624 0190 E38F ldrh r3, [r4, #62] 1625 0192 9BB2 uxth r3, r3 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1626 .loc 1 941 12 view .LVU516 1627 0194 012B cmp r3, #1 1628 0196 DED9 bls .L123 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1629 .loc 1 944 11 is_stmt 1 view .LVU517 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1630 .loc 1 944 50 is_stmt 0 view .LVU518 1631 0198 A36B ldr r3, [r4, #56] 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1632 .loc 1 944 32 view .LVU519 1633 019a 1B88 ldrh r3, [r3] 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1634 .loc 1 944 30 view .LVU520 1635 019c D360 str r3, [r2, #12] 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1636 .loc 1 945 11 is_stmt 1 view .LVU521 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1637 .loc 1 945 15 is_stmt 0 view .LVU522 1638 019e A36B ldr r3, [r4, #56] 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1639 .loc 1 945 28 view .LVU523 1640 01a0 0233 adds r3, r3, #2 1641 01a2 A363 str r3, [r4, #56] 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1642 .loc 1 946 11 is_stmt 1 view .LVU524 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1643 .loc 1 946 15 is_stmt 0 view .LVU525 1644 01a4 E38F ldrh r3, [r4, #62] 1645 01a6 9BB2 uxth r3, r3 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1646 .loc 1 946 29 view .LVU526 1647 01a8 023B subs r3, r3, #2 1648 01aa 9BB2 uxth r3, r3 1649 01ac E387 strh r3, [r4, #62] @ movhi 1650 01ae E7E7 b .L121 1651 .L126: 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1652 .loc 1 960 11 is_stmt 1 view .LVU527 1653 .LVL80: 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1654 .loc 1 961 11 view .LVU528 ARM GAS /tmp/ccZ0BHQJ.s page 114 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1655 .loc 1 961 23 is_stmt 0 view .LVU529 1656 01b0 0123 movs r3, #1 1657 01b2 84F85D30 strb r3, [r4, #93] 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1658 .loc 1 962 11 is_stmt 1 view .LVU530 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1659 .loc 1 960 21 is_stmt 0 view .LVU531 1660 01b6 0326 movs r6, #3 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1661 .loc 1 962 11 view .LVU532 1662 01b8 18E0 b .L105 1663 .LVL81: 1664 .L117: 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1665 .loc 1 976 3 is_stmt 1 view .LVU533 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1666 .loc 1 976 7 is_stmt 0 view .LVU534 1667 01ba 3A46 mov r2, r7 1668 01bc 2946 mov r1, r5 1669 01be 2046 mov r0, r4 1670 01c0 FFF7FEFF bl SPI_EndRxTxTransaction 1671 .LVL82: 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1672 .loc 1 976 6 discriminator 1 view .LVU535 1673 01c4 08B1 cbz r0, .L128 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1674 .loc 1 978 5 is_stmt 1 view .LVU536 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1675 .loc 1 978 21 is_stmt 0 view .LVU537 1676 01c6 2023 movs r3, #32 1677 01c8 2366 str r3, [r4, #96] 1678 .L128: 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1679 .loc 1 982 3 is_stmt 1 view .LVU538 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1680 .loc 1 982 17 is_stmt 0 view .LVU539 1681 01ca A368 ldr r3, [r4, #8] 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1682 .loc 1 982 6 view .LVU540 1683 01cc 33B9 cbnz r3, .L129 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1684 .loc 1 984 5 is_stmt 1 view .LVU541 1685 .LBB2: 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1686 .loc 1 984 5 view .LVU542 1687 01ce 0193 str r3, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1688 .loc 1 984 5 view .LVU543 1689 01d0 2368 ldr r3, [r4] 1690 01d2 DA68 ldr r2, [r3, #12] 1691 01d4 0192 str r2, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1692 .loc 1 984 5 view .LVU544 1693 01d6 9B68 ldr r3, [r3, #8] 1694 01d8 0193 str r3, [sp, #4] 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 115 1695 .loc 1 984 5 view .LVU545 1696 01da 019B ldr r3, [sp, #4] 1697 .L129: 1698 .LBE2: 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1699 .loc 1 984 5 discriminator 1 view .LVU546 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1700 .loc 1 987 3 view .LVU547 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1701 .loc 1 987 11 is_stmt 0 view .LVU548 1702 01dc 236E ldr r3, [r4, #96] 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1703 .loc 1 987 6 view .LVU549 1704 01de 2BB9 cbnz r3, .L105 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1705 .loc 1 993 5 is_stmt 1 view .LVU550 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1706 .loc 1 993 17 is_stmt 0 view .LVU551 1707 01e0 0123 movs r3, #1 1708 01e2 84F85D30 strb r3, [r4, #93] 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1709 .loc 1 824 21 view .LVU552 1710 01e6 0026 movs r6, #0 1711 01e8 00E0 b .L105 1712 .LVL83: 1713 .L131: 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1714 .loc 1 839 15 view .LVU553 1715 01ea 0226 movs r6, #2 1716 .LVL84: 1717 .L105: 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1718 .loc 1 998 3 is_stmt 1 view .LVU554 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1719 .loc 1 998 3 view .LVU555 1720 01ec 0023 movs r3, #0 1721 01ee 84F85C30 strb r3, [r4, #92] 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1722 .loc 1 998 3 view .LVU556 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1723 .loc 1 999 3 view .LVU557 1724 .LVL85: 1725 .L104: 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1726 .loc 1 1000 1 is_stmt 0 view .LVU558 1727 01f2 3046 mov r0, r6 1728 01f4 03B0 add sp, sp, #12 1729 .cfi_remember_state 1730 .cfi_def_cfa_offset 28 1731 @ sp needed 1732 01f6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 1733 .LVL86: 1734 .L130: 1735 .cfi_restore_state 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1736 .loc 1 831 3 discriminator 1 view .LVU559 1737 01fa 0226 movs r6, #2 ARM GAS /tmp/ccZ0BHQJ.s page 116 1738 01fc F9E7 b .L104 1739 .cfi_endproc 1740 .LFE134: 1742 .section .text.HAL_SPI_TransmitReceive,"ax",%progbits 1743 .align 1 1744 .global HAL_SPI_TransmitReceive 1745 .syntax unified 1746 .thumb 1747 .thumb_func 1749 HAL_SPI_TransmitReceive: 1750 .LVL87: 1751 .LFB136: 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1752 .loc 1 1258 1 is_stmt 1 view -0 1753 .cfi_startproc 1754 @ args = 4, pretend = 0, frame = 0 1755 @ frame_needed = 0, uses_anonymous_args = 0 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_TxXferCount; 1756 .loc 1 1258 1 is_stmt 0 view .LVU561 1757 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 1758 .cfi_def_cfa_offset 32 1759 .cfi_offset 3, -32 1760 .cfi_offset 4, -28 1761 .cfi_offset 5, -24 1762 .cfi_offset 6, -20 1763 .cfi_offset 7, -16 1764 .cfi_offset 8, -12 1765 .cfi_offset 9, -8 1766 .cfi_offset 14, -4 1767 0004 1F46 mov r7, r3 1768 0006 089D ldr r5, [sp, #32] 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t initial_RxXferCount; 1769 .loc 1 1259 3 is_stmt 1 view .LVU562 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1770 .loc 1 1260 3 view .LVU563 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1771 .loc 1 1261 3 view .LVU564 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 1772 .loc 1 1262 3 view .LVU565 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1773 .loc 1 1263 3 view .LVU566 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1774 .loc 1 1273 3 view .LVU567 1775 .LVL88: 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1776 .loc 1 1274 3 view .LVU568 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1777 .loc 1 1277 3 view .LVU569 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1778 .loc 1 1280 3 view .LVU570 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1779 .loc 1 1280 3 view .LVU571 1780 0008 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 1781 .LVL89: 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1782 .loc 1 1280 3 is_stmt 0 view .LVU572 1783 000c 012B cmp r3, #1 ARM GAS /tmp/ccZ0BHQJ.s page 117 1784 000e 00F06B81 beq .L163 1785 0012 0446 mov r4, r0 1786 0014 8846 mov r8, r1 1787 0016 9146 mov r9, r2 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1788 .loc 1 1280 3 is_stmt 1 discriminator 2 view .LVU573 1789 0018 0123 movs r3, #1 1790 001a 80F85C30 strb r3, [r0, #92] 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1791 .loc 1 1280 3 discriminator 2 view .LVU574 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1792 .loc 1 1283 3 view .LVU575 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1793 .loc 1 1283 15 is_stmt 0 view .LVU576 1794 001e FFF7FEFF bl HAL_GetTick 1795 .LVL90: 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1796 .loc 1 1283 15 view .LVU577 1797 0022 0646 mov r6, r0 1798 .LVL91: 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1799 .loc 1 1286 3 is_stmt 1 view .LVU578 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1800 .loc 1 1286 23 is_stmt 0 view .LVU579 1801 0024 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 1802 0028 DBB2 uxtb r3, r3 1803 .LVL92: 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1804 .loc 1 1287 3 is_stmt 1 view .LVU580 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1805 .loc 1 1287 23 is_stmt 0 view .LVU581 1806 002a 6268 ldr r2, [r4, #4] 1807 .LVL93: 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_RxXferCount = Size; 1808 .loc 1 1288 3 is_stmt 1 view .LVU582 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1809 .loc 1 1289 3 view .LVU583 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1810 .loc 1 1295 3 view .LVU584 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1811 .loc 1 1295 6 is_stmt 0 view .LVU585 1812 002c 012B cmp r3, #1 1813 002e 0AD0 beq .L136 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1814 .loc 1 1295 7 discriminator 1 view .LVU586 1815 0030 B2F5827F cmp r2, #260 1816 0034 40F04681 bne .L164 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1817 .loc 1 1296 54 view .LVU587 1818 0038 A268 ldr r2, [r4, #8] 1819 .LVL94: 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1820 .loc 1 1296 40 view .LVU588 1821 003a 002A cmp r2, #0 1822 003c 40F04881 bne .L165 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1823 .loc 1 1296 90 discriminator 1 view .LVU589 ARM GAS /tmp/ccZ0BHQJ.s page 118 1824 0040 042B cmp r3, #4 1825 0042 40F04781 bne .L166 1826 .L136: 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1827 .loc 1 1302 3 is_stmt 1 view .LVU590 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1828 .loc 1 1302 6 is_stmt 0 view .LVU591 1829 0046 B8F1000F cmp r8, #0 1830 004a 00F04581 beq .L167 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1831 .loc 1 1302 25 discriminator 1 view .LVU592 1832 004e B9F1000F cmp r9, #0 1833 0052 00F04381 beq .L168 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1834 .loc 1 1302 46 discriminator 2 view .LVU593 1835 0056 002F cmp r7, #0 1836 0058 00F04281 beq .L169 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1837 .loc 1 1309 3 is_stmt 1 view .LVU594 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1838 .loc 1 1309 11 is_stmt 0 view .LVU595 1839 005c 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 1840 .LVL95: 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1841 .loc 1 1309 11 view .LVU596 1842 0060 DBB2 uxtb r3, r3 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1843 .loc 1 1309 6 view .LVU597 1844 0062 042B cmp r3, #4 1845 0064 02D0 beq .L138 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1846 .loc 1 1311 5 is_stmt 1 view .LVU598 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1847 .loc 1 1311 17 is_stmt 0 view .LVU599 1848 0066 0523 movs r3, #5 1849 0068 84F85D30 strb r3, [r4, #93] 1850 .L138: 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1851 .loc 1 1315 3 is_stmt 1 view .LVU600 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1852 .loc 1 1315 21 is_stmt 0 view .LVU601 1853 006c 0023 movs r3, #0 1854 006e 2366 str r3, [r4, #96] 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1855 .loc 1 1316 3 is_stmt 1 view .LVU602 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1856 .loc 1 1316 21 is_stmt 0 view .LVU603 1857 0070 C4F84090 str r9, [r4, #64] 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1858 .loc 1 1317 3 is_stmt 1 view .LVU604 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1859 .loc 1 1317 21 is_stmt 0 view .LVU605 1860 0074 A4F84670 strh r7, [r4, #70] @ movhi 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1861 .loc 1 1318 3 is_stmt 1 view .LVU606 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1862 .loc 1 1318 21 is_stmt 0 view .LVU607 ARM GAS /tmp/ccZ0BHQJ.s page 119 1863 0078 A4F84470 strh r7, [r4, #68] @ movhi 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1864 .loc 1 1319 3 is_stmt 1 view .LVU608 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1865 .loc 1 1319 21 is_stmt 0 view .LVU609 1866 007c C4F83880 str r8, [r4, #56] 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1867 .loc 1 1320 3 is_stmt 1 view .LVU610 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1868 .loc 1 1320 21 is_stmt 0 view .LVU611 1869 0080 E787 strh r7, [r4, #62] @ movhi 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1870 .loc 1 1321 3 is_stmt 1 view .LVU612 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1871 .loc 1 1321 21 is_stmt 0 view .LVU613 1872 0082 A787 strh r7, [r4, #60] @ movhi 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1873 .loc 1 1324 3 is_stmt 1 view .LVU614 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1874 .loc 1 1324 21 is_stmt 0 view .LVU615 1875 0084 E364 str r3, [r4, #76] 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1876 .loc 1 1325 3 is_stmt 1 view .LVU616 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1877 .loc 1 1325 21 is_stmt 0 view .LVU617 1878 0086 2365 str r3, [r4, #80] 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1879 .loc 1 1336 3 is_stmt 1 view .LVU618 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1880 .loc 1 1336 18 is_stmt 0 view .LVU619 1881 0088 E368 ldr r3, [r4, #12] 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1882 .loc 1 1336 6 view .LVU620 1883 008a B3F5E06F cmp r3, #1792 1884 008e 01D8 bhi .L139 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1885 .loc 1 1336 49 discriminator 1 view .LVU621 1886 0090 012F cmp r7, #1 1887 0092 23D9 bls .L140 1888 .L139: 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1889 .loc 1 1339 5 is_stmt 1 view .LVU622 1890 0094 2268 ldr r2, [r4] 1891 0096 5368 ldr r3, [r2, #4] 1892 0098 23F48053 bic r3, r3, #4096 1893 009c 5360 str r3, [r2, #4] 1894 .LVL96: 1895 .L141: 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1896 .loc 1 1348 3 view .LVU623 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1897 .loc 1 1348 12 is_stmt 0 view .LVU624 1898 009e 2368 ldr r3, [r4] 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1899 .loc 1 1348 22 view .LVU625 1900 00a0 1A68 ldr r2, [r3] 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 120 1901 .loc 1 1348 6 view .LVU626 1902 00a2 12F0400F tst r2, #64 1903 00a6 03D1 bne .L142 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1904 .loc 1 1351 5 is_stmt 1 view .LVU627 1905 00a8 1A68 ldr r2, [r3] 1906 00aa 42F04002 orr r2, r2, #64 1907 00ae 1A60 str r2, [r3] 1908 .L142: 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1909 .loc 1 1355 3 view .LVU628 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1910 .loc 1 1355 17 is_stmt 0 view .LVU629 1911 00b0 E368 ldr r3, [r4, #12] 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1912 .loc 1 1355 6 view .LVU630 1913 00b2 B3F5E06F cmp r3, #1792 1914 00b6 5CD9 bls .L143 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1915 .loc 1 1357 5 is_stmt 1 view .LVU631 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1916 .loc 1 1357 20 is_stmt 0 view .LVU632 1917 00b8 6368 ldr r3, [r4, #4] 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1918 .loc 1 1357 8 view .LVU633 1919 00ba 0BB1 cbz r3, .L144 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1920 .loc 1 1357 45 discriminator 1 view .LVU634 1921 00bc 012F cmp r7, #1 1922 00be 0BD1 bne .L145 1923 .L144: 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1924 .loc 1 1359 7 is_stmt 1 view .LVU635 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1925 .loc 1 1359 46 is_stmt 0 view .LVU636 1926 00c0 A26B ldr r2, [r4, #56] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1927 .loc 1 1359 11 view .LVU637 1928 00c2 2368 ldr r3, [r4] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1929 .loc 1 1359 28 view .LVU638 1930 00c4 1288 ldrh r2, [r2] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1931 .loc 1 1359 26 view .LVU639 1932 00c6 DA60 str r2, [r3, #12] 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1933 .loc 1 1360 7 is_stmt 1 view .LVU640 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1934 .loc 1 1360 11 is_stmt 0 view .LVU641 1935 00c8 A36B ldr r3, [r4, #56] 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1936 .loc 1 1360 24 view .LVU642 1937 00ca 0233 adds r3, r3, #2 1938 00cc A363 str r3, [r4, #56] 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1939 .loc 1 1361 7 is_stmt 1 view .LVU643 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 121 1940 .loc 1 1361 11 is_stmt 0 view .LVU644 1941 00ce E38F ldrh r3, [r4, #62] 1942 00d0 9BB2 uxth r3, r3 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1943 .loc 1 1361 24 view .LVU645 1944 00d2 013B subs r3, r3, #1 1945 00d4 9BB2 uxth r3, r3 1946 00d6 E387 strh r3, [r4, #62] @ movhi 1947 .L145: 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1948 .loc 1 1395 19 view .LVU646 1949 00d8 0127 movs r7, #1 1950 .LVL97: 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1951 .loc 1 1395 19 view .LVU647 1952 00da 30E0 b .L146 1953 .LVL98: 1954 .L140: 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1955 .loc 1 1344 5 is_stmt 1 view .LVU648 1956 00dc 2268 ldr r2, [r4] 1957 00de 5368 ldr r3, [r2, #4] 1958 00e0 43F48053 orr r3, r3, #4096 1959 00e4 5360 str r3, [r2, #4] 1960 .LVL99: 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1961 .loc 1 1344 5 is_stmt 0 view .LVU649 1962 00e6 DAE7 b .L141 1963 .LVL100: 1964 .L174: 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1965 .loc 1 1368 9 is_stmt 1 view .LVU650 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1966 .loc 1 1368 48 is_stmt 0 view .LVU651 1967 00e8 A26B ldr r2, [r4, #56] 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1968 .loc 1 1368 30 view .LVU652 1969 00ea 1288 ldrh r2, [r2] 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1970 .loc 1 1368 28 view .LVU653 1971 00ec DA60 str r2, [r3, #12] 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1972 .loc 1 1369 9 is_stmt 1 view .LVU654 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1973 .loc 1 1369 13 is_stmt 0 view .LVU655 1974 00ee A36B ldr r3, [r4, #56] 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1975 .loc 1 1369 26 view .LVU656 1976 00f0 0233 adds r3, r3, #2 1977 00f2 A363 str r3, [r4, #56] 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1978 .loc 1 1370 9 is_stmt 1 view .LVU657 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1979 .loc 1 1370 13 is_stmt 0 view .LVU658 1980 00f4 E38F ldrh r3, [r4, #62] 1981 00f6 9BB2 uxth r3, r3 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ ARM GAS /tmp/ccZ0BHQJ.s page 122 1982 .loc 1 1370 26 view .LVU659 1983 00f8 013B subs r3, r3, #1 1984 00fa 9BB2 uxth r3, r3 1985 00fc E387 strh r3, [r4, #62] @ movhi 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1986 .loc 1 1372 9 is_stmt 1 view .LVU660 1987 .LVL101: 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1988 .loc 1 1372 19 is_stmt 0 view .LVU661 1989 00fe 0027 movs r7, #0 1990 .LVL102: 1991 .L147: 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1992 .loc 1 1389 7 is_stmt 1 view .LVU662 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1993 .loc 1 1389 12 is_stmt 0 view .LVU663 1994 0100 2368 ldr r3, [r4] 1995 0102 9A68 ldr r2, [r3, #8] 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1996 .loc 1 1389 10 view .LVU664 1997 0104 12F0010F tst r2, #1 1998 0108 11D0 beq .L148 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1999 .loc 1 1389 61 discriminator 1 view .LVU665 2000 010a B4F84620 ldrh r2, [r4, #70] 2001 010e 92B2 uxth r2, r2 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2002 .loc 1 1389 53 discriminator 1 view .LVU666 2003 0110 6AB1 cbz r2, .L148 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2004 .loc 1 1391 9 is_stmt 1 view .LVU667 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2005 .loc 1 1391 67 is_stmt 0 view .LVU668 2006 0112 DA68 ldr r2, [r3, #12] 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2007 .loc 1 1391 27 view .LVU669 2008 0114 236C ldr r3, [r4, #64] 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2009 .loc 1 1391 41 view .LVU670 2010 0116 1A80 strh r2, [r3] @ movhi 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2011 .loc 1 1392 9 is_stmt 1 view .LVU671 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2012 .loc 1 1392 13 is_stmt 0 view .LVU672 2013 0118 236C ldr r3, [r4, #64] 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2014 .loc 1 1392 26 view .LVU673 2015 011a 0233 adds r3, r3, #2 2016 011c 2364 str r3, [r4, #64] 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2017 .loc 1 1393 9 is_stmt 1 view .LVU674 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2018 .loc 1 1393 13 is_stmt 0 view .LVU675 2019 011e B4F84630 ldrh r3, [r4, #70] 2020 0122 9BB2 uxth r3, r3 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2021 .loc 1 1393 26 view .LVU676 ARM GAS /tmp/ccZ0BHQJ.s page 123 2022 0124 013B subs r3, r3, #1 2023 0126 9BB2 uxth r3, r3 2024 0128 A4F84630 strh r3, [r4, #70] @ movhi 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2025 .loc 1 1395 9 is_stmt 1 view .LVU677 2026 .LVL103: 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2027 .loc 1 1395 19 is_stmt 0 view .LVU678 2028 012c 0127 movs r7, #1 2029 .LVL104: 2030 .L148: 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2031 .loc 1 1397 7 is_stmt 1 view .LVU679 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2032 .loc 1 1397 13 is_stmt 0 view .LVU680 2033 012e FFF7FEFF bl HAL_GetTick 2034 .LVL105: 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2035 .loc 1 1397 27 discriminator 1 view .LVU681 2036 0132 831B subs r3, r0, r6 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2037 .loc 1 1397 10 discriminator 1 view .LVU682 2038 0134 AB42 cmp r3, r5 2039 0136 02D3 bcc .L146 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2040 .loc 1 1397 53 discriminator 1 view .LVU683 2041 0138 B5F1FF3F cmp r5, #-1 2042 013c 14D1 bne .L173 2043 .LVL106: 2044 .L146: 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2045 .loc 1 1363 37 is_stmt 1 view .LVU684 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2046 .loc 1 1363 17 is_stmt 0 view .LVU685 2047 013e E38F ldrh r3, [r4, #62] 2048 0140 9BB2 uxth r3, r3 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2049 .loc 1 1363 37 view .LVU686 2050 0142 2BB9 cbnz r3, .L149 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2051 .loc 1 1363 45 discriminator 1 view .LVU687 2052 0144 B4F84630 ldrh r3, [r4, #70] 2053 0148 9BB2 uxth r3, r3 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2054 .loc 1 1363 37 discriminator 1 view .LVU688 2055 014a 002B cmp r3, #0 2056 014c 00F0AB80 beq .L150 2057 .L149: 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2058 .loc 1 1366 7 is_stmt 1 view .LVU689 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2059 .loc 1 1366 12 is_stmt 0 view .LVU690 2060 0150 2368 ldr r3, [r4] 2061 0152 9A68 ldr r2, [r3, #8] 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2062 .loc 1 1366 10 view .LVU691 2063 0154 12F0020F tst r2, #2 ARM GAS /tmp/ccZ0BHQJ.s page 124 2064 0158 D2D0 beq .L147 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2065 .loc 1 1366 60 discriminator 1 view .LVU692 2066 015a E28F ldrh r2, [r4, #62] 2067 015c 92B2 uxth r2, r2 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2068 .loc 1 1366 52 discriminator 1 view .LVU693 2069 015e 002A cmp r2, #0 2070 0160 CED0 beq .L147 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2071 .loc 1 1366 80 discriminator 2 view .LVU694 2072 0162 002F cmp r7, #0 2073 0164 CCD0 beq .L147 2074 0166 BFE7 b .L174 2075 .L173: 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2076 .loc 1 1399 9 is_stmt 1 view .LVU695 2077 .LVL107: 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2078 .loc 1 1400 9 view .LVU696 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2079 .loc 1 1400 21 is_stmt 0 view .LVU697 2080 0168 0123 movs r3, #1 2081 016a 84F85D30 strb r3, [r4, #93] 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2082 .loc 1 1401 9 is_stmt 1 view .LVU698 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2083 .loc 1 1399 19 is_stmt 0 view .LVU699 2084 016e 0320 movs r0, #3 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2085 .loc 1 1401 9 view .LVU700 2086 0170 A9E0 b .L137 2087 .LVL108: 2088 .L143: 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2089 .loc 1 1408 5 is_stmt 1 view .LVU701 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2090 .loc 1 1408 20 is_stmt 0 view .LVU702 2091 0172 6368 ldr r3, [r4, #4] 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2092 .loc 1 1408 8 view .LVU703 2093 0174 0BB1 cbz r3, .L151 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2094 .loc 1 1408 45 discriminator 1 view .LVU704 2095 0176 012F cmp r7, #1 2096 0178 0FD1 bne .L152 2097 .L151: 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2098 .loc 1 1410 7 is_stmt 1 view .LVU705 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2099 .loc 1 1410 15 is_stmt 0 view .LVU706 2100 017a E38F ldrh r3, [r4, #62] 2101 017c 9BB2 uxth r3, r3 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2102 .loc 1 1410 10 view .LVU707 2103 017e 012B cmp r3, #1 2104 0180 0DD9 bls .L153 ARM GAS /tmp/ccZ0BHQJ.s page 125 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2105 .loc 1 1412 9 is_stmt 1 view .LVU708 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2106 .loc 1 1412 48 is_stmt 0 view .LVU709 2107 0182 A26B ldr r2, [r4, #56] 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2108 .loc 1 1412 13 view .LVU710 2109 0184 2368 ldr r3, [r4] 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2110 .loc 1 1412 30 view .LVU711 2111 0186 1288 ldrh r2, [r2] 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2112 .loc 1 1412 28 view .LVU712 2113 0188 DA60 str r2, [r3, #12] 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2114 .loc 1 1413 9 is_stmt 1 view .LVU713 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2115 .loc 1 1413 13 is_stmt 0 view .LVU714 2116 018a A36B ldr r3, [r4, #56] 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2117 .loc 1 1413 26 view .LVU715 2118 018c 0233 adds r3, r3, #2 2119 018e A363 str r3, [r4, #56] 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2120 .loc 1 1414 9 is_stmt 1 view .LVU716 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2121 .loc 1 1414 13 is_stmt 0 view .LVU717 2122 0190 E38F ldrh r3, [r4, #62] 2123 0192 9BB2 uxth r3, r3 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2124 .loc 1 1414 27 view .LVU718 2125 0194 023B subs r3, r3, #2 2126 0196 9BB2 uxth r3, r3 2127 0198 E387 strh r3, [r4, #62] @ movhi 2128 .L152: 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2129 .loc 1 1478 19 view .LVU719 2130 019a 0127 movs r7, #1 2131 .LVL109: 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2132 .loc 1 1478 19 view .LVU720 2133 019c 49E0 b .L160 2134 .LVL110: 2135 .L153: 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2136 .loc 1 1418 9 is_stmt 1 view .LVU721 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2137 .loc 1 1418 54 is_stmt 0 view .LVU722 2138 019e A26B ldr r2, [r4, #56] 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2139 .loc 1 1418 31 view .LVU723 2140 01a0 2368 ldr r3, [r4] 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2141 .loc 1 1418 49 view .LVU724 2142 01a2 1278 ldrb r2, [r2] @ zero_extendqisi2 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2143 .loc 1 1418 46 view .LVU725 ARM GAS /tmp/ccZ0BHQJ.s page 126 2144 01a4 1A73 strb r2, [r3, #12] 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2145 .loc 1 1419 9 is_stmt 1 view .LVU726 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2146 .loc 1 1419 13 is_stmt 0 view .LVU727 2147 01a6 A36B ldr r3, [r4, #56] 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2148 .loc 1 1419 25 view .LVU728 2149 01a8 0133 adds r3, r3, #1 2150 01aa A363 str r3, [r4, #56] 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2151 .loc 1 1420 9 is_stmt 1 view .LVU729 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2152 .loc 1 1420 13 is_stmt 0 view .LVU730 2153 01ac E38F ldrh r3, [r4, #62] 2154 01ae 9BB2 uxth r3, r3 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2155 .loc 1 1420 26 view .LVU731 2156 01b0 013B subs r3, r3, #1 2157 01b2 9BB2 uxth r3, r3 2158 01b4 E387 strh r3, [r4, #62] @ movhi 2159 01b6 F0E7 b .L152 2160 .LVL111: 2161 .L175: 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2162 .loc 1 1428 9 is_stmt 1 view .LVU732 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2163 .loc 1 1428 17 is_stmt 0 view .LVU733 2164 01b8 E28F ldrh r2, [r4, #62] 2165 01ba 92B2 uxth r2, r2 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2166 .loc 1 1428 12 view .LVU734 2167 01bc 012A cmp r2, #1 2168 01be 0CD9 bls .L155 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2169 .loc 1 1430 11 is_stmt 1 view .LVU735 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2170 .loc 1 1430 50 is_stmt 0 view .LVU736 2171 01c0 A26B ldr r2, [r4, #56] 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2172 .loc 1 1430 32 view .LVU737 2173 01c2 1288 ldrh r2, [r2] 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2174 .loc 1 1430 30 view .LVU738 2175 01c4 DA60 str r2, [r3, #12] 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2176 .loc 1 1431 11 is_stmt 1 view .LVU739 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2177 .loc 1 1431 15 is_stmt 0 view .LVU740 2178 01c6 A36B ldr r3, [r4, #56] 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2179 .loc 1 1431 28 view .LVU741 2180 01c8 0233 adds r3, r3, #2 2181 01ca A363 str r3, [r4, #56] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2182 .loc 1 1432 11 is_stmt 1 view .LVU742 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 127 2183 .loc 1 1432 15 is_stmt 0 view .LVU743 2184 01cc E38F ldrh r3, [r4, #62] 2185 01ce 9BB2 uxth r3, r3 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2186 .loc 1 1432 29 view .LVU744 2187 01d0 023B subs r3, r3, #2 2188 01d2 9BB2 uxth r3, r3 2189 01d4 E387 strh r3, [r4, #62] @ movhi 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2190 .loc 1 1441 19 view .LVU745 2191 01d6 0027 movs r7, #0 2192 .LVL112: 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2193 .loc 1 1441 19 view .LVU746 2194 01d8 3DE0 b .L154 2195 .LVL113: 2196 .L155: 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2197 .loc 1 1436 11 is_stmt 1 view .LVU747 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2198 .loc 1 1436 56 is_stmt 0 view .LVU748 2199 01da A26B ldr r2, [r4, #56] 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2200 .loc 1 1436 51 view .LVU749 2201 01dc 1278 ldrb r2, [r2] @ zero_extendqisi2 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2202 .loc 1 1436 48 view .LVU750 2203 01de 1A73 strb r2, [r3, #12] 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2204 .loc 1 1437 11 is_stmt 1 view .LVU751 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2205 .loc 1 1437 15 is_stmt 0 view .LVU752 2206 01e0 A36B ldr r3, [r4, #56] 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2207 .loc 1 1437 27 view .LVU753 2208 01e2 0133 adds r3, r3, #1 2209 01e4 A363 str r3, [r4, #56] 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2210 .loc 1 1438 11 is_stmt 1 view .LVU754 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2211 .loc 1 1438 15 is_stmt 0 view .LVU755 2212 01e6 E38F ldrh r3, [r4, #62] 2213 01e8 9BB2 uxth r3, r3 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2214 .loc 1 1438 28 view .LVU756 2215 01ea 013B subs r3, r3, #1 2216 01ec 9BB2 uxth r3, r3 2217 01ee E387 strh r3, [r4, #62] @ movhi 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2218 .loc 1 1441 19 view .LVU757 2219 01f0 0027 movs r7, #0 2220 .LVL114: 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2221 .loc 1 1441 19 view .LVU758 2222 01f2 30E0 b .L154 2223 .LVL115: 2224 .L176: ARM GAS /tmp/ccZ0BHQJ.s page 128 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2225 .loc 1 1468 13 is_stmt 1 view .LVU759 2226 01f4 2268 ldr r2, [r4] 2227 01f6 5368 ldr r3, [r2, #4] 2228 01f8 43F48053 orr r3, r3, #4096 2229 01fc 5360 str r3, [r2, #4] 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2230 .loc 1 1478 19 is_stmt 0 view .LVU760 2231 01fe 0127 movs r7, #1 2232 .LVL116: 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2233 .loc 1 1478 19 view .LVU761 2234 0200 0DE0 b .L156 2235 .LVL117: 2236 .L157: 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2237 .loc 1 1473 11 is_stmt 1 view .LVU762 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2238 .loc 1 1473 28 is_stmt 0 view .LVU763 2239 0202 226C ldr r2, [r4, #64] 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2240 .loc 1 1473 44 view .LVU764 2241 0204 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2242 .loc 1 1473 42 view .LVU765 2243 0206 1370 strb r3, [r2] 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2244 .loc 1 1474 11 is_stmt 1 view .LVU766 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2245 .loc 1 1474 15 is_stmt 0 view .LVU767 2246 0208 236C ldr r3, [r4, #64] 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2247 .loc 1 1474 27 view .LVU768 2248 020a 0133 adds r3, r3, #1 2249 020c 2364 str r3, [r4, #64] 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2250 .loc 1 1475 11 is_stmt 1 view .LVU769 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2251 .loc 1 1475 15 is_stmt 0 view .LVU770 2252 020e B4F84630 ldrh r3, [r4, #70] 2253 0212 9BB2 uxth r3, r3 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2254 .loc 1 1475 28 view .LVU771 2255 0214 013B subs r3, r3, #1 2256 0216 9BB2 uxth r3, r3 2257 0218 A4F84630 strh r3, [r4, #70] @ movhi 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2258 .loc 1 1478 19 view .LVU772 2259 021c 0127 movs r7, #1 2260 .LVL118: 2261 .L156: 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2262 .loc 1 1480 7 is_stmt 1 view .LVU773 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2263 .loc 1 1480 14 is_stmt 0 view .LVU774 2264 021e FFF7FEFF bl HAL_GetTick 2265 .LVL119: ARM GAS /tmp/ccZ0BHQJ.s page 129 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2266 .loc 1 1480 28 discriminator 1 view .LVU775 2267 0222 801B subs r0, r0, r6 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2268 .loc 1 1480 10 discriminator 1 view .LVU776 2269 0224 A842 cmp r0, r5 2270 0226 02D3 bcc .L158 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2271 .loc 1 1480 54 discriminator 1 view .LVU777 2272 0228 B5F1FF3F cmp r5, #-1 2273 022c 36D1 bne .L159 2274 .L158: 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2275 .loc 1 1480 87 discriminator 3 view .LVU778 2276 022e 002D cmp r5, #0 2277 0230 34D0 beq .L159 2278 .LVL120: 2279 .L160: 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2280 .loc 1 1423 37 is_stmt 1 view .LVU779 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2281 .loc 1 1423 17 is_stmt 0 view .LVU780 2282 0232 E38F ldrh r3, [r4, #62] 2283 0234 9BB2 uxth r3, r3 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2284 .loc 1 1423 37 view .LVU781 2285 0236 23B9 cbnz r3, .L161 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2286 .loc 1 1423 45 discriminator 1 view .LVU782 2287 0238 B4F84630 ldrh r3, [r4, #70] 2288 023c 9BB2 uxth r3, r3 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2289 .loc 1 1423 37 discriminator 1 view .LVU783 2290 023e 002B cmp r3, #0 2291 0240 31D0 beq .L150 2292 .L161: 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2293 .loc 1 1426 7 is_stmt 1 view .LVU784 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2294 .loc 1 1426 12 is_stmt 0 view .LVU785 2295 0242 2368 ldr r3, [r4] 2296 0244 9A68 ldr r2, [r3, #8] 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2297 .loc 1 1426 10 view .LVU786 2298 0246 12F0020F tst r2, #2 2299 024a 04D0 beq .L154 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2300 .loc 1 1426 60 discriminator 1 view .LVU787 2301 024c E28F ldrh r2, [r4, #62] 2302 024e 92B2 uxth r2, r2 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2303 .loc 1 1426 52 discriminator 1 view .LVU788 2304 0250 0AB1 cbz r2, .L154 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2305 .loc 1 1426 80 discriminator 2 view .LVU789 2306 0252 002F cmp r7, #0 2307 0254 B0D1 bne .L175 ARM GAS /tmp/ccZ0BHQJ.s page 130 2308 .LVL121: 2309 .L154: 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2310 .loc 1 1458 7 is_stmt 1 view .LVU790 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2311 .loc 1 1458 12 is_stmt 0 view .LVU791 2312 0256 2368 ldr r3, [r4] 2313 0258 9A68 ldr r2, [r3, #8] 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2314 .loc 1 1458 10 view .LVU792 2315 025a 12F0010F tst r2, #1 2316 025e DED0 beq .L156 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2317 .loc 1 1458 61 discriminator 1 view .LVU793 2318 0260 B4F84620 ldrh r2, [r4, #70] 2319 0264 92B2 uxth r2, r2 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2320 .loc 1 1458 53 discriminator 1 view .LVU794 2321 0266 002A cmp r2, #0 2322 0268 D9D0 beq .L156 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2323 .loc 1 1460 9 is_stmt 1 view .LVU795 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2324 .loc 1 1460 17 is_stmt 0 view .LVU796 2325 026a B4F84620 ldrh r2, [r4, #70] 2326 026e 92B2 uxth r2, r2 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2327 .loc 1 1460 12 view .LVU797 2328 0270 012A cmp r2, #1 2329 0272 C6D9 bls .L157 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2330 .loc 1 1462 11 is_stmt 1 view .LVU798 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2331 .loc 1 1462 69 is_stmt 0 view .LVU799 2332 0274 DA68 ldr r2, [r3, #12] 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2333 .loc 1 1462 29 view .LVU800 2334 0276 236C ldr r3, [r4, #64] 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2335 .loc 1 1462 43 view .LVU801 2336 0278 1A80 strh r2, [r3] @ movhi 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2337 .loc 1 1463 11 is_stmt 1 view .LVU802 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2338 .loc 1 1463 15 is_stmt 0 view .LVU803 2339 027a 236C ldr r3, [r4, #64] 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2340 .loc 1 1463 28 view .LVU804 2341 027c 0233 adds r3, r3, #2 2342 027e 2364 str r3, [r4, #64] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2343 .loc 1 1464 11 is_stmt 1 view .LVU805 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2344 .loc 1 1464 15 is_stmt 0 view .LVU806 2345 0280 B4F84630 ldrh r3, [r4, #70] 2346 0284 9BB2 uxth r3, r3 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) ARM GAS /tmp/ccZ0BHQJ.s page 131 2347 .loc 1 1464 29 view .LVU807 2348 0286 023B subs r3, r3, #2 2349 0288 9BB2 uxth r3, r3 2350 028a A4F84630 strh r3, [r4, #70] @ movhi 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2351 .loc 1 1465 11 is_stmt 1 view .LVU808 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2352 .loc 1 1465 19 is_stmt 0 view .LVU809 2353 028e B4F84630 ldrh r3, [r4, #70] 2354 0292 9BB2 uxth r3, r3 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2355 .loc 1 1465 14 view .LVU810 2356 0294 012B cmp r3, #1 2357 0296 ADD9 bls .L176 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2358 .loc 1 1478 19 view .LVU811 2359 0298 0127 movs r7, #1 2360 .LVL122: 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2361 .loc 1 1478 19 view .LVU812 2362 029a C0E7 b .L156 2363 .LVL123: 2364 .L159: 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2365 .loc 1 1482 9 is_stmt 1 view .LVU813 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2366 .loc 1 1483 9 view .LVU814 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2367 .loc 1 1483 21 is_stmt 0 view .LVU815 2368 029c 0123 movs r3, #1 2369 029e 84F85D30 strb r3, [r4, #93] 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2370 .loc 1 1484 9 is_stmt 1 view .LVU816 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2371 .loc 1 1482 19 is_stmt 0 view .LVU817 2372 02a2 0320 movs r0, #3 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2373 .loc 1 1484 9 view .LVU818 2374 02a4 0FE0 b .L137 2375 .LVL124: 2376 .L150: 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2377 .loc 1 1547 3 is_stmt 1 view .LVU819 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2378 .loc 1 1547 7 is_stmt 0 view .LVU820 2379 02a6 3246 mov r2, r6 2380 02a8 2946 mov r1, r5 2381 02aa 2046 mov r0, r4 2382 02ac FFF7FEFF bl SPI_EndRxTxTransaction 2383 .LVL125: 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2384 .loc 1 1547 6 discriminator 1 view .LVU821 2385 02b0 10B1 cbz r0, .L162 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2386 .loc 1 1549 5 is_stmt 1 view .LVU822 2387 .LVL126: 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 132 2388 .loc 1 1550 5 view .LVU823 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2389 .loc 1 1550 21 is_stmt 0 view .LVU824 2390 02b2 2023 movs r3, #32 2391 02b4 2366 str r3, [r4, #96] 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2392 .loc 1 1549 15 view .LVU825 2393 02b6 0120 movs r0, #1 2394 .LVL127: 2395 .L162: 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2396 .loc 1 1553 3 is_stmt 1 view .LVU826 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2397 .loc 1 1553 11 is_stmt 0 view .LVU827 2398 02b8 236E ldr r3, [r4, #96] 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2399 .loc 1 1553 6 view .LVU828 2400 02ba 9BB9 cbnz r3, .L171 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2401 .loc 1 1559 5 is_stmt 1 view .LVU829 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2402 .loc 1 1559 17 is_stmt 0 view .LVU830 2403 02bc 0123 movs r3, #1 2404 02be 84F85D30 strb r3, [r4, #93] 2405 02c2 00E0 b .L137 2406 .LVL128: 2407 .L164: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2408 .loc 1 1298 15 view .LVU831 2409 02c4 0220 movs r0, #2 2410 .LVL129: 2411 .L137: 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2412 .loc 1 1563 3 is_stmt 1 view .LVU832 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2413 .loc 1 1563 3 view .LVU833 2414 02c6 0023 movs r3, #0 2415 02c8 84F85C30 strb r3, [r4, #92] 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2416 .loc 1 1563 3 view .LVU834 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2417 .loc 1 1564 3 view .LVU835 2418 .LVL130: 2419 .L135: 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2420 .loc 1 1565 1 is_stmt 0 view .LVU836 2421 02cc BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 2422 .LVL131: 2423 .L165: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2424 .loc 1 1298 15 view .LVU837 2425 02d0 0220 movs r0, #2 2426 .LVL132: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2427 .loc 1 1298 15 view .LVU838 2428 02d2 F8E7 b .L137 2429 .LVL133: ARM GAS /tmp/ccZ0BHQJ.s page 133 2430 .L166: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2431 .loc 1 1298 15 view .LVU839 2432 02d4 0220 movs r0, #2 2433 .LVL134: 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2434 .loc 1 1298 15 view .LVU840 2435 02d6 F6E7 b .L137 2436 .LVL135: 2437 .L167: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2438 .loc 1 1304 15 view .LVU841 2439 02d8 0120 movs r0, #1 2440 .LVL136: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2441 .loc 1 1304 15 view .LVU842 2442 02da F4E7 b .L137 2443 .LVL137: 2444 .L168: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2445 .loc 1 1304 15 view .LVU843 2446 02dc 0120 movs r0, #1 2447 .LVL138: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2448 .loc 1 1304 15 view .LVU844 2449 02de F2E7 b .L137 2450 .LVL139: 2451 .L169: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2452 .loc 1 1304 15 view .LVU845 2453 02e0 0120 movs r0, #1 2454 .LVL140: 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2455 .loc 1 1304 15 view .LVU846 2456 02e2 F0E7 b .L137 2457 .LVL141: 2458 .L171: 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2459 .loc 1 1555 15 view .LVU847 2460 02e4 0120 movs r0, #1 2461 .LVL142: 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2462 .loc 1 1555 15 view .LVU848 2463 02e6 EEE7 b .L137 2464 .LVL143: 2465 .L163: 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2466 .loc 1 1280 3 discriminator 1 view .LVU849 2467 02e8 0220 movs r0, #2 2468 .LVL144: 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2469 .loc 1 1280 3 discriminator 1 view .LVU850 2470 02ea EFE7 b .L135 2471 .cfi_endproc 2472 .LFE136: 2474 .section .text.HAL_SPI_Receive,"ax",%progbits 2475 .align 1 ARM GAS /tmp/ccZ0BHQJ.s page 134 2476 .global HAL_SPI_Receive 2477 .syntax unified 2478 .thumb 2479 .thumb_func 2481 HAL_SPI_Receive: 2482 .LVL145: 2483 .LFB135: 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2484 .loc 1 1012 1 is_stmt 1 view -0 2485 .cfi_startproc 2486 @ args = 0, pretend = 0, frame = 0 2487 @ frame_needed = 0, uses_anonymous_args = 0 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2488 .loc 1 1012 1 is_stmt 0 view .LVU852 2489 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 2490 .cfi_def_cfa_offset 28 2491 .cfi_offset 4, -28 2492 .cfi_offset 5, -24 2493 .cfi_offset 6, -20 2494 .cfi_offset 7, -16 2495 .cfi_offset 8, -12 2496 .cfi_offset 9, -8 2497 .cfi_offset 14, -4 2498 0004 83B0 sub sp, sp, #12 2499 .cfi_def_cfa_offset 40 2500 0006 0446 mov r4, r0 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2501 .loc 1 1018 3 is_stmt 1 view .LVU853 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2502 .loc 1 1019 3 view .LVU854 2503 .LVL146: 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2504 .loc 1 1021 3 view .LVU855 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2505 .loc 1 1021 11 is_stmt 0 view .LVU856 2506 0008 90F85D60 ldrb r6, [r0, #93] @ zero_extendqisi2 2507 000c F6B2 uxtb r6, r6 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2508 .loc 1 1021 6 view .LVU857 2509 000e 012E cmp r6, #1 2510 0010 40F0C080 bne .L199 2511 0014 8846 mov r8, r1 2512 0016 9146 mov r9, r2 2513 0018 1D46 mov r5, r3 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2514 .loc 1 1027 3 is_stmt 1 view .LVU858 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2515 .loc 1 1027 18 is_stmt 0 view .LVU859 2516 001a 4368 ldr r3, [r0, #4] 2517 .LVL147: 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2518 .loc 1 1027 6 view .LVU860 2519 001c B3F5827F cmp r3, #260 2520 0020 3DD0 beq .L202 2521 .L179: 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2522 .loc 1 1035 3 is_stmt 1 view .LVU861 ARM GAS /tmp/ccZ0BHQJ.s page 135 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2523 .loc 1 1035 3 view .LVU862 2524 0022 94F85C30 ldrb r3, [r4, #92] @ zero_extendqisi2 2525 0026 012B cmp r3, #1 2526 0028 00F0BC80 beq .L200 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2527 .loc 1 1035 3 discriminator 2 view .LVU863 2528 002c 0123 movs r3, #1 2529 002e 84F85C30 strb r3, [r4, #92] 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2530 .loc 1 1035 3 discriminator 2 view .LVU864 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2531 .loc 1 1038 3 view .LVU865 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2532 .loc 1 1038 15 is_stmt 0 view .LVU866 2533 0032 FFF7FEFF bl HAL_GetTick 2534 .LVL148: 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2535 .loc 1 1038 15 view .LVU867 2536 0036 0746 mov r7, r0 2537 .LVL149: 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2538 .loc 1 1040 3 is_stmt 1 view .LVU868 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2539 .loc 1 1040 6 is_stmt 0 view .LVU869 2540 0038 B8F1000F cmp r8, #0 2541 003c 00F0AB80 beq .L178 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2542 .loc 1 1040 23 discriminator 1 view .LVU870 2543 0040 B9F1000F cmp r9, #0 2544 0044 00F0A780 beq .L178 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2545 .loc 1 1047 3 is_stmt 1 view .LVU871 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2546 .loc 1 1047 21 is_stmt 0 view .LVU872 2547 0048 0423 movs r3, #4 2548 004a 84F85D30 strb r3, [r4, #93] 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2549 .loc 1 1048 3 is_stmt 1 view .LVU873 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2550 .loc 1 1048 21 is_stmt 0 view .LVU874 2551 004e 0023 movs r3, #0 2552 0050 2366 str r3, [r4, #96] 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2553 .loc 1 1049 3 is_stmt 1 view .LVU875 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2554 .loc 1 1049 21 is_stmt 0 view .LVU876 2555 0052 C4F84080 str r8, [r4, #64] 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2556 .loc 1 1050 3 is_stmt 1 view .LVU877 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2557 .loc 1 1050 21 is_stmt 0 view .LVU878 2558 0056 A4F84490 strh r9, [r4, #68] @ movhi 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2559 .loc 1 1051 3 is_stmt 1 view .LVU879 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2560 .loc 1 1051 21 is_stmt 0 view .LVU880 ARM GAS /tmp/ccZ0BHQJ.s page 136 2561 005a A4F84690 strh r9, [r4, #70] @ movhi 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2562 .loc 1 1054 3 is_stmt 1 view .LVU881 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2563 .loc 1 1054 21 is_stmt 0 view .LVU882 2564 005e A363 str r3, [r4, #56] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2565 .loc 1 1055 3 is_stmt 1 view .LVU883 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2566 .loc 1 1055 21 is_stmt 0 view .LVU884 2567 0060 A387 strh r3, [r4, #60] @ movhi 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2568 .loc 1 1056 3 is_stmt 1 view .LVU885 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2569 .loc 1 1056 21 is_stmt 0 view .LVU886 2570 0062 E387 strh r3, [r4, #62] @ movhi 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2571 .loc 1 1057 3 is_stmt 1 view .LVU887 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2572 .loc 1 1057 21 is_stmt 0 view .LVU888 2573 0064 E364 str r3, [r4, #76] 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2574 .loc 1 1058 3 is_stmt 1 view .LVU889 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2575 .loc 1 1058 21 is_stmt 0 view .LVU890 2576 0066 2365 str r3, [r4, #80] 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2577 .loc 1 1071 3 is_stmt 1 view .LVU891 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2578 .loc 1 1071 17 is_stmt 0 view .LVU892 2579 0068 E368 ldr r3, [r4, #12] 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2580 .loc 1 1071 6 view .LVU893 2581 006a B3F5E06F cmp r3, #1792 2582 006e 23D9 bls .L181 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2583 .loc 1 1074 5 is_stmt 1 view .LVU894 2584 0070 2268 ldr r2, [r4] 2585 0072 5368 ldr r3, [r2, #4] 2586 0074 23F48053 bic r3, r3, #4096 2587 0078 5360 str r3, [r2, #4] 2588 .L182: 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2589 .loc 1 1083 3 view .LVU895 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2590 .loc 1 1083 17 is_stmt 0 view .LVU896 2591 007a A368 ldr r3, [r4, #8] 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2592 .loc 1 1083 6 view .LVU897 2593 007c B3F5004F cmp r3, #32768 2594 0080 20D0 beq .L203 2595 .L183: 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2596 .loc 1 1091 3 is_stmt 1 view .LVU898 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2597 .loc 1 1091 12 is_stmt 0 view .LVU899 2598 0082 2368 ldr r3, [r4] ARM GAS /tmp/ccZ0BHQJ.s page 137 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2599 .loc 1 1091 22 view .LVU900 2600 0084 1A68 ldr r2, [r3] 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2601 .loc 1 1091 6 view .LVU901 2602 0086 12F0400F tst r2, #64 2603 008a 03D1 bne .L184 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2604 .loc 1 1094 5 is_stmt 1 view .LVU902 2605 008c 1A68 ldr r2, [r3] 2606 008e 42F04002 orr r2, r2, #64 2607 0092 1A60 str r2, [r3] 2608 .L184: 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2609 .loc 1 1098 3 view .LVU903 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2610 .loc 1 1098 17 is_stmt 0 view .LVU904 2611 0094 E368 ldr r3, [r4, #12] 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2612 .loc 1 1098 6 view .LVU905 2613 0096 B3F5E06F cmp r3, #1792 2614 009a 27D9 bls .L185 2615 009c 4CE0 b .L186 2616 .LVL150: 2617 .L202: 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2618 .loc 1 1027 58 discriminator 1 view .LVU906 2619 009e 8368 ldr r3, [r0, #8] 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2620 .loc 1 1027 44 discriminator 1 view .LVU907 2621 00a0 002B cmp r3, #0 2622 00a2 BED1 bne .L179 1029: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 2623 .loc 1 1029 5 is_stmt 1 view .LVU908 1029: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 2624 .loc 1 1029 17 is_stmt 0 view .LVU909 2625 00a4 0423 movs r3, #4 2626 00a6 80F85D30 strb r3, [r0, #93] 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2627 .loc 1 1031 5 is_stmt 1 view .LVU910 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2628 .loc 1 1031 12 is_stmt 0 view .LVU911 2629 00aa 0095 str r5, [sp] 2630 00ac 1346 mov r3, r2 2631 00ae 0A46 mov r2, r1 2632 .LVL151: 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2633 .loc 1 1031 12 view .LVU912 2634 00b0 FFF7FEFF bl HAL_SPI_TransmitReceive 2635 .LVL152: 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2636 .loc 1 1031 12 view .LVU913 2637 00b4 0646 mov r6, r0 2638 00b6 71E0 b .L180 2639 .LVL153: 2640 .L181: 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 138 2641 .loc 1 1079 5 is_stmt 1 view .LVU914 2642 00b8 2268 ldr r2, [r4] 2643 00ba 5368 ldr r3, [r2, #4] 2644 00bc 43F48053 orr r3, r3, #4096 2645 00c0 5360 str r3, [r2, #4] 2646 00c2 DAE7 b .L182 2647 .L203: 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 2648 .loc 1 1086 5 view .LVU915 2649 00c4 2268 ldr r2, [r4] 2650 00c6 1368 ldr r3, [r2] 2651 00c8 23F04003 bic r3, r3, #64 2652 00cc 1360 str r3, [r2] 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2653 .loc 1 1087 5 view .LVU916 2654 00ce 2268 ldr r2, [r4] 2655 00d0 1368 ldr r3, [r2] 2656 00d2 23F48043 bic r3, r3, #16384 2657 00d6 1360 str r3, [r2] 2658 00d8 D3E7 b .L183 2659 .LVL154: 2660 .L187: 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2661 .loc 1 1114 9 view .LVU917 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2662 .loc 1 1114 16 is_stmt 0 view .LVU918 2663 00da FFF7FEFF bl HAL_GetTick 2664 .LVL155: 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2665 .loc 1 1114 30 discriminator 1 view .LVU919 2666 00de C01B subs r0, r0, r7 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2667 .loc 1 1114 12 discriminator 1 view .LVU920 2668 00e0 A842 cmp r0, r5 2669 00e2 02D3 bcc .L189 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2670 .loc 1 1114 56 discriminator 1 view .LVU921 2671 00e4 B5F1FF3F cmp r5, #-1 2672 00e8 18D1 bne .L190 2673 .L189: 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2674 .loc 1 1114 87 discriminator 3 view .LVU922 2675 00ea BDB1 cbz r5, .L190 2676 .L185: 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2677 .loc 1 1101 30 is_stmt 1 view .LVU923 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2678 .loc 1 1101 16 is_stmt 0 view .LVU924 2679 00ec B4F84630 ldrh r3, [r4, #70] 2680 00f0 9BB2 uxth r3, r3 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2681 .loc 1 1101 30 view .LVU925 2682 00f2 002B cmp r3, #0 2683 00f4 3FD0 beq .L192 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2684 .loc 1 1104 7 is_stmt 1 view .LVU926 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 139 2685 .loc 1 1104 11 is_stmt 0 view .LVU927 2686 00f6 2368 ldr r3, [r4] 2687 00f8 9A68 ldr r2, [r3, #8] 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2688 .loc 1 1104 10 view .LVU928 2689 00fa 12F0010F tst r2, #1 2690 00fe ECD0 beq .L187 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2691 .loc 1 1107 9 is_stmt 1 view .LVU929 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2692 .loc 1 1107 27 is_stmt 0 view .LVU930 2693 0100 226C ldr r2, [r4, #64] 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2694 .loc 1 1107 43 view .LVU931 2695 0102 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 2696 .loc 1 1107 41 view .LVU932 2697 0104 1370 strb r3, [r2] 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2698 .loc 1 1108 9 is_stmt 1 view .LVU933 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2699 .loc 1 1108 13 is_stmt 0 view .LVU934 2700 0106 236C ldr r3, [r4, #64] 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2701 .loc 1 1108 26 view .LVU935 2702 0108 0133 adds r3, r3, #1 2703 010a 2364 str r3, [r4, #64] 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2704 .loc 1 1109 9 is_stmt 1 view .LVU936 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2705 .loc 1 1109 13 is_stmt 0 view .LVU937 2706 010c B4F84630 ldrh r3, [r4, #70] 2707 0110 9BB2 uxth r3, r3 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2708 .loc 1 1109 26 view .LVU938 2709 0112 013B subs r3, r3, #1 2710 0114 9BB2 uxth r3, r3 2711 0116 A4F84630 strh r3, [r4, #70] @ movhi 2712 011a E7E7 b .L185 2713 .L190: 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2714 .loc 1 1116 11 is_stmt 1 view .LVU939 2715 .LVL156: 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2716 .loc 1 1117 11 view .LVU940 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2717 .loc 1 1117 23 is_stmt 0 view .LVU941 2718 011c 0123 movs r3, #1 2719 011e 84F85D30 strb r3, [r4, #93] 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2720 .loc 1 1118 11 is_stmt 1 view .LVU942 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2721 .loc 1 1116 21 is_stmt 0 view .LVU943 2722 0122 0326 movs r6, #3 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2723 .loc 1 1118 11 view .LVU944 2724 0124 37E0 b .L178 ARM GAS /tmp/ccZ0BHQJ.s page 140 2725 .LVL157: 2726 .L193: 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2727 .loc 1 1138 9 is_stmt 1 view .LVU945 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2728 .loc 1 1138 16 is_stmt 0 view .LVU946 2729 0126 FFF7FEFF bl HAL_GetTick 2730 .LVL158: 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2731 .loc 1 1138 30 discriminator 1 view .LVU947 2732 012a C01B subs r0, r0, r7 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2733 .loc 1 1138 12 discriminator 1 view .LVU948 2734 012c A842 cmp r0, r5 2735 012e 02D3 bcc .L195 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2736 .loc 1 1138 56 discriminator 1 view .LVU949 2737 0130 B5F1FF3F cmp r5, #-1 2738 0134 1AD1 bne .L196 2739 .L195: 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2740 .loc 1 1138 87 discriminator 3 view .LVU950 2741 0136 CDB1 cbz r5, .L196 2742 .L186: 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2743 .loc 1 1126 30 is_stmt 1 view .LVU951 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2744 .loc 1 1126 16 is_stmt 0 view .LVU952 2745 0138 B4F84630 ldrh r3, [r4, #70] 2746 013c 9BB2 uxth r3, r3 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2747 .loc 1 1126 30 view .LVU953 2748 013e D3B1 cbz r3, .L192 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2749 .loc 1 1129 7 is_stmt 1 view .LVU954 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2750 .loc 1 1129 11 is_stmt 0 view .LVU955 2751 0140 2368 ldr r3, [r4] 2752 0142 9A68 ldr r2, [r3, #8] 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2753 .loc 1 1129 10 view .LVU956 2754 0144 12F0010F tst r2, #1 2755 0148 EDD0 beq .L193 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2756 .loc 1 1131 9 is_stmt 1 view .LVU957 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2757 .loc 1 1131 67 is_stmt 0 view .LVU958 2758 014a DA68 ldr r2, [r3, #12] 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2759 .loc 1 1131 27 view .LVU959 2760 014c 236C ldr r3, [r4, #64] 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2761 .loc 1 1131 41 view .LVU960 2762 014e 1A80 strh r2, [r3] @ movhi 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2763 .loc 1 1132 9 is_stmt 1 view .LVU961 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; ARM GAS /tmp/ccZ0BHQJ.s page 141 2764 .loc 1 1132 13 is_stmt 0 view .LVU962 2765 0150 236C ldr r3, [r4, #64] 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2766 .loc 1 1132 26 view .LVU963 2767 0152 0233 adds r3, r3, #2 2768 0154 2364 str r3, [r4, #64] 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2769 .loc 1 1133 9 is_stmt 1 view .LVU964 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2770 .loc 1 1133 13 is_stmt 0 view .LVU965 2771 0156 B4F846C0 ldrh ip, [r4, #70] 2772 015a 1FFA8CFC uxth ip, ip 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2773 .loc 1 1133 26 view .LVU966 2774 015e 0CF1FF3C add ip, ip, #-1 2775 0162 1FFA8CFC uxth ip, ip 2776 0166 A4F846C0 strh ip, [r4, #70] @ movhi 2777 016a E5E7 b .L186 2778 .L196: 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2779 .loc 1 1140 11 is_stmt 1 view .LVU967 2780 .LVL159: 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2781 .loc 1 1141 11 view .LVU968 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2782 .loc 1 1141 23 is_stmt 0 view .LVU969 2783 016c 0123 movs r3, #1 2784 016e 84F85D30 strb r3, [r4, #93] 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2785 .loc 1 1142 11 is_stmt 1 view .LVU970 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2786 .loc 1 1140 21 is_stmt 0 view .LVU971 2787 0172 0326 movs r6, #3 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2788 .loc 1 1142 11 view .LVU972 2789 0174 0FE0 b .L178 2790 .LVL160: 2791 .L192: 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2792 .loc 1 1218 3 is_stmt 1 view .LVU973 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2793 .loc 1 1218 7 is_stmt 0 view .LVU974 2794 0176 3A46 mov r2, r7 2795 0178 2946 mov r1, r5 2796 017a 2046 mov r0, r4 2797 017c FFF7FEFF bl SPI_EndRxTransaction 2798 .LVL161: 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2799 .loc 1 1218 6 discriminator 1 view .LVU975 2800 0180 08B1 cbz r0, .L198 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2801 .loc 1 1220 5 is_stmt 1 view .LVU976 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2802 .loc 1 1220 21 is_stmt 0 view .LVU977 2803 0182 2023 movs r3, #32 2804 0184 2366 str r3, [r4, #96] 2805 .L198: ARM GAS /tmp/ccZ0BHQJ.s page 142 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2806 .loc 1 1232 3 is_stmt 1 view .LVU978 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2807 .loc 1 1232 11 is_stmt 0 view .LVU979 2808 0186 236E ldr r3, [r4, #96] 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2809 .loc 1 1232 6 view .LVU980 2810 0188 2BB9 cbnz r3, .L178 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2811 .loc 1 1238 5 is_stmt 1 view .LVU981 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2812 .loc 1 1238 17 is_stmt 0 view .LVU982 2813 018a 0123 movs r3, #1 2814 018c 84F85D30 strb r3, [r4, #93] 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2815 .loc 1 1019 21 view .LVU983 2816 0190 0026 movs r6, #0 2817 0192 00E0 b .L178 2818 .LVL162: 2819 .L199: 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2820 .loc 1 1023 15 view .LVU984 2821 0194 0226 movs r6, #2 2822 .LVL163: 2823 .L178: 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2824 .loc 1 1242 3 is_stmt 1 view .LVU985 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2825 .loc 1 1242 3 view .LVU986 2826 0196 0023 movs r3, #0 2827 0198 84F85C30 strb r3, [r4, #92] 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2828 .loc 1 1242 3 view .LVU987 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2829 .loc 1 1243 3 view .LVU988 2830 .LVL164: 2831 .L180: 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2832 .loc 1 1244 1 is_stmt 0 view .LVU989 2833 019c 3046 mov r0, r6 2834 019e 03B0 add sp, sp, #12 2835 .cfi_remember_state 2836 .cfi_def_cfa_offset 28 2837 @ sp needed 2838 01a0 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 2839 .LVL165: 2840 .L200: 2841 .cfi_restore_state 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2842 .loc 1 1035 3 discriminator 1 view .LVU990 2843 01a4 0226 movs r6, #2 2844 01a6 F9E7 b .L180 2845 .cfi_endproc 2846 .LFE135: 2848 .section .text.HAL_SPI_Transmit_IT,"ax",%progbits 2849 .align 1 2850 .global HAL_SPI_Transmit_IT ARM GAS /tmp/ccZ0BHQJ.s page 143 2851 .syntax unified 2852 .thumb 2853 .thumb_func 2855 HAL_SPI_Transmit_IT: 2856 .LVL166: 2857 .LFB137: 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2858 .loc 1 1576 1 is_stmt 1 view -0 2859 .cfi_startproc 2860 @ args = 0, pretend = 0, frame = 0 2861 @ frame_needed = 0, uses_anonymous_args = 0 2862 @ link register save eliminated. 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2863 .loc 1 1576 1 is_stmt 0 view .LVU992 2864 0000 0346 mov r3, r0 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2865 .loc 1 1577 3 is_stmt 1 view .LVU993 2866 .LVL167: 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2867 .loc 1 1580 3 view .LVU994 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2868 .loc 1 1583 3 view .LVU995 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2869 .loc 1 1583 3 view .LVU996 2870 0002 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 2871 .LVL168: 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2872 .loc 1 1583 3 is_stmt 0 view .LVU997 2873 0006 0128 cmp r0, #1 2874 0008 4CD0 beq .L210 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2875 .loc 1 1583 3 is_stmt 1 discriminator 2 view .LVU998 2876 000a 0120 movs r0, #1 2877 000c 83F85C00 strb r0, [r3, #92] 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2878 .loc 1 1583 3 discriminator 2 view .LVU999 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2879 .loc 1 1585 3 view .LVU1000 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2880 .loc 1 1585 6 is_stmt 0 view .LVU1001 2881 0010 0029 cmp r1, #0 2882 0012 3CD0 beq .L211 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2883 .loc 1 1585 23 discriminator 1 view .LVU1002 2884 0014 002A cmp r2, #0 2885 0016 3CD0 beq .L212 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2886 .loc 1 1591 3 is_stmt 1 view .LVU1003 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2887 .loc 1 1591 11 is_stmt 0 view .LVU1004 2888 0018 93F85D00 ldrb r0, [r3, #93] @ zero_extendqisi2 2889 001c C0B2 uxtb r0, r0 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2890 .loc 1 1591 6 view .LVU1005 2891 001e 0128 cmp r0, #1 2892 0020 3CD1 bne .L213 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; ARM GAS /tmp/ccZ0BHQJ.s page 144 2893 .loc 1 1598 3 is_stmt 1 view .LVU1006 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2894 .loc 1 1598 21 is_stmt 0 view .LVU1007 2895 0022 0320 movs r0, #3 2896 0024 83F85D00 strb r0, [r3, #93] 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2897 .loc 1 1599 3 is_stmt 1 view .LVU1008 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2898 .loc 1 1599 21 is_stmt 0 view .LVU1009 2899 0028 0020 movs r0, #0 2900 002a 1866 str r0, [r3, #96] 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2901 .loc 1 1600 3 is_stmt 1 view .LVU1010 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2902 .loc 1 1600 21 is_stmt 0 view .LVU1011 2903 002c 9963 str r1, [r3, #56] 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2904 .loc 1 1601 3 is_stmt 1 view .LVU1012 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2905 .loc 1 1601 21 is_stmt 0 view .LVU1013 2906 002e 9A87 strh r2, [r3, #60] @ movhi 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2907 .loc 1 1602 3 is_stmt 1 view .LVU1014 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2908 .loc 1 1602 21 is_stmt 0 view .LVU1015 2909 0030 DA87 strh r2, [r3, #62] @ movhi 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2910 .loc 1 1605 3 is_stmt 1 view .LVU1016 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2911 .loc 1 1605 21 is_stmt 0 view .LVU1017 2912 0032 1864 str r0, [r3, #64] 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2913 .loc 1 1606 3 is_stmt 1 view .LVU1018 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2914 .loc 1 1606 21 is_stmt 0 view .LVU1019 2915 0034 A3F84400 strh r0, [r3, #68] @ movhi 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2916 .loc 1 1607 3 is_stmt 1 view .LVU1020 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2917 .loc 1 1607 21 is_stmt 0 view .LVU1021 2918 0038 A3F84600 strh r0, [r3, #70] @ movhi 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2919 .loc 1 1608 3 is_stmt 1 view .LVU1022 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2920 .loc 1 1608 21 is_stmt 0 view .LVU1023 2921 003c D864 str r0, [r3, #76] 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2922 .loc 1 1611 3 is_stmt 1 view .LVU1024 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2923 .loc 1 1611 17 is_stmt 0 view .LVU1025 2924 003e DA68 ldr r2, [r3, #12] 2925 .LVL169: 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2926 .loc 1 1611 6 view .LVU1026 2927 0040 B2F5E06F cmp r2, #1792 2928 0044 15D9 bls .L207 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 145 2929 .loc 1 1613 5 is_stmt 1 view .LVU1027 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2930 .loc 1 1613 17 is_stmt 0 view .LVU1028 2931 0046 184A ldr r2, .L216 2932 0048 1A65 str r2, [r3, #80] 2933 .L208: 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2934 .loc 1 1621 3 is_stmt 1 view .LVU1029 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2935 .loc 1 1621 17 is_stmt 0 view .LVU1030 2936 004a 9A68 ldr r2, [r3, #8] 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2937 .loc 1 1621 6 view .LVU1031 2938 004c B2F5004F cmp r2, #32768 2939 0050 12D0 beq .L215 2940 .LVL170: 2941 .L209: 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2942 .loc 1 1637 3 is_stmt 1 view .LVU1032 2943 0052 1968 ldr r1, [r3] 2944 0054 4A68 ldr r2, [r1, #4] 2945 0056 42F0A002 orr r2, r2, #160 2946 005a 4A60 str r2, [r1, #4] 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2947 .loc 1 1641 3 view .LVU1033 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2948 .loc 1 1641 12 is_stmt 0 view .LVU1034 2949 005c 1A68 ldr r2, [r3] 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2950 .loc 1 1641 22 view .LVU1035 2951 005e 1168 ldr r1, [r2] 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2952 .loc 1 1641 6 view .LVU1036 2953 0060 11F0400F tst r1, #64 2954 0064 1CD1 bne .L214 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2955 .loc 1 1644 5 is_stmt 1 view .LVU1037 2956 0066 1168 ldr r1, [r2] 2957 0068 41F04001 orr r1, r1, #64 2958 006c 1160 str r1, [r2] 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2959 .loc 1 1577 21 is_stmt 0 view .LVU1038 2960 006e 0020 movs r0, #0 2961 0070 10E0 b .L206 2962 .LVL171: 2963 .L207: 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2964 .loc 1 1617 5 is_stmt 1 view .LVU1039 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2965 .loc 1 1617 17 is_stmt 0 view .LVU1040 2966 0072 0E4A ldr r2, .L216+4 2967 0074 1A65 str r2, [r3, #80] 2968 0076 E8E7 b .L208 2969 .L215: 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2970 .loc 1 1624 5 is_stmt 1 view .LVU1041 2971 0078 1968 ldr r1, [r3] ARM GAS /tmp/ccZ0BHQJ.s page 146 2972 .LVL172: 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2973 .loc 1 1624 5 is_stmt 0 view .LVU1042 2974 007a 0A68 ldr r2, [r1] 2975 007c 22F04002 bic r2, r2, #64 2976 0080 0A60 str r2, [r1] 2977 .LVL173: 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2978 .loc 1 1625 5 is_stmt 1 view .LVU1043 2979 0082 1968 ldr r1, [r3] 2980 0084 0A68 ldr r2, [r1] 2981 0086 42F48042 orr r2, r2, #16384 2982 008a 0A60 str r2, [r1] 2983 008c E1E7 b .L209 2984 .LVL174: 2985 .L211: 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2986 .loc 1 1587 15 is_stmt 0 view .LVU1044 2987 008e 0120 movs r0, #1 2988 0090 00E0 b .L206 2989 .L212: 2990 0092 0120 movs r0, #1 2991 .LVL175: 2992 .L206: 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2993 .loc 1 1648 3 is_stmt 1 view .LVU1045 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2994 .loc 1 1648 3 view .LVU1046 2995 0094 0022 movs r2, #0 2996 0096 83F85C20 strb r2, [r3, #92] 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2997 .loc 1 1648 3 view .LVU1047 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2998 .loc 1 1649 3 view .LVU1048 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2999 .loc 1 1649 10 is_stmt 0 view .LVU1049 3000 009a 7047 bx lr 3001 .LVL176: 3002 .L213: 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3003 .loc 1 1593 15 view .LVU1050 3004 009c 0220 movs r0, #2 3005 009e F9E7 b .L206 3006 .LVL177: 3007 .L214: 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3008 .loc 1 1577 21 view .LVU1051 3009 00a0 0020 movs r0, #0 3010 00a2 F7E7 b .L206 3011 .LVL178: 3012 .L210: 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3013 .loc 1 1583 3 discriminator 1 view .LVU1052 3014 00a4 0220 movs r0, #2 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3015 .loc 1 1650 1 view .LVU1053 3016 00a6 7047 bx lr ARM GAS /tmp/ccZ0BHQJ.s page 147 3017 .L217: 3018 .align 2 3019 .L216: 3020 00a8 00000000 .word SPI_TxISR_16BIT 3021 00ac 00000000 .word SPI_TxISR_8BIT 3022 .cfi_endproc 3023 .LFE137: 3025 .section .text.HAL_SPI_TransmitReceive_IT,"ax",%progbits 3026 .align 1 3027 .global HAL_SPI_TransmitReceive_IT 3028 .syntax unified 3029 .thumb 3030 .thumb_func 3032 HAL_SPI_TransmitReceive_IT: 3033 .LVL179: 3034 .LFB139: 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3035 .loc 1 1769 1 is_stmt 1 view -0 3036 .cfi_startproc 3037 @ args = 0, pretend = 0, frame = 0 3038 @ frame_needed = 0, uses_anonymous_args = 0 3039 @ link register save eliminated. 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3040 .loc 1 1769 1 is_stmt 0 view .LVU1055 3041 0000 8446 mov ip, r0 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 3042 .loc 1 1770 3 is_stmt 1 view .LVU1056 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3043 .loc 1 1771 3 view .LVU1057 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3044 .loc 1 1772 3 view .LVU1058 3045 .LVL180: 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3046 .loc 1 1775 3 view .LVU1059 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3047 .loc 1 1778 3 view .LVU1060 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3048 .loc 1 1778 3 view .LVU1061 3049 0002 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 3050 .LVL181: 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3051 .loc 1 1778 3 is_stmt 0 view .LVU1062 3052 0006 0128 cmp r0, #1 3053 0008 79D0 beq .L228 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3054 .loc 1 1769 1 view .LVU1063 3055 000a 10B4 push {r4} 3056 .cfi_def_cfa_offset 4 3057 .cfi_offset 4, -4 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3058 .loc 1 1778 3 is_stmt 1 discriminator 2 view .LVU1064 3059 000c 0120 movs r0, #1 3060 000e 8CF85C00 strb r0, [ip, #92] 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3061 .loc 1 1778 3 discriminator 2 view .LVU1065 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3062 .loc 1 1781 3 view .LVU1066 ARM GAS /tmp/ccZ0BHQJ.s page 148 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3063 .loc 1 1781 23 is_stmt 0 view .LVU1067 3064 0012 9CF85D00 ldrb r0, [ip, #93] @ zero_extendqisi2 3065 0016 C0B2 uxtb r0, r0 3066 .LVL182: 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3067 .loc 1 1782 3 is_stmt 1 view .LVU1068 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3068 .loc 1 1782 23 is_stmt 0 view .LVU1069 3069 0018 DCF80440 ldr r4, [ip, #4] 3070 .LVL183: 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3071 .loc 1 1784 3 is_stmt 1 view .LVU1070 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3072 .loc 1 1784 6 is_stmt 0 view .LVU1071 3073 001c 0128 cmp r0, #1 3074 001e 08D0 beq .L220 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3075 .loc 1 1784 7 discriminator 1 view .LVU1072 3076 0020 B4F5827F cmp r4, #260 3077 0024 58D1 bne .L229 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3078 .loc 1 1785 54 view .LVU1073 3079 0026 DCF80840 ldr r4, [ip, #8] 3080 .LVL184: 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3081 .loc 1 1785 40 view .LVU1074 3082 002a 002C cmp r4, #0 3083 002c 5BD1 bne .L230 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3084 .loc 1 1785 90 discriminator 1 view .LVU1075 3085 002e 0428 cmp r0, #4 3086 0030 5BD1 bne .L231 3087 .L220: 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3088 .loc 1 1791 3 is_stmt 1 view .LVU1076 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3089 .loc 1 1791 6 is_stmt 0 view .LVU1077 3090 0032 0029 cmp r1, #0 3091 0034 5BD0 beq .L232 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3092 .loc 1 1791 25 discriminator 1 view .LVU1078 3093 0036 002A cmp r2, #0 3094 0038 5BD0 beq .L233 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3095 .loc 1 1791 46 discriminator 2 view .LVU1079 3096 003a 002B cmp r3, #0 3097 003c 5BD0 beq .L234 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3098 .loc 1 1798 3 is_stmt 1 view .LVU1080 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3099 .loc 1 1798 11 is_stmt 0 view .LVU1081 3100 003e 9CF85D00 ldrb r0, [ip, #93] @ zero_extendqisi2 3101 .LVL185: 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3102 .loc 1 1798 11 view .LVU1082 3103 0042 C0B2 uxtb r0, r0 ARM GAS /tmp/ccZ0BHQJ.s page 149 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3104 .loc 1 1798 6 view .LVU1083 3105 0044 0428 cmp r0, #4 3106 0046 02D0 beq .L222 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3107 .loc 1 1800 5 is_stmt 1 view .LVU1084 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3108 .loc 1 1800 17 is_stmt 0 view .LVU1085 3109 0048 0520 movs r0, #5 3110 004a 8CF85D00 strb r0, [ip, #93] 3111 .L222: 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3112 .loc 1 1804 3 is_stmt 1 view .LVU1086 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3113 .loc 1 1804 21 is_stmt 0 view .LVU1087 3114 004e 0020 movs r0, #0 3115 0050 CCF86000 str r0, [ip, #96] 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3116 .loc 1 1805 3 is_stmt 1 view .LVU1088 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3117 .loc 1 1805 21 is_stmt 0 view .LVU1089 3118 0054 CCF83810 str r1, [ip, #56] 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3119 .loc 1 1806 3 is_stmt 1 view .LVU1090 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3120 .loc 1 1806 21 is_stmt 0 view .LVU1091 3121 0058 ACF83C30 strh r3, [ip, #60] @ movhi 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3122 .loc 1 1807 3 is_stmt 1 view .LVU1092 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3123 .loc 1 1807 21 is_stmt 0 view .LVU1093 3124 005c ACF83E30 strh r3, [ip, #62] @ movhi 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3125 .loc 1 1808 3 is_stmt 1 view .LVU1094 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3126 .loc 1 1808 21 is_stmt 0 view .LVU1095 3127 0060 CCF84020 str r2, [ip, #64] 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3128 .loc 1 1809 3 is_stmt 1 view .LVU1096 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3129 .loc 1 1809 21 is_stmt 0 view .LVU1097 3130 0064 ACF84430 strh r3, [ip, #68] @ movhi 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3131 .loc 1 1810 3 is_stmt 1 view .LVU1098 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3132 .loc 1 1810 21 is_stmt 0 view .LVU1099 3133 0068 ACF84630 strh r3, [ip, #70] @ movhi 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3134 .loc 1 1813 3 is_stmt 1 view .LVU1100 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3135 .loc 1 1813 17 is_stmt 0 view .LVU1101 3136 006c DCF80C20 ldr r2, [ip, #12] 3137 .LVL186: 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3138 .loc 1 1813 6 view .LVU1102 3139 0070 B2F5E06F cmp r2, #1792 3140 0074 22D9 bls .L223 ARM GAS /tmp/ccZ0BHQJ.s page 150 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3141 .loc 1 1815 5 is_stmt 1 view .LVU1103 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3142 .loc 1 1815 21 is_stmt 0 view .LVU1104 3143 0076 2349 ldr r1, .L240 3144 .LVL187: 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3145 .loc 1 1815 21 view .LVU1105 3146 0078 CCF84C10 str r1, [ip, #76] 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3147 .loc 1 1816 5 is_stmt 1 view .LVU1106 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3148 .loc 1 1816 21 is_stmt 0 view .LVU1107 3149 007c 2249 ldr r1, .L240+4 3150 007e CCF85010 str r1, [ip, #80] 3151 .L224: 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3152 .loc 1 1842 3 is_stmt 1 view .LVU1108 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3153 .loc 1 1842 6 is_stmt 0 view .LVU1109 3154 0082 B2F5E06F cmp r2, #1792 3155 0086 01D8 bhi .L225 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3156 .loc 1 1842 49 discriminator 1 view .LVU1110 3157 0088 012B cmp r3, #1 3158 008a 1ED9 bls .L226 3159 .L225: 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3160 .loc 1 1845 5 is_stmt 1 view .LVU1111 3161 008c DCF80020 ldr r2, [ip] 3162 0090 5368 ldr r3, [r2, #4] 3163 .LVL188: 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3164 .loc 1 1845 5 is_stmt 0 view .LVU1112 3165 0092 23F48053 bic r3, r3, #4096 3166 0096 5360 str r3, [r2, #4] 3167 .LVL189: 3168 .L227: 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3169 .loc 1 1854 3 is_stmt 1 view .LVU1113 3170 0098 DCF80020 ldr r2, [ip] 3171 009c 5368 ldr r3, [r2, #4] 3172 009e 43F0E003 orr r3, r3, #224 3173 00a2 5360 str r3, [r2, #4] 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3174 .loc 1 1857 3 view .LVU1114 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3175 .loc 1 1857 12 is_stmt 0 view .LVU1115 3176 00a4 DCF80030 ldr r3, [ip] 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3177 .loc 1 1857 22 view .LVU1116 3178 00a8 1A68 ldr r2, [r3] 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3179 .loc 1 1857 6 view .LVU1117 3180 00aa 12F0400F tst r2, #64 3181 00ae 24D1 bne .L235 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 151 3182 .loc 1 1860 5 is_stmt 1 view .LVU1118 3183 00b0 1A68 ldr r2, [r3] 3184 00b2 42F04002 orr r2, r2, #64 3185 00b6 1A60 str r2, [r3] 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3186 .loc 1 1772 24 is_stmt 0 view .LVU1119 3187 00b8 0020 movs r0, #0 3188 00ba 0EE0 b .L221 3189 .LVL190: 3190 .L223: 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3191 .loc 1 1820 5 is_stmt 1 view .LVU1120 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3192 .loc 1 1820 21 is_stmt 0 view .LVU1121 3193 00bc 1349 ldr r1, .L240+8 3194 .LVL191: 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3195 .loc 1 1820 21 view .LVU1122 3196 00be CCF84C10 str r1, [ip, #76] 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3197 .loc 1 1821 5 is_stmt 1 view .LVU1123 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3198 .loc 1 1821 21 is_stmt 0 view .LVU1124 3199 00c2 1349 ldr r1, .L240+12 3200 00c4 CCF85010 str r1, [ip, #80] 3201 00c8 DBE7 b .L224 3202 .L226: 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3203 .loc 1 1850 5 is_stmt 1 view .LVU1125 3204 00ca DCF80020 ldr r2, [ip] 3205 00ce 5368 ldr r3, [r2, #4] 3206 .LVL192: 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3207 .loc 1 1850 5 is_stmt 0 view .LVU1126 3208 00d0 43F48053 orr r3, r3, #4096 3209 00d4 5360 str r3, [r2, #4] 3210 .LVL193: 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3211 .loc 1 1850 5 view .LVU1127 3212 00d6 DFE7 b .L227 3213 .LVL194: 3214 .L229: 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3215 .loc 1 1787 15 view .LVU1128 3216 00d8 0220 movs r0, #2 3217 .LVL195: 3218 .L221: 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3219 .loc 1 1865 3 is_stmt 1 view .LVU1129 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3220 .loc 1 1865 3 view .LVU1130 3221 00da 0023 movs r3, #0 3222 00dc 8CF85C30 strb r3, [ip, #92] 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3223 .loc 1 1865 3 view .LVU1131 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3224 .loc 1 1866 3 view .LVU1132 ARM GAS /tmp/ccZ0BHQJ.s page 152 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3225 .loc 1 1867 1 is_stmt 0 view .LVU1133 3226 00e0 5DF8044B ldr r4, [sp], #4 3227 .cfi_remember_state 3228 .cfi_restore 4 3229 .cfi_def_cfa_offset 0 3230 00e4 7047 bx lr 3231 .LVL196: 3232 .L230: 3233 .cfi_restore_state 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3234 .loc 1 1787 15 view .LVU1134 3235 00e6 0220 movs r0, #2 3236 .LVL197: 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3237 .loc 1 1787 15 view .LVU1135 3238 00e8 F7E7 b .L221 3239 .LVL198: 3240 .L231: 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3241 .loc 1 1787 15 view .LVU1136 3242 00ea 0220 movs r0, #2 3243 .LVL199: 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3244 .loc 1 1787 15 view .LVU1137 3245 00ec F5E7 b .L221 3246 .LVL200: 3247 .L232: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3248 .loc 1 1793 15 view .LVU1138 3249 00ee 0120 movs r0, #1 3250 .LVL201: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3251 .loc 1 1793 15 view .LVU1139 3252 00f0 F3E7 b .L221 3253 .LVL202: 3254 .L233: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3255 .loc 1 1793 15 view .LVU1140 3256 00f2 0120 movs r0, #1 3257 .LVL203: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3258 .loc 1 1793 15 view .LVU1141 3259 00f4 F1E7 b .L221 3260 .LVL204: 3261 .L234: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3262 .loc 1 1793 15 view .LVU1142 3263 00f6 0120 movs r0, #1 3264 .LVL205: 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3265 .loc 1 1793 15 view .LVU1143 3266 00f8 EFE7 b .L221 3267 .LVL206: 3268 .L235: 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3269 .loc 1 1772 24 view .LVU1144 ARM GAS /tmp/ccZ0BHQJ.s page 153 3270 00fa 0020 movs r0, #0 3271 00fc EDE7 b .L221 3272 .LVL207: 3273 .L228: 3274 .cfi_def_cfa_offset 0 3275 .cfi_restore 4 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3276 .loc 1 1778 3 discriminator 1 view .LVU1145 3277 00fe 0220 movs r0, #2 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3278 .loc 1 1867 1 view .LVU1146 3279 0100 7047 bx lr 3280 .L241: 3281 0102 00BF .align 2 3282 .L240: 3283 0104 00000000 .word SPI_2linesRxISR_16BIT 3284 0108 00000000 .word SPI_2linesTxISR_16BIT 3285 010c 00000000 .word SPI_2linesRxISR_8BIT 3286 0110 00000000 .word SPI_2linesTxISR_8BIT 3287 .cfi_endproc 3288 .LFE139: 3290 .section .text.HAL_SPI_Receive_IT,"ax",%progbits 3291 .align 1 3292 .global HAL_SPI_Receive_IT 3293 .syntax unified 3294 .thumb 3295 .thumb_func 3297 HAL_SPI_Receive_IT: 3298 .LVL208: 3299 .LFB138: 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3300 .loc 1 1661 1 is_stmt 1 view -0 3301 .cfi_startproc 3302 @ args = 0, pretend = 0, frame = 0 3303 @ frame_needed = 0, uses_anonymous_args = 0 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3304 .loc 1 1661 1 is_stmt 0 view .LVU1148 3305 0000 08B5 push {r3, lr} 3306 .cfi_def_cfa_offset 8 3307 .cfi_offset 3, -8 3308 .cfi_offset 14, -4 3309 0002 8446 mov ip, r0 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3310 .loc 1 1662 3 is_stmt 1 view .LVU1149 3311 .LVL209: 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3312 .loc 1 1665 3 view .LVU1150 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3313 .loc 1 1665 11 is_stmt 0 view .LVU1151 3314 0004 90F85D00 ldrb r0, [r0, #93] @ zero_extendqisi2 3315 .LVL210: 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3316 .loc 1 1665 11 view .LVU1152 3317 0008 C0B2 uxtb r0, r0 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3318 .loc 1 1665 6 view .LVU1153 3319 000a 0128 cmp r0, #1 ARM GAS /tmp/ccZ0BHQJ.s page 154 3320 000c 6BD1 bne .L249 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3321 .loc 1 1671 3 is_stmt 1 view .LVU1154 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3322 .loc 1 1671 18 is_stmt 0 view .LVU1155 3323 000e DCF80830 ldr r3, [ip, #8] 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3324 .loc 1 1671 6 view .LVU1156 3325 0012 23B9 cbnz r3, .L244 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3326 .loc 1 1671 68 discriminator 1 view .LVU1157 3327 0014 DCF80430 ldr r3, [ip, #4] 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3328 .loc 1 1671 54 discriminator 1 view .LVU1158 3329 0018 B3F5827F cmp r3, #260 3330 001c 43D0 beq .L253 3331 .L244: 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3332 .loc 1 1679 3 is_stmt 1 view .LVU1159 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3333 .loc 1 1679 3 view .LVU1160 3334 001e 9CF85C30 ldrb r3, [ip, #92] @ zero_extendqisi2 3335 0022 012B cmp r3, #1 3336 0024 66D0 beq .L250 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3337 .loc 1 1679 3 discriminator 2 view .LVU1161 3338 0026 0123 movs r3, #1 3339 0028 8CF85C30 strb r3, [ip, #92] 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3340 .loc 1 1679 3 discriminator 2 view .LVU1162 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3341 .loc 1 1681 3 view .LVU1163 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3342 .loc 1 1681 6 is_stmt 0 view .LVU1164 3343 002c 0029 cmp r1, #0 3344 002e 5BD0 beq .L243 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3345 .loc 1 1681 23 discriminator 1 view .LVU1165 3346 0030 002A cmp r2, #0 3347 0032 59D0 beq .L243 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3348 .loc 1 1688 3 is_stmt 1 view .LVU1166 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3349 .loc 1 1688 21 is_stmt 0 view .LVU1167 3350 0034 0423 movs r3, #4 3351 0036 8CF85D30 strb r3, [ip, #93] 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3352 .loc 1 1689 3 is_stmt 1 view .LVU1168 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3353 .loc 1 1689 21 is_stmt 0 view .LVU1169 3354 003a 0023 movs r3, #0 3355 003c CCF86030 str r3, [ip, #96] 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3356 .loc 1 1690 3 is_stmt 1 view .LVU1170 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3357 .loc 1 1690 21 is_stmt 0 view .LVU1171 3358 0040 CCF84010 str r1, [ip, #64] ARM GAS /tmp/ccZ0BHQJ.s page 155 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3359 .loc 1 1691 3 is_stmt 1 view .LVU1172 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3360 .loc 1 1691 21 is_stmt 0 view .LVU1173 3361 0044 ACF84420 strh r2, [ip, #68] @ movhi 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3362 .loc 1 1692 3 is_stmt 1 view .LVU1174 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3363 .loc 1 1692 21 is_stmt 0 view .LVU1175 3364 0048 ACF84620 strh r2, [ip, #70] @ movhi 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3365 .loc 1 1695 3 is_stmt 1 view .LVU1176 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3366 .loc 1 1695 21 is_stmt 0 view .LVU1177 3367 004c CCF83830 str r3, [ip, #56] 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3368 .loc 1 1696 3 is_stmt 1 view .LVU1178 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3369 .loc 1 1696 21 is_stmt 0 view .LVU1179 3370 0050 ACF83C30 strh r3, [ip, #60] @ movhi 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3371 .loc 1 1697 3 is_stmt 1 view .LVU1180 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3372 .loc 1 1697 21 is_stmt 0 view .LVU1181 3373 0054 ACF83E30 strh r3, [ip, #62] @ movhi 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3374 .loc 1 1698 3 is_stmt 1 view .LVU1182 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3375 .loc 1 1698 21 is_stmt 0 view .LVU1183 3376 0058 CCF85030 str r3, [ip, #80] 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3377 .loc 1 1701 3 is_stmt 1 view .LVU1184 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3378 .loc 1 1701 17 is_stmt 0 view .LVU1185 3379 005c DCF80C30 ldr r3, [ip, #12] 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3380 .loc 1 1701 6 view .LVU1186 3381 0060 B3F5E06F cmp r3, #1792 3382 0064 28D9 bls .L246 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3383 .loc 1 1704 5 is_stmt 1 view .LVU1187 3384 0066 DCF80020 ldr r2, [ip] 3385 .LVL211: 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3386 .loc 1 1704 5 is_stmt 0 view .LVU1188 3387 006a 5368 ldr r3, [r2, #4] 3388 006c 23F48053 bic r3, r3, #4096 3389 0070 5360 str r3, [r2, #4] 3390 .LVL212: 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3391 .loc 1 1705 5 is_stmt 1 view .LVU1189 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3392 .loc 1 1705 17 is_stmt 0 view .LVU1190 3393 0072 214B ldr r3, .L255 3394 0074 CCF84C30 str r3, [ip, #76] 3395 .L247: 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 156 3396 .loc 1 1715 3 is_stmt 1 view .LVU1191 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3397 .loc 1 1715 17 is_stmt 0 view .LVU1192 3398 0078 DCF80830 ldr r3, [ip, #8] 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3399 .loc 1 1715 6 view .LVU1193 3400 007c B3F5004F cmp r3, #32768 3401 0080 24D0 beq .L254 3402 .L248: 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3403 .loc 1 1740 3 is_stmt 1 view .LVU1194 3404 0082 DCF80020 ldr r2, [ip] 3405 0086 5368 ldr r3, [r2, #4] 3406 0088 43F06003 orr r3, r3, #96 3407 008c 5360 str r3, [r2, #4] 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3408 .loc 1 1747 3 view .LVU1195 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3409 .loc 1 1747 12 is_stmt 0 view .LVU1196 3410 008e DCF80030 ldr r3, [ip] 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3411 .loc 1 1747 22 view .LVU1197 3412 0092 1A68 ldr r2, [r3] 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3413 .loc 1 1747 6 view .LVU1198 3414 0094 12F0400F tst r2, #64 3415 0098 2AD1 bne .L251 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3416 .loc 1 1750 5 is_stmt 1 view .LVU1199 3417 009a 1A68 ldr r2, [r3] 3418 009c 42F04002 orr r2, r2, #64 3419 00a0 1A60 str r2, [r3] 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3420 .loc 1 1662 21 is_stmt 0 view .LVU1200 3421 00a2 0020 movs r0, #0 3422 00a4 20E0 b .L243 3423 .LVL213: 3424 .L253: 1673: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 3425 .loc 1 1673 5 is_stmt 1 view .LVU1201 1673: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 3426 .loc 1 1673 17 is_stmt 0 view .LVU1202 3427 00a6 0423 movs r3, #4 3428 00a8 8CF85D30 strb r3, [ip, #93] 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3429 .loc 1 1675 5 is_stmt 1 view .LVU1203 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3430 .loc 1 1675 12 is_stmt 0 view .LVU1204 3431 00ac 1346 mov r3, r2 3432 00ae 0A46 mov r2, r1 3433 .LVL214: 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3434 .loc 1 1675 12 view .LVU1205 3435 00b0 6046 mov r0, ip 3436 00b2 FFF7FEFF bl HAL_SPI_TransmitReceive_IT 3437 .LVL215: 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 157 3438 .loc 1 1675 12 view .LVU1206 3439 00b6 1AE0 b .L245 3440 .LVL216: 3441 .L246: 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3442 .loc 1 1710 5 is_stmt 1 view .LVU1207 3443 00b8 DCF80020 ldr r2, [ip] 3444 .LVL217: 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3445 .loc 1 1710 5 is_stmt 0 view .LVU1208 3446 00bc 5368 ldr r3, [r2, #4] 3447 00be 43F48053 orr r3, r3, #4096 3448 00c2 5360 str r3, [r2, #4] 3449 .LVL218: 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3450 .loc 1 1711 5 is_stmt 1 view .LVU1209 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3451 .loc 1 1711 17 is_stmt 0 view .LVU1210 3452 00c4 0D4B ldr r3, .L255+4 3453 00c6 CCF84C30 str r3, [ip, #76] 3454 00ca D5E7 b .L247 3455 .L254: 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 3456 .loc 1 1718 5 is_stmt 1 view .LVU1211 3457 00cc DCF80020 ldr r2, [ip] 3458 00d0 1368 ldr r3, [r2] 3459 00d2 23F04003 bic r3, r3, #64 3460 00d6 1360 str r3, [r2] 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3461 .loc 1 1719 5 view .LVU1212 3462 00d8 DCF80020 ldr r2, [ip] 3463 00dc 1368 ldr r3, [r2] 3464 00de 23F48043 bic r3, r3, #16384 3465 00e2 1360 str r3, [r2] 3466 00e4 CDE7 b .L248 3467 .LVL219: 3468 .L249: 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3469 .loc 1 1667 15 is_stmt 0 view .LVU1213 3470 00e6 0220 movs r0, #2 3471 .LVL220: 3472 .L243: 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3473 .loc 1 1755 3 is_stmt 1 view .LVU1214 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3474 .loc 1 1755 3 view .LVU1215 3475 00e8 0023 movs r3, #0 3476 00ea 8CF85C30 strb r3, [ip, #92] 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3477 .loc 1 1755 3 view .LVU1216 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3478 .loc 1 1756 3 view .LVU1217 3479 .LVL221: 3480 .L245: 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3481 .loc 1 1757 1 is_stmt 0 view .LVU1218 3482 00ee 08BD pop {r3, pc} ARM GAS /tmp/ccZ0BHQJ.s page 158 3483 .LVL222: 3484 .L251: 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3485 .loc 1 1662 21 view .LVU1219 3486 00f0 0020 movs r0, #0 3487 00f2 F9E7 b .L243 3488 .LVL223: 3489 .L250: 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3490 .loc 1 1679 3 discriminator 1 view .LVU1220 3491 00f4 0220 movs r0, #2 3492 00f6 FAE7 b .L245 3493 .L256: 3494 .align 2 3495 .L255: 3496 00f8 00000000 .word SPI_RxISR_16BIT 3497 00fc 00000000 .word SPI_RxISR_8BIT 3498 .cfi_endproc 3499 .LFE138: 3501 .section .text.HAL_SPI_Transmit_DMA,"ax",%progbits 3502 .align 1 3503 .global HAL_SPI_Transmit_DMA 3504 .syntax unified 3505 .thumb 3506 .thumb_func 3508 HAL_SPI_Transmit_DMA: 3509 .LVL224: 3510 .LFB140: 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3511 .loc 1 1878 1 is_stmt 1 view -0 3512 .cfi_startproc 3513 @ args = 0, pretend = 0, frame = 0 3514 @ frame_needed = 0, uses_anonymous_args = 0 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3515 .loc 1 1878 1 is_stmt 0 view .LVU1222 3516 0000 38B5 push {r3, r4, r5, lr} 3517 .cfi_def_cfa_offset 16 3518 .cfi_offset 3, -16 3519 .cfi_offset 4, -12 3520 .cfi_offset 5, -8 3521 .cfi_offset 14, -4 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3522 .loc 1 1879 3 is_stmt 1 view .LVU1223 3523 .LVL225: 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3524 .loc 1 1882 3 view .LVU1224 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3525 .loc 1 1885 3 view .LVU1225 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3526 .loc 1 1888 3 view .LVU1226 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3527 .loc 1 1888 3 view .LVU1227 3528 0002 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 3529 0006 012B cmp r3, #1 3530 0008 00F08980 beq .L265 3531 000c 0446 mov r4, r0 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 159 3532 .loc 1 1888 3 discriminator 2 view .LVU1228 3533 000e 0123 movs r3, #1 3534 0010 80F85C30 strb r3, [r0, #92] 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535 .loc 1 1888 3 discriminator 2 view .LVU1229 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3536 .loc 1 1890 3 view .LVU1230 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3537 .loc 1 1890 11 is_stmt 0 view .LVU1231 3538 0014 90F85D50 ldrb r5, [r0, #93] @ zero_extendqisi2 3539 0018 EDB2 uxtb r5, r5 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3540 .loc 1 1890 6 view .LVU1232 3541 001a 9D42 cmp r5, r3 3542 001c 79D1 bne .L266 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3543 .loc 1 1896 3 is_stmt 1 view .LVU1233 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3544 .loc 1 1896 6 is_stmt 0 view .LVU1234 3545 001e 0029 cmp r1, #0 3546 0020 78D0 beq .L259 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3547 .loc 1 1896 23 discriminator 1 view .LVU1235 3548 0022 002A cmp r2, #0 3549 0024 76D0 beq .L259 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3550 .loc 1 1903 3 is_stmt 1 view .LVU1236 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3551 .loc 1 1903 21 is_stmt 0 view .LVU1237 3552 0026 0323 movs r3, #3 3553 0028 80F85D30 strb r3, [r0, #93] 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3554 .loc 1 1904 3 is_stmt 1 view .LVU1238 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3555 .loc 1 1904 21 is_stmt 0 view .LVU1239 3556 002c 0023 movs r3, #0 3557 002e 0366 str r3, [r0, #96] 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3558 .loc 1 1905 3 is_stmt 1 view .LVU1240 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3559 .loc 1 1905 21 is_stmt 0 view .LVU1241 3560 0030 8163 str r1, [r0, #56] 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3561 .loc 1 1906 3 is_stmt 1 view .LVU1242 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3562 .loc 1 1906 21 is_stmt 0 view .LVU1243 3563 0032 8287 strh r2, [r0, #60] @ movhi 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3564 .loc 1 1907 3 is_stmt 1 view .LVU1244 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3565 .loc 1 1907 21 is_stmt 0 view .LVU1245 3566 0034 C287 strh r2, [r0, #62] @ movhi 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3567 .loc 1 1910 3 is_stmt 1 view .LVU1246 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3568 .loc 1 1910 21 is_stmt 0 view .LVU1247 3569 0036 0364 str r3, [r0, #64] ARM GAS /tmp/ccZ0BHQJ.s page 160 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3570 .loc 1 1911 3 is_stmt 1 view .LVU1248 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3571 .loc 1 1911 21 is_stmt 0 view .LVU1249 3572 0038 0365 str r3, [r0, #80] 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3573 .loc 1 1912 3 is_stmt 1 view .LVU1250 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3574 .loc 1 1912 21 is_stmt 0 view .LVU1251 3575 003a C364 str r3, [r0, #76] 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3576 .loc 1 1913 3 is_stmt 1 view .LVU1252 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3577 .loc 1 1913 21 is_stmt 0 view .LVU1253 3578 003c A0F84430 strh r3, [r0, #68] @ movhi 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3579 .loc 1 1914 3 is_stmt 1 view .LVU1254 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3580 .loc 1 1914 21 is_stmt 0 view .LVU1255 3581 0040 A0F84630 strh r3, [r0, #70] @ movhi 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3582 .loc 1 1917 3 is_stmt 1 view .LVU1256 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3583 .loc 1 1917 17 is_stmt 0 view .LVU1257 3584 0044 8368 ldr r3, [r0, #8] 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3585 .loc 1 1917 6 view .LVU1258 3586 0046 B3F5004F cmp r3, #32768 3587 004a 39D0 beq .L268 3588 .LVL226: 3589 .L260: 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3590 .loc 1 1933 3 is_stmt 1 view .LVU1259 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3591 .loc 1 1933 7 is_stmt 0 view .LVU1260 3592 004c 636D ldr r3, [r4, #84] 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3593 .loc 1 1933 38 view .LVU1261 3594 004e 354A ldr r2, .L271 3595 0050 DA62 str r2, [r3, #44] 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3596 .loc 1 1936 3 is_stmt 1 view .LVU1262 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3597 .loc 1 1936 7 is_stmt 0 view .LVU1263 3598 0052 636D ldr r3, [r4, #84] 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3599 .loc 1 1936 34 view .LVU1264 3600 0054 344A ldr r2, .L271+4 3601 0056 9A62 str r2, [r3, #40] 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3602 .loc 1 1939 3 is_stmt 1 view .LVU1265 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3603 .loc 1 1939 7 is_stmt 0 view .LVU1266 3604 0058 636D ldr r3, [r4, #84] 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3605 .loc 1 1939 35 view .LVU1267 3606 005a 344A ldr r2, .L271+8 ARM GAS /tmp/ccZ0BHQJ.s page 161 3607 005c 1A63 str r2, [r3, #48] 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3608 .loc 1 1942 3 is_stmt 1 view .LVU1268 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3609 .loc 1 1942 7 is_stmt 0 view .LVU1269 3610 005e 636D ldr r3, [r4, #84] 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3611 .loc 1 1942 35 view .LVU1270 3612 0060 0022 movs r2, #0 3613 0062 5A63 str r2, [r3, #52] 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 3614 .loc 1 1944 3 is_stmt 1 view .LVU1271 3615 0064 2268 ldr r2, [r4] 3616 0066 5368 ldr r3, [r2, #4] 3617 0068 23F48043 bic r3, r3, #16384 3618 006c 5360 str r3, [r2, #4] 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3619 .loc 1 1946 3 view .LVU1272 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3620 .loc 1 1946 18 is_stmt 0 view .LVU1273 3621 006e E368 ldr r3, [r4, #12] 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3622 .loc 1 1946 6 view .LVU1274 3623 0070 B3F5E06F cmp r3, #1792 3624 0074 04D8 bhi .L261 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3625 .loc 1 1946 58 discriminator 1 view .LVU1275 3626 0076 636D ldr r3, [r4, #84] 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3627 .loc 1 1946 72 discriminator 1 view .LVU1276 3628 0078 5B69 ldr r3, [r3, #20] 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3629 .loc 1 1946 50 discriminator 1 view .LVU1277 3630 007a B3F5806F cmp r3, #1024 3631 007e 2AD0 beq .L269 3632 .L261: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3633 .loc 1 1962 3 is_stmt 1 view .LVU1278 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3634 .loc 1 1962 91 is_stmt 0 view .LVU1279 3635 0080 2268 ldr r2, [r4] 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3636 .loc 1 1963 38 view .LVU1280 3637 0082 E38F ldrh r3, [r4, #62] 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3638 .loc 1 1962 17 view .LVU1281 3639 0084 9BB2 uxth r3, r3 3640 0086 0C32 adds r2, r2, #12 3641 0088 A16B ldr r1, [r4, #56] 3642 .LVL227: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3643 .loc 1 1962 17 view .LVU1282 3644 008a 606D ldr r0, [r4, #84] 3645 .LVL228: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3646 .loc 1 1962 17 view .LVU1283 3647 008c FFF7FEFF bl HAL_DMA_Start_IT ARM GAS /tmp/ccZ0BHQJ.s page 162 3648 .LVL229: 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3649 .loc 1 1962 6 discriminator 1 view .LVU1284 3650 0090 0146 mov r1, r0 3651 0092 0028 cmp r0, #0 3652 0094 38D1 bne .L270 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3653 .loc 1 1973 3 is_stmt 1 view .LVU1285 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3654 .loc 1 1973 12 is_stmt 0 view .LVU1286 3655 0096 2368 ldr r3, [r4] 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3656 .loc 1 1973 22 view .LVU1287 3657 0098 1A68 ldr r2, [r3] 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3658 .loc 1 1973 6 view .LVU1288 3659 009a 12F0400F tst r2, #64 3660 009e 03D1 bne .L264 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3661 .loc 1 1976 5 is_stmt 1 view .LVU1289 3662 00a0 1A68 ldr r2, [r3] 3663 00a2 42F04002 orr r2, r2, #64 3664 00a6 1A60 str r2, [r3] 3665 .L264: 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3666 .loc 1 1980 3 view .LVU1290 3667 00a8 2268 ldr r2, [r4] 3668 00aa 5368 ldr r3, [r2, #4] 3669 00ac 43F02003 orr r3, r3, #32 3670 00b0 5360 str r3, [r2, #4] 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3671 .loc 1 1983 3 view .LVU1291 3672 00b2 2268 ldr r2, [r4] 3673 00b4 5368 ldr r3, [r2, #4] 3674 00b6 43F00203 orr r3, r3, #2 3675 00ba 5360 str r3, [r2, #4] 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3676 .loc 1 1879 21 is_stmt 0 view .LVU1292 3677 00bc 0D46 mov r5, r1 3678 00be 29E0 b .L259 3679 .LVL230: 3680 .L268: 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3681 .loc 1 1920 5 is_stmt 1 view .LVU1293 3682 00c0 0268 ldr r2, [r0] 3683 .LVL231: 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3684 .loc 1 1920 5 is_stmt 0 view .LVU1294 3685 00c2 1368 ldr r3, [r2] 3686 00c4 23F04003 bic r3, r3, #64 3687 00c8 1360 str r3, [r2] 3688 .LVL232: 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3689 .loc 1 1921 5 is_stmt 1 view .LVU1295 3690 00ca 0268 ldr r2, [r0] 3691 00cc 1368 ldr r3, [r2] 3692 00ce 43F48043 orr r3, r3, #16384 ARM GAS /tmp/ccZ0BHQJ.s page 163 3693 00d2 1360 str r3, [r2] 3694 00d4 BAE7 b .L260 3695 .L269: 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3696 .loc 1 1949 5 view .LVU1296 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3697 .loc 1 1949 14 is_stmt 0 view .LVU1297 3698 00d6 E38F ldrh r3, [r4, #62] 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3699 .loc 1 1949 8 view .LVU1298 3700 00d8 13F0010F tst r3, #1 3701 00dc 09D1 bne .L262 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 3702 .loc 1 1951 7 is_stmt 1 view .LVU1299 3703 00de 2268 ldr r2, [r4] 3704 00e0 5368 ldr r3, [r2, #4] 3705 00e2 23F48043 bic r3, r3, #16384 3706 00e6 5360 str r3, [r2, #4] 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3707 .loc 1 1952 7 view .LVU1300 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3708 .loc 1 1952 32 is_stmt 0 view .LVU1301 3709 00e8 E38F ldrh r3, [r4, #62] 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3710 .loc 1 1952 25 view .LVU1302 3711 00ea C3F34E03 ubfx r3, r3, #1, #15 3712 00ee E387 strh r3, [r4, #62] @ movhi 3713 00f0 C6E7 b .L261 3714 .L262: 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 3715 .loc 1 1956 7 is_stmt 1 view .LVU1303 3716 00f2 2268 ldr r2, [r4] 3717 00f4 5368 ldr r3, [r2, #4] 3718 00f6 43F48043 orr r3, r3, #16384 3719 00fa 5360 str r3, [r2, #4] 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3720 .loc 1 1957 7 view .LVU1304 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3721 .loc 1 1957 32 is_stmt 0 view .LVU1305 3722 00fc E38F ldrh r3, [r4, #62] 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3723 .loc 1 1957 53 view .LVU1306 3724 00fe C3F34E03 ubfx r3, r3, #1, #15 3725 0102 0133 adds r3, r3, #1 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3726 .loc 1 1957 25 view .LVU1307 3727 0104 E387 strh r3, [r4, #62] @ movhi 3728 0106 BBE7 b .L261 3729 .LVL233: 3730 .L270: 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3731 .loc 1 1966 5 is_stmt 1 view .LVU1308 3732 0108 236E ldr r3, [r4, #96] 3733 010a 43F01003 orr r3, r3, #16 3734 010e 2366 str r3, [r4, #96] 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3735 .loc 1 1967 5 view .LVU1309 ARM GAS /tmp/ccZ0BHQJ.s page 164 3736 .LVL234: 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3737 .loc 1 1969 5 view .LVU1310 3738 0110 00E0 b .L259 3739 .LVL235: 3740 .L266: 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3741 .loc 1 1892 15 is_stmt 0 view .LVU1311 3742 0112 0225 movs r5, #2 3743 .LVL236: 3744 .L259: 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3745 .loc 1 1987 3 is_stmt 1 view .LVU1312 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3746 .loc 1 1987 3 view .LVU1313 3747 0114 0023 movs r3, #0 3748 0116 84F85C30 strb r3, [r4, #92] 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3749 .loc 1 1987 3 view .LVU1314 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3750 .loc 1 1988 3 view .LVU1315 3751 .LVL237: 3752 .L258: 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3753 .loc 1 1989 1 is_stmt 0 view .LVU1316 3754 011a 2846 mov r0, r5 3755 011c 38BD pop {r3, r4, r5, pc} 3756 .LVL238: 3757 .L265: 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3758 .loc 1 1888 3 discriminator 1 view .LVU1317 3759 011e 0225 movs r5, #2 3760 0120 FBE7 b .L258 3761 .L272: 3762 0122 00BF .align 2 3763 .L271: 3764 0124 00000000 .word SPI_DMAHalfTransmitCplt 3765 0128 00000000 .word SPI_DMATransmitCplt 3766 012c 00000000 .word SPI_DMAError 3767 .cfi_endproc 3768 .LFE140: 3770 .section .text.HAL_SPI_TransmitReceive_DMA,"ax",%progbits 3771 .align 1 3772 .global HAL_SPI_TransmitReceive_DMA 3773 .syntax unified 3774 .thumb 3775 .thumb_func 3777 HAL_SPI_TransmitReceive_DMA: 3778 .LVL239: 3779 .LFB142: 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3780 .loc 1 2156 1 is_stmt 1 view -0 3781 .cfi_startproc 3782 @ args = 0, pretend = 0, frame = 0 3783 @ frame_needed = 0, uses_anonymous_args = 0 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3784 .loc 1 2156 1 is_stmt 0 view .LVU1319 ARM GAS /tmp/ccZ0BHQJ.s page 165 3785 0000 38B5 push {r3, r4, r5, lr} 3786 .cfi_def_cfa_offset 16 3787 .cfi_offset 3, -16 3788 .cfi_offset 4, -12 3789 .cfi_offset 5, -8 3790 .cfi_offset 14, -4 3791 0002 0446 mov r4, r0 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 3792 .loc 1 2157 3 is_stmt 1 view .LVU1320 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3793 .loc 1 2158 3 view .LVU1321 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3794 .loc 1 2159 3 view .LVU1322 3795 .LVL240: 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 3796 .loc 1 2162 3 view .LVU1323 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3797 .loc 1 2163 3 view .LVU1324 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3798 .loc 1 2166 3 view .LVU1325 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3799 .loc 1 2169 3 view .LVU1326 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3800 .loc 1 2169 3 view .LVU1327 3801 0004 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 3802 .LVL241: 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3803 .loc 1 2169 3 is_stmt 0 view .LVU1328 3804 0008 0128 cmp r0, #1 3805 000a 00F0FF80 beq .L289 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3806 .loc 1 2169 3 is_stmt 1 discriminator 2 view .LVU1329 3807 000e 0120 movs r0, #1 3808 0010 84F85C00 strb r0, [r4, #92] 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3809 .loc 1 2169 3 discriminator 2 view .LVU1330 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3810 .loc 1 2172 3 view .LVU1331 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3811 .loc 1 2172 23 is_stmt 0 view .LVU1332 3812 0014 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3813 0018 C0B2 uxtb r0, r0 3814 .LVL242: 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3815 .loc 1 2173 3 is_stmt 1 view .LVU1333 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3816 .loc 1 2173 23 is_stmt 0 view .LVU1334 3817 001a 6568 ldr r5, [r4, #4] 3818 .LVL243: 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3819 .loc 1 2175 3 is_stmt 1 view .LVU1335 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3820 .loc 1 2175 6 is_stmt 0 view .LVU1336 3821 001c 0128 cmp r0, #1 3822 001e 0AD0 beq .L275 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3823 .loc 1 2175 7 discriminator 1 view .LVU1337 ARM GAS /tmp/ccZ0BHQJ.s page 166 3824 0020 B5F5827F cmp r5, #260 3825 0024 40F0E180 bne .L290 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3826 .loc 1 2176 54 view .LVU1338 3827 0028 A568 ldr r5, [r4, #8] 3828 .LVL244: 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3829 .loc 1 2176 40 view .LVU1339 3830 002a 002D cmp r5, #0 3831 002c 40F0E280 bne .L291 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3832 .loc 1 2176 90 discriminator 1 view .LVU1340 3833 0030 0428 cmp r0, #4 3834 0032 40F0E180 bne .L292 3835 .L275: 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3836 .loc 1 2182 3 is_stmt 1 view .LVU1341 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3837 .loc 1 2182 6 is_stmt 0 view .LVU1342 3838 0036 0029 cmp r1, #0 3839 0038 00F0E080 beq .L293 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3840 .loc 1 2182 25 discriminator 1 view .LVU1343 3841 003c 002A cmp r2, #0 3842 003e 00F0DF80 beq .L294 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3843 .loc 1 2182 46 discriminator 2 view .LVU1344 3844 0042 002B cmp r3, #0 3845 0044 00F0DE80 beq .L295 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3846 .loc 1 2189 3 is_stmt 1 view .LVU1345 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3847 .loc 1 2189 11 is_stmt 0 view .LVU1346 3848 0048 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3849 .LVL245: 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3850 .loc 1 2189 11 view .LVU1347 3851 004c C0B2 uxtb r0, r0 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3852 .loc 1 2189 6 view .LVU1348 3853 004e 0428 cmp r0, #4 3854 0050 02D0 beq .L277 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3855 .loc 1 2191 5 is_stmt 1 view .LVU1349 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3856 .loc 1 2191 17 is_stmt 0 view .LVU1350 3857 0052 0520 movs r0, #5 3858 0054 84F85D00 strb r0, [r4, #93] 3859 .L277: 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3860 .loc 1 2195 3 is_stmt 1 view .LVU1351 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3861 .loc 1 2195 21 is_stmt 0 view .LVU1352 3862 0058 0020 movs r0, #0 3863 005a 2066 str r0, [r4, #96] 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3864 .loc 1 2196 3 is_stmt 1 view .LVU1353 ARM GAS /tmp/ccZ0BHQJ.s page 167 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3865 .loc 1 2196 21 is_stmt 0 view .LVU1354 3866 005c A163 str r1, [r4, #56] 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3867 .loc 1 2197 3 is_stmt 1 view .LVU1355 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3868 .loc 1 2197 21 is_stmt 0 view .LVU1356 3869 005e A387 strh r3, [r4, #60] @ movhi 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3870 .loc 1 2198 3 is_stmt 1 view .LVU1357 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3871 .loc 1 2198 21 is_stmt 0 view .LVU1358 3872 0060 E387 strh r3, [r4, #62] @ movhi 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3873 .loc 1 2199 3 is_stmt 1 view .LVU1359 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3874 .loc 1 2199 21 is_stmt 0 view .LVU1360 3875 0062 2264 str r2, [r4, #64] 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3876 .loc 1 2200 3 is_stmt 1 view .LVU1361 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3877 .loc 1 2200 21 is_stmt 0 view .LVU1362 3878 0064 A4F84430 strh r3, [r4, #68] @ movhi 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3879 .loc 1 2201 3 is_stmt 1 view .LVU1363 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3880 .loc 1 2201 21 is_stmt 0 view .LVU1364 3881 0068 A4F84630 strh r3, [r4, #70] @ movhi 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3882 .loc 1 2204 3 is_stmt 1 view .LVU1365 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3883 .loc 1 2204 21 is_stmt 0 view .LVU1366 3884 006c E064 str r0, [r4, #76] 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3885 .loc 1 2205 3 is_stmt 1 view .LVU1367 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3886 .loc 1 2205 21 is_stmt 0 view .LVU1368 3887 006e 2065 str r0, [r4, #80] 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3888 .loc 1 2217 3 is_stmt 1 view .LVU1369 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3889 .loc 1 2217 18 is_stmt 0 view .LVU1370 3890 0070 E368 ldr r3, [r4, #12] 3891 .LVL246: 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3892 .loc 1 2217 6 view .LVU1371 3893 0072 B3F5E06F cmp r3, #1792 3894 0076 05D8 bhi .L278 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3895 .loc 1 2217 58 discriminator 1 view .LVU1372 3896 0078 A36D ldr r3, [r4, #88] 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3897 .loc 1 2217 72 discriminator 1 view .LVU1373 3898 007a 5B69 ldr r3, [r3, #20] 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3899 .loc 1 2217 50 discriminator 1 view .LVU1374 3900 007c B3F5806F cmp r3, #1024 ARM GAS /tmp/ccZ0BHQJ.s page 168 3901 0080 00F0C280 beq .L296 3902 .L278: 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3903 .loc 1 2226 3 is_stmt 1 view .LVU1375 3904 0084 2268 ldr r2, [r4] 3905 .LVL247: 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3906 .loc 1 2226 3 is_stmt 0 view .LVU1376 3907 0086 5368 ldr r3, [r2, #4] 3908 0088 23F4C043 bic r3, r3, #24576 3909 008c 5360 str r3, [r2, #4] 3910 .LVL248: 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3911 .loc 1 2229 3 is_stmt 1 view .LVU1377 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3912 .loc 1 2229 17 is_stmt 0 view .LVU1378 3913 008e E368 ldr r3, [r4, #12] 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3914 .loc 1 2229 6 view .LVU1379 3915 0090 B3F5E06F cmp r3, #1792 3916 0094 26D9 bls .L279 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3917 .loc 1 2232 5 is_stmt 1 view .LVU1380 3918 0096 2268 ldr r2, [r4] 3919 0098 5368 ldr r3, [r2, #4] 3920 009a 23F48053 bic r3, r3, #4096 3921 009e 5360 str r3, [r2, #4] 3922 .L280: 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3923 .loc 1 2272 3 view .LVU1381 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3924 .loc 1 2272 11 is_stmt 0 view .LVU1382 3925 00a0 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 3926 00a4 DBB2 uxtb r3, r3 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3927 .loc 1 2272 6 view .LVU1383 3928 00a6 042B cmp r3, #4 3929 00a8 67D0 beq .L298 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3930 .loc 1 2281 5 is_stmt 1 view .LVU1384 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3931 .loc 1 2281 9 is_stmt 0 view .LVU1385 3932 00aa A36D ldr r3, [r4, #88] 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3933 .loc 1 2281 40 view .LVU1386 3934 00ac 584A ldr r2, .L301 3935 00ae DA62 str r2, [r3, #44] 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3936 .loc 1 2282 5 is_stmt 1 view .LVU1387 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3937 .loc 1 2282 9 is_stmt 0 view .LVU1388 3938 00b0 A36D ldr r3, [r4, #88] 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3939 .loc 1 2282 40 view .LVU1389 3940 00b2 584A ldr r2, .L301+4 3941 00b4 9A62 str r2, [r3, #40] 3942 .L285: ARM GAS /tmp/ccZ0BHQJ.s page 169 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3943 .loc 1 2286 3 is_stmt 1 view .LVU1390 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3944 .loc 1 2286 7 is_stmt 0 view .LVU1391 3945 00b6 A36D ldr r3, [r4, #88] 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3946 .loc 1 2286 35 view .LVU1392 3947 00b8 574A ldr r2, .L301+8 3948 00ba 1A63 str r2, [r3, #48] 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3949 .loc 1 2289 3 is_stmt 1 view .LVU1393 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3950 .loc 1 2289 7 is_stmt 0 view .LVU1394 3951 00bc A36D ldr r3, [r4, #88] 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3952 .loc 1 2289 35 view .LVU1395 3953 00be 0022 movs r2, #0 3954 00c0 5A63 str r2, [r3, #52] 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3955 .loc 1 2292 3 is_stmt 1 view .LVU1396 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3956 .loc 1 2292 63 is_stmt 0 view .LVU1397 3957 00c2 2168 ldr r1, [r4] 3958 .LVL249: 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3959 .loc 1 2293 38 view .LVU1398 3960 00c4 B4F84630 ldrh r3, [r4, #70] 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3961 .loc 1 2292 17 view .LVU1399 3962 00c8 9BB2 uxth r3, r3 3963 00ca 226C ldr r2, [r4, #64] 3964 00cc 0C31 adds r1, r1, #12 3965 00ce A06D ldr r0, [r4, #88] 3966 00d0 FFF7FEFF bl HAL_DMA_Start_IT 3967 .LVL250: 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3968 .loc 1 2292 6 discriminator 1 view .LVU1400 3969 00d4 0028 cmp r0, #0 3970 00d6 57D0 beq .L286 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3971 .loc 1 2296 5 is_stmt 1 view .LVU1401 3972 00d8 236E ldr r3, [r4, #96] 3973 00da 43F01003 orr r3, r3, #16 3974 00de 2366 str r3, [r4, #96] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3975 .loc 1 2297 5 view .LVU1402 3976 .LVL251: 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3977 .loc 1 2299 5 view .LVU1403 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3978 .loc 1 2297 15 is_stmt 0 view .LVU1404 3979 00e0 0120 movs r0, #1 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3980 .loc 1 2299 5 view .LVU1405 3981 00e2 83E0 b .L276 3982 .LVL252: 3983 .L279: ARM GAS /tmp/ccZ0BHQJ.s page 170 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3984 .loc 1 2237 5 is_stmt 1 view .LVU1406 3985 00e4 2268 ldr r2, [r4] 3986 00e6 5368 ldr r3, [r2, #4] 3987 00e8 43F48053 orr r3, r3, #4096 3988 00ec 5360 str r3, [r2, #4] 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3989 .loc 1 2239 5 view .LVU1407 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3990 .loc 1 2239 13 is_stmt 0 view .LVU1408 3991 00ee 636D ldr r3, [r4, #84] 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3992 .loc 1 2239 27 view .LVU1409 3993 00f0 5B69 ldr r3, [r3, #20] 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3994 .loc 1 2239 8 view .LVU1410 3995 00f2 B3F5806F cmp r3, #1024 3996 00f6 1AD0 beq .L299 3997 .L281: 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3998 .loc 1 2253 5 is_stmt 1 view .LVU1411 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3999 .loc 1 2253 13 is_stmt 0 view .LVU1412 4000 00f8 A36D ldr r3, [r4, #88] 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4001 .loc 1 2253 27 view .LVU1413 4002 00fa 5B69 ldr r3, [r3, #20] 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4003 .loc 1 2253 8 view .LVU1414 4004 00fc B3F5806F cmp r3, #1024 4005 0100 CED1 bne .L280 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4006 .loc 1 2256 7 is_stmt 1 view .LVU1415 4007 0102 2268 ldr r2, [r4] 4008 0104 5368 ldr r3, [r2, #4] 4009 0106 23F48053 bic r3, r3, #4096 4010 010a 5360 str r3, [r2, #4] 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4011 .loc 1 2258 7 view .LVU1416 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4012 .loc 1 2258 16 is_stmt 0 view .LVU1417 4013 010c B4F84630 ldrh r3, [r4, #70] 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4014 .loc 1 2258 10 view .LVU1418 4015 0110 13F0010F tst r3, #1 4016 0114 24D1 bne .L283 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 4017 .loc 1 2260 9 is_stmt 1 view .LVU1419 4018 0116 2268 ldr r2, [r4] 4019 0118 5368 ldr r3, [r2, #4] 4020 011a 23F40053 bic r3, r3, #8192 4021 011e 5360 str r3, [r2, #4] 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4022 .loc 1 2261 9 view .LVU1420 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4023 .loc 1 2261 33 is_stmt 0 view .LVU1421 4024 0120 B4F84630 ldrh r3, [r4, #70] ARM GAS /tmp/ccZ0BHQJ.s page 171 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4025 .loc 1 2261 27 view .LVU1422 4026 0124 C3F34E03 ubfx r3, r3, #1, #15 4027 0128 A4F84630 strh r3, [r4, #70] @ movhi 4028 012c B8E7 b .L280 4029 .L299: 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4030 .loc 1 2241 7 is_stmt 1 view .LVU1423 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4031 .loc 1 2241 16 is_stmt 0 view .LVU1424 4032 012e A38F ldrh r3, [r4, #60] 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4033 .loc 1 2241 10 view .LVU1425 4034 0130 13F0010F tst r3, #1 4035 0134 09D1 bne .L282 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 4036 .loc 1 2243 9 is_stmt 1 view .LVU1426 4037 0136 2268 ldr r2, [r4] 4038 0138 5368 ldr r3, [r2, #4] 4039 013a 23F48043 bic r3, r3, #16384 4040 013e 5360 str r3, [r2, #4] 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4041 .loc 1 2244 9 view .LVU1427 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4042 .loc 1 2244 33 is_stmt 0 view .LVU1428 4043 0140 E38F ldrh r3, [r4, #62] 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4044 .loc 1 2244 27 view .LVU1429 4045 0142 C3F34E03 ubfx r3, r3, #1, #15 4046 0146 E387 strh r3, [r4, #62] @ movhi 4047 0148 D6E7 b .L281 4048 .L282: 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 4049 .loc 1 2248 9 is_stmt 1 view .LVU1430 4050 014a 2268 ldr r2, [r4] 4051 014c 5368 ldr r3, [r2, #4] 4052 014e 43F48043 orr r3, r3, #16384 4053 0152 5360 str r3, [r2, #4] 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4054 .loc 1 2249 9 view .LVU1431 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4055 .loc 1 2249 34 is_stmt 0 view .LVU1432 4056 0154 E38F ldrh r3, [r4, #62] 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4057 .loc 1 2249 55 view .LVU1433 4058 0156 C3F34E03 ubfx r3, r3, #1, #15 4059 015a 0133 adds r3, r3, #1 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4060 .loc 1 2249 27 view .LVU1434 4061 015c E387 strh r3, [r4, #62] @ movhi 4062 015e CBE7 b .L281 4063 .L283: 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4064 .loc 1 2265 9 is_stmt 1 view .LVU1435 4065 0160 2268 ldr r2, [r4] 4066 0162 5368 ldr r3, [r2, #4] 4067 0164 43F40053 orr r3, r3, #8192 ARM GAS /tmp/ccZ0BHQJ.s page 172 4068 0168 5360 str r3, [r2, #4] 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4069 .loc 1 2266 9 view .LVU1436 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4070 .loc 1 2266 34 is_stmt 0 view .LVU1437 4071 016a B4F84630 ldrh r3, [r4, #70] 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4072 .loc 1 2266 55 view .LVU1438 4073 016e C3F34E03 ubfx r3, r3, #1, #15 4074 0172 0133 adds r3, r3, #1 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4075 .loc 1 2266 27 view .LVU1439 4076 0174 A4F84630 strh r3, [r4, #70] @ movhi 4077 0178 92E7 b .L280 4078 .L298: 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4079 .loc 1 2275 5 is_stmt 1 view .LVU1440 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4080 .loc 1 2275 9 is_stmt 0 view .LVU1441 4081 017a A36D ldr r3, [r4, #88] 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4082 .loc 1 2275 40 view .LVU1442 4083 017c 274A ldr r2, .L301+12 4084 017e DA62 str r2, [r3, #44] 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4085 .loc 1 2276 5 is_stmt 1 view .LVU1443 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4086 .loc 1 2276 9 is_stmt 0 view .LVU1444 4087 0180 A36D ldr r3, [r4, #88] 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4088 .loc 1 2276 40 view .LVU1445 4089 0182 274A ldr r2, .L301+16 4090 0184 9A62 str r2, [r3, #40] 4091 0186 96E7 b .L285 4092 .LVL253: 4093 .L286: 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4094 .loc 1 2303 3 is_stmt 1 view .LVU1446 4095 0188 2268 ldr r2, [r4] 4096 018a 5368 ldr r3, [r2, #4] 4097 018c 43F00103 orr r3, r3, #1 4098 0190 5360 str r3, [r2, #4] 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4099 .loc 1 2307 3 view .LVU1447 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4100 .loc 1 2307 7 is_stmt 0 view .LVU1448 4101 0192 626D ldr r2, [r4, #84] 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4102 .loc 1 2307 38 view .LVU1449 4103 0194 0023 movs r3, #0 4104 0196 D362 str r3, [r2, #44] 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4105 .loc 1 2308 3 is_stmt 1 view .LVU1450 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4106 .loc 1 2308 7 is_stmt 0 view .LVU1451 4107 0198 626D ldr r2, [r4, #84] 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; ARM GAS /tmp/ccZ0BHQJ.s page 173 4108 .loc 1 2308 38 view .LVU1452 4109 019a 9362 str r3, [r2, #40] 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4110 .loc 1 2309 3 is_stmt 1 view .LVU1453 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4111 .loc 1 2309 7 is_stmt 0 view .LVU1454 4112 019c 626D ldr r2, [r4, #84] 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4113 .loc 1 2309 38 view .LVU1455 4114 019e 1363 str r3, [r2, #48] 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4115 .loc 1 2310 3 is_stmt 1 view .LVU1456 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4116 .loc 1 2310 7 is_stmt 0 view .LVU1457 4117 01a0 626D ldr r2, [r4, #84] 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4118 .loc 1 2310 38 view .LVU1458 4119 01a2 5363 str r3, [r2, #52] 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4120 .loc 1 2313 3 is_stmt 1 view .LVU1459 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4121 .loc 1 2313 91 is_stmt 0 view .LVU1460 4122 01a4 2268 ldr r2, [r4] 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4123 .loc 1 2314 38 view .LVU1461 4124 01a6 E38F ldrh r3, [r4, #62] 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4125 .loc 1 2313 17 view .LVU1462 4126 01a8 9BB2 uxth r3, r3 4127 01aa 0C32 adds r2, r2, #12 4128 01ac A16B ldr r1, [r4, #56] 4129 01ae 606D ldr r0, [r4, #84] 4130 01b0 FFF7FEFF bl HAL_DMA_Start_IT 4131 .LVL254: 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4132 .loc 1 2313 6 discriminator 1 view .LVU1463 4133 01b4 98B9 cbnz r0, .L300 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4134 .loc 1 2324 3 is_stmt 1 view .LVU1464 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4135 .loc 1 2324 12 is_stmt 0 view .LVU1465 4136 01b6 2368 ldr r3, [r4] 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4137 .loc 1 2324 22 view .LVU1466 4138 01b8 1A68 ldr r2, [r3] 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4139 .loc 1 2324 6 view .LVU1467 4140 01ba 12F0400F tst r2, #64 4141 01be 03D1 bne .L288 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4142 .loc 1 2327 5 is_stmt 1 view .LVU1468 4143 01c0 1A68 ldr r2, [r3] 4144 01c2 42F04002 orr r2, r2, #64 4145 01c6 1A60 str r2, [r3] 4146 .L288: 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4147 .loc 1 2330 3 view .LVU1469 ARM GAS /tmp/ccZ0BHQJ.s page 174 4148 01c8 2268 ldr r2, [r4] 4149 01ca 5368 ldr r3, [r2, #4] 4150 01cc 43F02003 orr r3, r3, #32 4151 01d0 5360 str r3, [r2, #4] 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4152 .loc 1 2333 3 view .LVU1470 4153 01d2 2268 ldr r2, [r4] 4154 01d4 5368 ldr r3, [r2, #4] 4155 01d6 43F00203 orr r3, r3, #2 4156 01da 5360 str r3, [r2, #4] 4157 01dc 06E0 b .L276 4158 .L300: 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4159 .loc 1 2317 5 view .LVU1471 4160 01de 236E ldr r3, [r4, #96] 4161 01e0 43F01003 orr r3, r3, #16 4162 01e4 2366 str r3, [r4, #96] 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4163 .loc 1 2318 5 view .LVU1472 4164 .LVL255: 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4165 .loc 1 2320 5 view .LVU1473 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4166 .loc 1 2318 15 is_stmt 0 view .LVU1474 4167 01e6 0120 movs r0, #1 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4168 .loc 1 2320 5 view .LVU1475 4169 01e8 00E0 b .L276 4170 .LVL256: 4171 .L290: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4172 .loc 1 2178 15 view .LVU1476 4173 01ea 0220 movs r0, #2 4174 .LVL257: 4175 .L276: 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4176 .loc 1 2337 3 is_stmt 1 view .LVU1477 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4177 .loc 1 2337 3 view .LVU1478 4178 01ec 0023 movs r3, #0 4179 01ee 84F85C30 strb r3, [r4, #92] 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4180 .loc 1 2337 3 view .LVU1479 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4181 .loc 1 2338 3 view .LVU1480 4182 .LVL258: 4183 .L274: 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4184 .loc 1 2339 1 is_stmt 0 view .LVU1481 4185 01f2 38BD pop {r3, r4, r5, pc} 4186 .LVL259: 4187 .L291: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4188 .loc 1 2178 15 view .LVU1482 4189 01f4 0220 movs r0, #2 4190 .LVL260: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; ARM GAS /tmp/ccZ0BHQJ.s page 175 4191 .loc 1 2178 15 view .LVU1483 4192 01f6 F9E7 b .L276 4193 .LVL261: 4194 .L292: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4195 .loc 1 2178 15 view .LVU1484 4196 01f8 0220 movs r0, #2 4197 .LVL262: 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4198 .loc 1 2178 15 view .LVU1485 4199 01fa F7E7 b .L276 4200 .LVL263: 4201 .L293: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4202 .loc 1 2184 15 view .LVU1486 4203 01fc 0120 movs r0, #1 4204 .LVL264: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4205 .loc 1 2184 15 view .LVU1487 4206 01fe F5E7 b .L276 4207 .LVL265: 4208 .L294: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4209 .loc 1 2184 15 view .LVU1488 4210 0200 0120 movs r0, #1 4211 .LVL266: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4212 .loc 1 2184 15 view .LVU1489 4213 0202 F3E7 b .L276 4214 .LVL267: 4215 .L295: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4216 .loc 1 2184 15 view .LVU1490 4217 0204 0120 movs r0, #1 4218 .LVL268: 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4219 .loc 1 2184 15 view .LVU1491 4220 0206 F1E7 b .L276 4221 .LVL269: 4222 .L296: 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4223 .loc 1 2220 15 view .LVU1492 4224 0208 0120 movs r0, #1 4225 020a EFE7 b .L276 4226 .LVL270: 4227 .L289: 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4228 .loc 1 2169 3 discriminator 1 view .LVU1493 4229 020c 0220 movs r0, #2 4230 020e F0E7 b .L274 4231 .L302: 4232 .align 2 4233 .L301: 4234 0210 00000000 .word SPI_DMAHalfTransmitReceiveCplt 4235 0214 00000000 .word SPI_DMATransmitReceiveCplt 4236 0218 00000000 .word SPI_DMAError 4237 021c 00000000 .word SPI_DMAHalfReceiveCplt ARM GAS /tmp/ccZ0BHQJ.s page 176 4238 0220 00000000 .word SPI_DMAReceiveCplt 4239 .cfi_endproc 4240 .LFE142: 4242 .section .text.HAL_SPI_Receive_DMA,"ax",%progbits 4243 .align 1 4244 .global HAL_SPI_Receive_DMA 4245 .syntax unified 4246 .thumb 4247 .thumb_func 4249 HAL_SPI_Receive_DMA: 4250 .LVL271: 4251 .LFB141: 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4252 .loc 1 2002 1 is_stmt 1 view -0 4253 .cfi_startproc 4254 @ args = 0, pretend = 0, frame = 0 4255 @ frame_needed = 0, uses_anonymous_args = 0 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4256 .loc 1 2002 1 is_stmt 0 view .LVU1495 4257 0000 38B5 push {r3, r4, r5, lr} 4258 .cfi_def_cfa_offset 16 4259 .cfi_offset 3, -16 4260 .cfi_offset 4, -12 4261 .cfi_offset 5, -8 4262 .cfi_offset 14, -4 4263 0002 0446 mov r4, r0 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4264 .loc 1 2003 3 is_stmt 1 view .LVU1496 4265 .LVL272: 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4266 .loc 1 2006 3 view .LVU1497 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4267 .loc 1 2008 3 view .LVU1498 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4268 .loc 1 2008 11 is_stmt 0 view .LVU1499 4269 0004 90F85D50 ldrb r5, [r0, #93] @ zero_extendqisi2 4270 0008 EDB2 uxtb r5, r5 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4271 .loc 1 2008 6 view .LVU1500 4272 000a 012D cmp r5, #1 4273 000c 40F0B180 bne .L314 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4274 .loc 1 2014 3 is_stmt 1 view .LVU1501 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4275 .loc 1 2014 18 is_stmt 0 view .LVU1502 4276 0010 8068 ldr r0, [r0, #8] 4277 .LVL273: 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4278 .loc 1 2014 6 view .LVU1503 4279 0012 18B9 cbnz r0, .L305 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4280 .loc 1 2014 68 discriminator 1 view .LVU1504 4281 0014 6368 ldr r3, [r4, #4] 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4282 .loc 1 2014 54 discriminator 1 view .LVU1505 4283 0016 B3F5827F cmp r3, #260 4284 001a 63D0 beq .L317 ARM GAS /tmp/ccZ0BHQJ.s page 177 4285 .L305: 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4286 .loc 1 2026 3 is_stmt 1 view .LVU1506 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4287 .loc 1 2026 3 view .LVU1507 4288 001c 94F85C30 ldrb r3, [r4, #92] @ zero_extendqisi2 4289 0020 012B cmp r3, #1 4290 0022 00F0AC80 beq .L315 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4291 .loc 1 2026 3 discriminator 2 view .LVU1508 4292 0026 0123 movs r3, #1 4293 0028 84F85C30 strb r3, [r4, #92] 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4294 .loc 1 2026 3 discriminator 2 view .LVU1509 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4295 .loc 1 2028 3 view .LVU1510 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4296 .loc 1 2028 6 is_stmt 0 view .LVU1511 4297 002c 0029 cmp r1, #0 4298 002e 00F0A180 beq .L304 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4299 .loc 1 2028 23 discriminator 1 view .LVU1512 4300 0032 002A cmp r2, #0 4301 0034 00F09E80 beq .L304 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4302 .loc 1 2035 3 is_stmt 1 view .LVU1513 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4303 .loc 1 2035 21 is_stmt 0 view .LVU1514 4304 0038 0423 movs r3, #4 4305 003a 84F85D30 strb r3, [r4, #93] 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4306 .loc 1 2036 3 is_stmt 1 view .LVU1515 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4307 .loc 1 2036 21 is_stmt 0 view .LVU1516 4308 003e 0023 movs r3, #0 4309 0040 2366 str r3, [r4, #96] 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4310 .loc 1 2037 3 is_stmt 1 view .LVU1517 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4311 .loc 1 2037 21 is_stmt 0 view .LVU1518 4312 0042 2164 str r1, [r4, #64] 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4313 .loc 1 2038 3 is_stmt 1 view .LVU1519 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4314 .loc 1 2038 21 is_stmt 0 view .LVU1520 4315 0044 A4F84420 strh r2, [r4, #68] @ movhi 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4316 .loc 1 2039 3 is_stmt 1 view .LVU1521 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4317 .loc 1 2039 21 is_stmt 0 view .LVU1522 4318 0048 A4F84620 strh r2, [r4, #70] @ movhi 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4319 .loc 1 2042 3 is_stmt 1 view .LVU1523 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4320 .loc 1 2042 21 is_stmt 0 view .LVU1524 4321 004c E364 str r3, [r4, #76] 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; ARM GAS /tmp/ccZ0BHQJ.s page 178 4322 .loc 1 2043 3 is_stmt 1 view .LVU1525 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 4323 .loc 1 2043 21 is_stmt 0 view .LVU1526 4324 004e 2365 str r3, [r4, #80] 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4325 .loc 1 2044 3 is_stmt 1 view .LVU1527 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4326 .loc 1 2044 21 is_stmt 0 view .LVU1528 4327 0050 A387 strh r3, [r4, #60] @ movhi 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4328 .loc 1 2045 3 is_stmt 1 view .LVU1529 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4329 .loc 1 2045 21 is_stmt 0 view .LVU1530 4330 0052 E387 strh r3, [r4, #62] @ movhi 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4331 .loc 1 2048 3 is_stmt 1 view .LVU1531 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4332 .loc 1 2048 6 is_stmt 0 view .LVU1532 4333 0054 B0F5004F cmp r0, #32768 4334 0058 4ED0 beq .L318 4335 .LVL274: 4336 .L307: 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4337 .loc 1 2065 3 is_stmt 1 view .LVU1533 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4338 .loc 1 2065 18 is_stmt 0 view .LVU1534 4339 005a E368 ldr r3, [r4, #12] 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4340 .loc 1 2065 6 view .LVU1535 4341 005c B3F5E06F cmp r3, #1792 4342 0060 05D8 bhi .L308 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4343 .loc 1 2065 58 discriminator 1 view .LVU1536 4344 0062 A36D ldr r3, [r4, #88] 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4345 .loc 1 2065 72 discriminator 1 view .LVU1537 4346 0064 5B69 ldr r3, [r3, #20] 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4347 .loc 1 2065 50 discriminator 1 view .LVU1538 4348 0066 B3F5806F cmp r3, #1024 4349 006a 00F08380 beq .L304 4350 .L308: 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 4351 .loc 1 2073 3 is_stmt 1 view .LVU1539 4352 006e 2268 ldr r2, [r4] 4353 0070 5368 ldr r3, [r2, #4] 4354 0072 23F40053 bic r3, r3, #8192 4355 0076 5360 str r3, [r2, #4] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4356 .loc 1 2074 3 view .LVU1540 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4357 .loc 1 2074 17 is_stmt 0 view .LVU1541 4358 0078 E368 ldr r3, [r4, #12] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4359 .loc 1 2074 6 view .LVU1542 4360 007a B3F5E06F cmp r3, #1792 4361 007e 46D9 bls .L309 ARM GAS /tmp/ccZ0BHQJ.s page 179 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4362 .loc 1 2077 5 is_stmt 1 view .LVU1543 4363 0080 2268 ldr r2, [r4] 4364 0082 5368 ldr r3, [r2, #4] 4365 0084 23F48053 bic r3, r3, #4096 4366 0088 5360 str r3, [r2, #4] 4367 .L310: 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4368 .loc 1 2103 3 view .LVU1544 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4369 .loc 1 2103 7 is_stmt 0 view .LVU1545 4370 008a A36D ldr r3, [r4, #88] 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4371 .loc 1 2103 38 view .LVU1546 4372 008c 3D4A ldr r2, .L320 4373 008e DA62 str r2, [r3, #44] 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4374 .loc 1 2106 3 is_stmt 1 view .LVU1547 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4375 .loc 1 2106 7 is_stmt 0 view .LVU1548 4376 0090 A36D ldr r3, [r4, #88] 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4377 .loc 1 2106 34 view .LVU1549 4378 0092 3D4A ldr r2, .L320+4 4379 0094 9A62 str r2, [r3, #40] 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4380 .loc 1 2109 3 is_stmt 1 view .LVU1550 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4381 .loc 1 2109 7 is_stmt 0 view .LVU1551 4382 0096 A36D ldr r3, [r4, #88] 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4383 .loc 1 2109 35 view .LVU1552 4384 0098 3C4A ldr r2, .L320+8 4385 009a 1A63 str r2, [r3, #48] 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4386 .loc 1 2112 3 is_stmt 1 view .LVU1553 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4387 .loc 1 2112 7 is_stmt 0 view .LVU1554 4388 009c A36D ldr r3, [r4, #88] 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4389 .loc 1 2112 35 view .LVU1555 4390 009e 0022 movs r2, #0 4391 00a0 5A63 str r2, [r3, #52] 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4392 .loc 1 2115 3 is_stmt 1 view .LVU1556 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4393 .loc 1 2115 63 is_stmt 0 view .LVU1557 4394 00a2 2168 ldr r1, [r4] 4395 .LVL275: 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4396 .loc 1 2116 38 view .LVU1558 4397 00a4 B4F84630 ldrh r3, [r4, #70] 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4398 .loc 1 2115 17 view .LVU1559 4399 00a8 9BB2 uxth r3, r3 4400 00aa 226C ldr r2, [r4, #64] 4401 00ac 0C31 adds r1, r1, #12 ARM GAS /tmp/ccZ0BHQJ.s page 180 4402 00ae A06D ldr r0, [r4, #88] 4403 00b0 FFF7FEFF bl HAL_DMA_Start_IT 4404 .LVL276: 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4405 .loc 1 2115 6 discriminator 1 view .LVU1560 4406 00b4 0146 mov r1, r0 4407 00b6 0028 cmp r0, #0 4408 00b8 56D1 bne .L319 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4409 .loc 1 2126 3 is_stmt 1 view .LVU1561 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4410 .loc 1 2126 12 is_stmt 0 view .LVU1562 4411 00ba 2368 ldr r3, [r4] 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4412 .loc 1 2126 22 view .LVU1563 4413 00bc 1A68 ldr r2, [r3] 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4414 .loc 1 2126 6 view .LVU1564 4415 00be 12F0400F tst r2, #64 4416 00c2 03D1 bne .L313 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4417 .loc 1 2129 5 is_stmt 1 view .LVU1565 4418 00c4 1A68 ldr r2, [r3] 4419 00c6 42F04002 orr r2, r2, #64 4420 00ca 1A60 str r2, [r3] 4421 .L313: 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4422 .loc 1 2133 3 view .LVU1566 4423 00cc 2268 ldr r2, [r4] 4424 00ce 5368 ldr r3, [r2, #4] 4425 00d0 43F02003 orr r3, r3, #32 4426 00d4 5360 str r3, [r2, #4] 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4427 .loc 1 2136 3 view .LVU1567 4428 00d6 2268 ldr r2, [r4] 4429 00d8 5368 ldr r3, [r2, #4] 4430 00da 43F00103 orr r3, r3, #1 4431 00de 5360 str r3, [r2, #4] 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4432 .loc 1 2003 21 is_stmt 0 view .LVU1568 4433 00e0 0D46 mov r5, r1 4434 00e2 47E0 b .L304 4435 .LVL277: 4436 .L317: 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4437 .loc 1 2016 5 is_stmt 1 view .LVU1569 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4438 .loc 1 2016 17 is_stmt 0 view .LVU1570 4439 00e4 0423 movs r3, #4 4440 00e6 84F85D30 strb r3, [r4, #93] 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4441 .loc 1 2019 5 is_stmt 1 view .LVU1571 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4442 .loc 1 2022 5 view .LVU1572 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4443 .loc 1 2022 12 is_stmt 0 view .LVU1573 4444 00ea 1346 mov r3, r2 ARM GAS /tmp/ccZ0BHQJ.s page 181 4445 00ec 0A46 mov r2, r1 4446 .LVL278: 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4447 .loc 1 2022 12 view .LVU1574 4448 00ee 2046 mov r0, r4 4449 00f0 FFF7FEFF bl HAL_SPI_TransmitReceive_DMA 4450 .LVL279: 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4451 .loc 1 2022 12 view .LVU1575 4452 00f4 0546 mov r5, r0 4453 00f6 40E0 b .L306 4454 .LVL280: 4455 .L318: 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 4456 .loc 1 2051 5 is_stmt 1 view .LVU1576 4457 00f8 2268 ldr r2, [r4] 4458 .LVL281: 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 4459 .loc 1 2051 5 is_stmt 0 view .LVU1577 4460 00fa 1368 ldr r3, [r2] 4461 00fc 23F04003 bic r3, r3, #64 4462 0100 1360 str r3, [r2] 4463 .LVL282: 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4464 .loc 1 2052 5 is_stmt 1 view .LVU1578 4465 0102 2268 ldr r2, [r4] 4466 0104 1368 ldr r3, [r2] 4467 0106 23F48043 bic r3, r3, #16384 4468 010a 1360 str r3, [r2] 4469 010c A5E7 b .L307 4470 .L309: 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4471 .loc 1 2082 5 view .LVU1579 4472 010e 2268 ldr r2, [r4] 4473 0110 5368 ldr r3, [r2, #4] 4474 0112 43F48053 orr r3, r3, #4096 4475 0116 5360 str r3, [r2, #4] 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4476 .loc 1 2084 5 view .LVU1580 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4477 .loc 1 2084 13 is_stmt 0 view .LVU1581 4478 0118 A36D ldr r3, [r4, #88] 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4479 .loc 1 2084 27 view .LVU1582 4480 011a 5B69 ldr r3, [r3, #20] 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4481 .loc 1 2084 8 view .LVU1583 4482 011c B3F5806F cmp r3, #1024 4483 0120 B3D1 bne .L310 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4484 .loc 1 2087 7 is_stmt 1 view .LVU1584 4485 0122 2268 ldr r2, [r4] 4486 0124 5368 ldr r3, [r2, #4] 4487 0126 23F48053 bic r3, r3, #4096 4488 012a 5360 str r3, [r2, #4] 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4489 .loc 1 2089 7 view .LVU1585 ARM GAS /tmp/ccZ0BHQJ.s page 182 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4490 .loc 1 2089 16 is_stmt 0 view .LVU1586 4491 012c B4F84630 ldrh r3, [r4, #70] 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4492 .loc 1 2089 10 view .LVU1587 4493 0130 13F0010F tst r3, #1 4494 0134 0BD1 bne .L311 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 4495 .loc 1 2091 9 is_stmt 1 view .LVU1588 4496 0136 2268 ldr r2, [r4] 4497 0138 5368 ldr r3, [r2, #4] 4498 013a 23F40053 bic r3, r3, #8192 4499 013e 5360 str r3, [r2, #4] 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4500 .loc 1 2092 9 view .LVU1589 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4501 .loc 1 2092 33 is_stmt 0 view .LVU1590 4502 0140 B4F84630 ldrh r3, [r4, #70] 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4503 .loc 1 2092 27 view .LVU1591 4504 0144 C3F34E03 ubfx r3, r3, #1, #15 4505 0148 A4F84630 strh r3, [r4, #70] @ movhi 4506 014c 9DE7 b .L310 4507 .L311: 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4508 .loc 1 2096 9 is_stmt 1 view .LVU1592 4509 014e 2268 ldr r2, [r4] 4510 0150 5368 ldr r3, [r2, #4] 4511 0152 43F40053 orr r3, r3, #8192 4512 0156 5360 str r3, [r2, #4] 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4513 .loc 1 2097 9 view .LVU1593 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4514 .loc 1 2097 34 is_stmt 0 view .LVU1594 4515 0158 B4F84630 ldrh r3, [r4, #70] 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4516 .loc 1 2097 55 view .LVU1595 4517 015c C3F34E03 ubfx r3, r3, #1, #15 4518 0160 0133 adds r3, r3, #1 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4519 .loc 1 2097 27 view .LVU1596 4520 0162 A4F84630 strh r3, [r4, #70] @ movhi 4521 0166 90E7 b .L310 4522 .LVL283: 4523 .L319: 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4524 .loc 1 2119 5 is_stmt 1 view .LVU1597 4525 0168 236E ldr r3, [r4, #96] 4526 016a 43F01003 orr r3, r3, #16 4527 016e 2366 str r3, [r4, #96] 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4528 .loc 1 2120 5 view .LVU1598 4529 .LVL284: 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4530 .loc 1 2122 5 view .LVU1599 4531 0170 00E0 b .L304 4532 .LVL285: ARM GAS /tmp/ccZ0BHQJ.s page 183 4533 .L314: 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4534 .loc 1 2010 15 is_stmt 0 view .LVU1600 4535 0172 0225 movs r5, #2 4536 .LVL286: 4537 .L304: 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4538 .loc 1 2140 3 is_stmt 1 view .LVU1601 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4539 .loc 1 2140 3 view .LVU1602 4540 0174 0023 movs r3, #0 4541 0176 84F85C30 strb r3, [r4, #92] 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4542 .loc 1 2140 3 view .LVU1603 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4543 .loc 1 2141 3 view .LVU1604 4544 .LVL287: 4545 .L306: 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4546 .loc 1 2142 1 is_stmt 0 view .LVU1605 4547 017a 2846 mov r0, r5 4548 017c 38BD pop {r3, r4, r5, pc} 4549 .LVL288: 4550 .L315: 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4551 .loc 1 2026 3 discriminator 1 view .LVU1606 4552 017e 0225 movs r5, #2 4553 0180 FBE7 b .L306 4554 .L321: 4555 0182 00BF .align 2 4556 .L320: 4557 0184 00000000 .word SPI_DMAHalfReceiveCplt 4558 0188 00000000 .word SPI_DMAReceiveCplt 4559 018c 00000000 .word SPI_DMAError 4560 .cfi_endproc 4561 .LFE141: 4563 .section .text.HAL_SPI_Abort,"ax",%progbits 4564 .align 1 4565 .global HAL_SPI_Abort 4566 .syntax unified 4567 .thumb 4568 .thumb_func 4570 HAL_SPI_Abort: 4571 .LVL289: 4572 .LFB143: 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4573 .loc 1 2355 1 is_stmt 1 view -0 4574 .cfi_startproc 4575 @ args = 0, pretend = 0, frame = 16 4576 @ frame_needed = 0, uses_anonymous_args = 0 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4577 .loc 1 2355 1 is_stmt 0 view .LVU1608 4578 0000 10B5 push {r4, lr} 4579 .cfi_def_cfa_offset 8 4580 .cfi_offset 4, -8 4581 .cfi_offset 14, -4 4582 0002 86B0 sub sp, sp, #24 ARM GAS /tmp/ccZ0BHQJ.s page 184 4583 .cfi_def_cfa_offset 32 4584 0004 0446 mov r4, r0 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4585 .loc 1 2356 3 is_stmt 1 view .LVU1609 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 4586 .loc 1 2357 3 view .LVU1610 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4587 .loc 1 2358 3 view .LVU1611 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 4588 .loc 1 2361 3 view .LVU1612 4589 .LVL290: 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4590 .loc 1 2362 3 view .LVU1613 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4591 .loc 1 2362 61 is_stmt 0 view .LVU1614 4592 0006 5E4B ldr r3, .L343 4593 0008 1B68 ldr r3, [r3] 4594 000a 5E4A ldr r2, .L343+4 4595 000c A2FB0323 umull r2, r3, r2, r3 4596 0010 5B0A lsrs r3, r3, #9 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4597 .loc 1 2362 36 view .LVU1615 4598 0012 6422 movs r2, #100 4599 0014 02FB03F3 mul r3, r2, r3 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4600 .loc 1 2362 14 view .LVU1616 4601 0018 0493 str r3, [sp, #16] 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4602 .loc 1 2363 3 is_stmt 1 view .LVU1617 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4603 .loc 1 2363 9 is_stmt 0 view .LVU1618 4604 001a 049B ldr r3, [sp, #16] 4605 001c 0593 str r3, [sp, #20] 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4606 .loc 1 2366 3 is_stmt 1 view .LVU1619 4607 001e 0268 ldr r2, [r0] 4608 0020 5368 ldr r3, [r2, #4] 4609 0022 23F02003 bic r3, r3, #32 4610 0026 5360 str r3, [r2, #4] 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4611 .loc 1 2369 3 view .LVU1620 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4612 .loc 1 2369 7 is_stmt 0 view .LVU1621 4613 0028 0268 ldr r2, [r0] 4614 002a 5368 ldr r3, [r2, #4] 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4615 .loc 1 2369 6 view .LVU1622 4616 002c 13F0800F tst r3, #128 4617 0030 12D0 beq .L323 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4618 .loc 1 2371 5 is_stmt 1 view .LVU1623 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4619 .loc 1 2371 17 is_stmt 0 view .LVU1624 4620 0032 554B ldr r3, .L343+8 4621 0034 0365 str r3, [r0, #80] 4622 .L326: 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 185 4623 .loc 1 2373 5 is_stmt 1 view .LVU1625 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4624 .loc 1 2375 7 view .LVU1626 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4625 .loc 1 2375 17 is_stmt 0 view .LVU1627 4626 0036 059B ldr r3, [sp, #20] 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4627 .loc 1 2375 10 view .LVU1628 4628 0038 43B1 cbz r3, .L341 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4629 .loc 1 2380 7 is_stmt 1 view .LVU1629 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4630 .loc 1 2380 12 is_stmt 0 view .LVU1630 4631 003a 059B ldr r3, [sp, #20] 4632 003c 013B subs r3, r3, #1 4633 003e 0593 str r3, [sp, #20] 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4634 .loc 1 2381 26 is_stmt 1 view .LVU1631 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4635 .loc 1 2381 18 is_stmt 0 view .LVU1632 4636 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4637 0044 DBB2 uxtb r3, r3 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4638 .loc 1 2381 26 view .LVU1633 4639 0046 072B cmp r3, #7 4640 0048 F5D1 bne .L326 4641 004a 03E0 b .L325 4642 .L341: 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4643 .loc 1 2377 9 is_stmt 1 view .LVU1634 4644 004c 236E ldr r3, [r4, #96] 4645 004e 43F04003 orr r3, r3, #64 4646 0052 2366 str r3, [r4, #96] 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4647 .loc 1 2378 9 view .LVU1635 4648 .L325: 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4649 .loc 1 2383 5 view .LVU1636 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4650 .loc 1 2383 11 is_stmt 0 view .LVU1637 4651 0054 049B ldr r3, [sp, #16] 4652 0056 0593 str r3, [sp, #20] 4653 .L323: 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4654 .loc 1 2386 3 is_stmt 1 view .LVU1638 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4655 .loc 1 2386 7 is_stmt 0 view .LVU1639 4656 0058 5368 ldr r3, [r2, #4] 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4657 .loc 1 2386 6 view .LVU1640 4658 005a 13F0400F tst r3, #64 4659 005e 12D0 beq .L327 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4660 .loc 1 2388 5 is_stmt 1 view .LVU1641 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4661 .loc 1 2388 17 is_stmt 0 view .LVU1642 4662 0060 4A4B ldr r3, .L343+12 ARM GAS /tmp/ccZ0BHQJ.s page 186 4663 0062 E364 str r3, [r4, #76] 4664 .L330: 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4665 .loc 1 2390 5 is_stmt 1 view .LVU1643 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4666 .loc 1 2392 7 view .LVU1644 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4667 .loc 1 2392 17 is_stmt 0 view .LVU1645 4668 0064 059B ldr r3, [sp, #20] 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4669 .loc 1 2392 10 view .LVU1646 4670 0066 43B1 cbz r3, .L342 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4671 .loc 1 2397 7 is_stmt 1 view .LVU1647 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4672 .loc 1 2397 12 is_stmt 0 view .LVU1648 4673 0068 059B ldr r3, [sp, #20] 4674 006a 013B subs r3, r3, #1 4675 006c 0593 str r3, [sp, #20] 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4676 .loc 1 2398 26 is_stmt 1 view .LVU1649 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4677 .loc 1 2398 18 is_stmt 0 view .LVU1650 4678 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4679 0072 DBB2 uxtb r3, r3 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4680 .loc 1 2398 26 view .LVU1651 4681 0074 072B cmp r3, #7 4682 0076 F5D1 bne .L330 4683 0078 03E0 b .L329 4684 .L342: 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4685 .loc 1 2394 9 is_stmt 1 view .LVU1652 4686 007a 236E ldr r3, [r4, #96] 4687 007c 43F04003 orr r3, r3, #64 4688 0080 2366 str r3, [r4, #96] 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4689 .loc 1 2395 9 view .LVU1653 4690 .L329: 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4691 .loc 1 2400 5 view .LVU1654 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4692 .loc 1 2400 11 is_stmt 0 view .LVU1655 4693 0082 049B ldr r3, [sp, #16] 4694 0084 0593 str r3, [sp, #20] 4695 .L327: 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4696 .loc 1 2404 3 is_stmt 1 view .LVU1656 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4697 .loc 1 2404 7 is_stmt 0 view .LVU1657 4698 0086 5368 ldr r3, [r2, #4] 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4699 .loc 1 2404 6 view .LVU1658 4700 0088 13F0020F tst r3, #2 4701 008c 2AD0 beq .L331 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4702 .loc 1 2407 5 is_stmt 1 view .LVU1659 ARM GAS /tmp/ccZ0BHQJ.s page 187 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4703 .loc 1 2407 13 is_stmt 0 view .LVU1660 4704 008e 636D ldr r3, [r4, #84] 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4705 .loc 1 2407 8 view .LVU1661 4706 0090 43B3 cbz r3, .L331 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4707 .loc 1 2411 7 is_stmt 1 view .LVU1662 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4708 .loc 1 2411 39 is_stmt 0 view .LVU1663 4709 0092 0022 movs r2, #0 4710 0094 5A63 str r2, [r3, #52] 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4711 .loc 1 2414 7 is_stmt 1 view .LVU1664 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4712 .loc 1 2414 11 is_stmt 0 view .LVU1665 4713 0096 606D ldr r0, [r4, #84] 4714 .LVL291: 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4715 .loc 1 2414 11 view .LVU1666 4716 0098 FFF7FEFF bl HAL_DMA_Abort 4717 .LVL292: 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4718 .loc 1 2414 10 discriminator 1 view .LVU1667 4719 009c 08B1 cbz r0, .L332 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4720 .loc 1 2416 9 is_stmt 1 view .LVU1668 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4721 .loc 1 2416 25 is_stmt 0 view .LVU1669 4722 009e 4023 movs r3, #64 4723 00a0 2366 str r3, [r4, #96] 4724 .L332: 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4725 .loc 1 2420 7 is_stmt 1 view .LVU1670 4726 00a2 2268 ldr r2, [r4] 4727 00a4 5368 ldr r3, [r2, #4] 4728 00a6 23F00203 bic r3, r3, #2 4729 00aa 5360 str r3, [r2, #4] 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4730 .loc 1 2422 7 view .LVU1671 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4731 .loc 1 2422 11 is_stmt 0 view .LVU1672 4732 00ac FFF7FEFF bl HAL_GetTick 4733 .LVL293: 4734 00b0 0246 mov r2, r0 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4735 .loc 1 2422 11 discriminator 1 view .LVU1673 4736 00b2 6421 movs r1, #100 4737 00b4 2046 mov r0, r4 4738 00b6 FFF7FEFF bl SPI_EndRxTxTransaction 4739 .LVL294: 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4740 .loc 1 2422 10 discriminator 2 view .LVU1674 4741 00ba 08B1 cbz r0, .L333 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4742 .loc 1 2424 9 is_stmt 1 view .LVU1675 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 188 4743 .loc 1 2424 25 is_stmt 0 view .LVU1676 4744 00bc 4023 movs r3, #64 4745 00be 2366 str r3, [r4, #96] 4746 .L333: 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4747 .loc 1 2428 7 is_stmt 1 view .LVU1677 4748 00c0 2268 ldr r2, [r4] 4749 00c2 1368 ldr r3, [r2] 4750 00c4 23F04003 bic r3, r3, #64 4751 00c8 1360 str r3, [r2] 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4752 .loc 1 2431 7 view .LVU1678 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4753 .loc 1 2431 11 is_stmt 0 view .LVU1679 4754 00ca FFF7FEFF bl HAL_GetTick 4755 .LVL295: 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4756 .loc 1 2431 11 discriminator 1 view .LVU1680 4757 00ce 0090 str r0, [sp] 4758 00d0 6423 movs r3, #100 4759 00d2 0022 movs r2, #0 4760 00d4 4FF4C061 mov r1, #1536 4761 00d8 2046 mov r0, r4 4762 00da FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4763 .LVL296: 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4764 .loc 1 2431 10 discriminator 2 view .LVU1681 4765 00de 08B1 cbz r0, .L331 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4766 .loc 1 2433 9 is_stmt 1 view .LVU1682 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4767 .loc 1 2433 25 is_stmt 0 view .LVU1683 4768 00e0 4023 movs r3, #64 4769 00e2 2366 str r3, [r4, #96] 4770 .L331: 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4771 .loc 1 2439 3 is_stmt 1 view .LVU1684 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4772 .loc 1 2439 7 is_stmt 0 view .LVU1685 4773 00e4 2368 ldr r3, [r4] 4774 00e6 5B68 ldr r3, [r3, #4] 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4775 .loc 1 2439 6 view .LVU1686 4776 00e8 13F0010F tst r3, #1 4777 00ec 2CD0 beq .L334 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4778 .loc 1 2442 5 is_stmt 1 view .LVU1687 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4779 .loc 1 2442 13 is_stmt 0 view .LVU1688 4780 00ee A36D ldr r3, [r4, #88] 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4781 .loc 1 2442 8 view .LVU1689 4782 00f0 53B3 cbz r3, .L334 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4783 .loc 1 2446 7 is_stmt 1 view .LVU1690 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4784 .loc 1 2446 39 is_stmt 0 view .LVU1691 ARM GAS /tmp/ccZ0BHQJ.s page 189 4785 00f2 0022 movs r2, #0 4786 00f4 5A63 str r2, [r3, #52] 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4787 .loc 1 2449 7 is_stmt 1 view .LVU1692 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4788 .loc 1 2449 11 is_stmt 0 view .LVU1693 4789 00f6 A06D ldr r0, [r4, #88] 4790 00f8 FFF7FEFF bl HAL_DMA_Abort 4791 .LVL297: 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4792 .loc 1 2449 10 discriminator 1 view .LVU1694 4793 00fc 08B1 cbz r0, .L335 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4794 .loc 1 2451 9 is_stmt 1 view .LVU1695 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4795 .loc 1 2451 25 is_stmt 0 view .LVU1696 4796 00fe 4023 movs r3, #64 4797 0100 2366 str r3, [r4, #96] 4798 .L335: 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4799 .loc 1 2455 7 is_stmt 1 view .LVU1697 4800 0102 2268 ldr r2, [r4] 4801 0104 1368 ldr r3, [r2] 4802 0106 23F04003 bic r3, r3, #64 4803 010a 1360 str r3, [r2] 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4804 .loc 1 2458 7 view .LVU1698 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4805 .loc 1 2458 11 is_stmt 0 view .LVU1699 4806 010c FFF7FEFF bl HAL_GetTick 4807 .LVL298: 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4808 .loc 1 2458 11 discriminator 1 view .LVU1700 4809 0110 0090 str r0, [sp] 4810 0112 6423 movs r3, #100 4811 0114 0022 movs r2, #0 4812 0116 8021 movs r1, #128 4813 0118 2046 mov r0, r4 4814 011a FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 4815 .LVL299: 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4816 .loc 1 2458 10 discriminator 2 view .LVU1701 4817 011e 08B1 cbz r0, .L336 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4818 .loc 1 2460 9 is_stmt 1 view .LVU1702 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4819 .loc 1 2460 25 is_stmt 0 view .LVU1703 4820 0120 4023 movs r3, #64 4821 0122 2366 str r3, [r4, #96] 4822 .L336: 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4823 .loc 1 2464 7 is_stmt 1 view .LVU1704 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4824 .loc 1 2464 11 is_stmt 0 view .LVU1705 4825 0124 FFF7FEFF bl HAL_GetTick 4826 .LVL300: 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 190 4827 .loc 1 2464 11 discriminator 1 view .LVU1706 4828 0128 0090 str r0, [sp] 4829 012a 6423 movs r3, #100 4830 012c 0022 movs r2, #0 4831 012e 4FF4C061 mov r1, #1536 4832 0132 2046 mov r0, r4 4833 0134 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4834 .LVL301: 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4835 .loc 1 2464 10 discriminator 2 view .LVU1707 4836 0138 08B1 cbz r0, .L337 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4837 .loc 1 2466 9 is_stmt 1 view .LVU1708 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4838 .loc 1 2466 25 is_stmt 0 view .LVU1709 4839 013a 4023 movs r3, #64 4840 013c 2366 str r3, [r4, #96] 4841 .L337: 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4842 .loc 1 2470 7 is_stmt 1 view .LVU1710 4843 013e 2268 ldr r2, [r4] 4844 0140 5368 ldr r3, [r2, #4] 4845 0142 23F00103 bic r3, r3, #1 4846 0146 5360 str r3, [r2, #4] 4847 .L334: 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4848 .loc 1 2474 3 view .LVU1711 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4849 .loc 1 2474 21 is_stmt 0 view .LVU1712 4850 0148 0023 movs r3, #0 4851 014a A4F84630 strh r3, [r4, #70] @ movhi 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4852 .loc 1 2475 3 is_stmt 1 view .LVU1713 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4853 .loc 1 2475 21 is_stmt 0 view .LVU1714 4854 014e E387 strh r3, [r4, #62] @ movhi 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4855 .loc 1 2478 3 is_stmt 1 view .LVU1715 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4856 .loc 1 2478 11 is_stmt 0 view .LVU1716 4857 0150 236E ldr r3, [r4, #96] 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4858 .loc 1 2478 6 view .LVU1717 4859 0152 402B cmp r3, #64 4860 0154 12D0 beq .L339 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4861 .loc 1 2486 5 is_stmt 1 view .LVU1718 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4862 .loc 1 2486 21 is_stmt 0 view .LVU1719 4863 0156 0020 movs r0, #0 4864 0158 2066 str r0, [r4, #96] 4865 .L338: 4866 .LVL302: 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4867 .loc 1 2490 3 is_stmt 1 view .LVU1720 4868 .LBB3: 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); ARM GAS /tmp/ccZ0BHQJ.s page 191 4869 .loc 1 2490 3 view .LVU1721 4870 015a 0022 movs r2, #0 4871 015c 0292 str r2, [sp, #8] 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4872 .loc 1 2490 3 view .LVU1722 4873 015e 2368 ldr r3, [r4] 4874 0160 D968 ldr r1, [r3, #12] 4875 0162 0291 str r1, [sp, #8] 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4876 .loc 1 2490 3 view .LVU1723 4877 0164 9968 ldr r1, [r3, #8] 4878 0166 0291 str r1, [sp, #8] 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4879 .loc 1 2490 3 view .LVU1724 4880 0168 0299 ldr r1, [sp, #8] 4881 .LBE3: 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4882 .loc 1 2490 3 view .LVU1725 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4883 .loc 1 2491 3 view .LVU1726 4884 .LBB4: 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4885 .loc 1 2491 3 view .LVU1727 4886 016a 0392 str r2, [sp, #12] 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4887 .loc 1 2491 3 view .LVU1728 4888 016c 9B68 ldr r3, [r3, #8] 4889 016e 0393 str r3, [sp, #12] 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4890 .loc 1 2491 3 view .LVU1729 4891 0170 039B ldr r3, [sp, #12] 4892 .LBE4: 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4893 .loc 1 2491 3 view .LVU1730 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4894 .loc 1 2494 3 view .LVU1731 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4895 .loc 1 2494 15 is_stmt 0 view .LVU1732 4896 0172 0123 movs r3, #1 4897 0174 84F85D30 strb r3, [r4, #93] 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4898 .loc 1 2496 3 is_stmt 1 view .LVU1733 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4899 .loc 1 2497 1 is_stmt 0 view .LVU1734 4900 0178 06B0 add sp, sp, #24 4901 .cfi_remember_state 4902 .cfi_def_cfa_offset 8 4903 @ sp needed 4904 017a 10BD pop {r4, pc} 4905 .LVL303: 4906 .L339: 4907 .cfi_restore_state 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4908 .loc 1 2481 15 view .LVU1735 4909 017c 0120 movs r0, #1 4910 017e ECE7 b .L338 4911 .L344: ARM GAS /tmp/ccZ0BHQJ.s page 192 4912 .align 2 4913 .L343: 4914 0180 00000000 .word SystemCoreClock 4915 0184 F1197605 .word 91625969 4916 0188 00000000 .word SPI_AbortTx_ISR 4917 018c 00000000 .word SPI_AbortRx_ISR 4918 .cfi_endproc 4919 .LFE143: 4921 .section .text.HAL_SPI_DMAPause,"ax",%progbits 4922 .align 1 4923 .global HAL_SPI_DMAPause 4924 .syntax unified 4925 .thumb 4926 .thumb_func 4928 HAL_SPI_DMAPause: 4929 .LVL304: 4930 .LFB145: 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4931 .loc 1 2676 1 is_stmt 1 view -0 4932 .cfi_startproc 4933 @ args = 0, pretend = 0, frame = 0 4934 @ frame_needed = 0, uses_anonymous_args = 0 4935 @ link register save eliminated. 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4936 .loc 1 2678 3 view .LVU1737 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4937 .loc 1 2678 3 view .LVU1738 4938 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4939 0004 012B cmp r3, #1 4940 0006 0CD0 beq .L347 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4941 .loc 1 2678 3 discriminator 2 view .LVU1739 4942 0008 0123 movs r3, #1 4943 000a 80F85C30 strb r3, [r0, #92] 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4944 .loc 1 2678 3 discriminator 2 view .LVU1740 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4945 .loc 1 2681 3 view .LVU1741 4946 000e 0268 ldr r2, [r0] 4947 0010 5368 ldr r3, [r2, #4] 4948 0012 23F00303 bic r3, r3, #3 4949 0016 5360 str r3, [r2, #4] 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4950 .loc 1 2684 3 view .LVU1742 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4951 .loc 1 2684 3 view .LVU1743 4952 0018 0023 movs r3, #0 4953 001a 80F85C30 strb r3, [r0, #92] 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4954 .loc 1 2684 3 view .LVU1744 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4955 .loc 1 2686 3 view .LVU1745 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4956 .loc 1 2686 10 is_stmt 0 view .LVU1746 4957 001e 1846 mov r0, r3 4958 .LVL305: 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 193 4959 .loc 1 2686 10 view .LVU1747 4960 0020 7047 bx lr 4961 .LVL306: 4962 .L347: 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4963 .loc 1 2678 3 discriminator 1 view .LVU1748 4964 0022 0220 movs r0, #2 4965 .LVL307: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4966 .loc 1 2687 1 view .LVU1749 4967 0024 7047 bx lr 4968 .cfi_endproc 4969 .LFE145: 4971 .section .text.HAL_SPI_DMAResume,"ax",%progbits 4972 .align 1 4973 .global HAL_SPI_DMAResume 4974 .syntax unified 4975 .thumb 4976 .thumb_func 4978 HAL_SPI_DMAResume: 4979 .LVL308: 4980 .LFB146: 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4981 .loc 1 2696 1 is_stmt 1 view -0 4982 .cfi_startproc 4983 @ args = 0, pretend = 0, frame = 0 4984 @ frame_needed = 0, uses_anonymous_args = 0 4985 @ link register save eliminated. 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4986 .loc 1 2698 3 view .LVU1751 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4987 .loc 1 2698 3 view .LVU1752 4988 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4989 0004 012B cmp r3, #1 4990 0006 0CD0 beq .L350 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4991 .loc 1 2698 3 discriminator 2 view .LVU1753 4992 0008 0123 movs r3, #1 4993 000a 80F85C30 strb r3, [r0, #92] 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4994 .loc 1 2698 3 discriminator 2 view .LVU1754 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4995 .loc 1 2701 3 view .LVU1755 4996 000e 0268 ldr r2, [r0] 4997 0010 5368 ldr r3, [r2, #4] 4998 0012 43F00303 orr r3, r3, #3 4999 0016 5360 str r3, [r2, #4] 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5000 .loc 1 2704 3 view .LVU1756 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5001 .loc 1 2704 3 view .LVU1757 5002 0018 0023 movs r3, #0 5003 001a 80F85C30 strb r3, [r0, #92] 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5004 .loc 1 2704 3 view .LVU1758 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5005 .loc 1 2706 3 view .LVU1759 ARM GAS /tmp/ccZ0BHQJ.s page 194 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5006 .loc 1 2706 10 is_stmt 0 view .LVU1760 5007 001e 1846 mov r0, r3 5008 .LVL309: 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5009 .loc 1 2706 10 view .LVU1761 5010 0020 7047 bx lr 5011 .LVL310: 5012 .L350: 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5013 .loc 1 2698 3 discriminator 1 view .LVU1762 5014 0022 0220 movs r0, #2 5015 .LVL311: 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5016 .loc 1 2707 1 view .LVU1763 5017 0024 7047 bx lr 5018 .cfi_endproc 5019 .LFE146: 5021 .section .text.HAL_SPI_DMAStop,"ax",%progbits 5022 .align 1 5023 .global HAL_SPI_DMAStop 5024 .syntax unified 5025 .thumb 5026 .thumb_func 5028 HAL_SPI_DMAStop: 5029 .LVL312: 5030 .LFB147: 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 5031 .loc 1 2716 1 is_stmt 1 view -0 5032 .cfi_startproc 5033 @ args = 0, pretend = 0, frame = 0 5034 @ frame_needed = 0, uses_anonymous_args = 0 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 5035 .loc 1 2716 1 is_stmt 0 view .LVU1765 5036 0000 38B5 push {r3, r4, r5, lr} 5037 .cfi_def_cfa_offset 16 5038 .cfi_offset 3, -16 5039 .cfi_offset 4, -12 5040 .cfi_offset 5, -8 5041 .cfi_offset 14, -4 5042 0002 0446 mov r4, r0 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5043 .loc 1 2717 3 is_stmt 1 view .LVU1766 5044 .LVL313: 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5045 .loc 1 2725 3 view .LVU1767 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5046 .loc 1 2725 11 is_stmt 0 view .LVU1768 5047 0004 406D ldr r0, [r0, #84] 5048 .LVL314: 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5049 .loc 1 2725 6 view .LVU1769 5050 0006 48B1 cbz r0, .L354 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5051 .loc 1 2727 5 is_stmt 1 view .LVU1770 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5052 .loc 1 2727 19 is_stmt 0 view .LVU1771 ARM GAS /tmp/ccZ0BHQJ.s page 195 5053 0008 FFF7FEFF bl HAL_DMA_Abort 5054 .LVL315: 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5055 .loc 1 2727 8 discriminator 1 view .LVU1772 5056 000c 0546 mov r5, r0 5057 000e 30B1 cbz r0, .L352 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5058 .loc 1 2729 7 is_stmt 1 view .LVU1773 5059 0010 236E ldr r3, [r4, #96] 5060 0012 43F01003 orr r3, r3, #16 5061 0016 2366 str r3, [r4, #96] 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5062 .loc 1 2730 7 view .LVU1774 5063 .LVL316: 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5064 .loc 1 2730 17 is_stmt 0 view .LVU1775 5065 0018 0125 movs r5, #1 5066 001a 00E0 b .L352 5067 .LVL317: 5068 .L354: 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5069 .loc 1 2717 21 view .LVU1776 5070 001c 0025 movs r5, #0 5071 .LVL318: 5072 .L352: 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5073 .loc 1 2734 3 is_stmt 1 view .LVU1777 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5074 .loc 1 2734 11 is_stmt 0 view .LVU1778 5075 001e A06D ldr r0, [r4, #88] 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5076 .loc 1 2734 6 view .LVU1779 5077 0020 38B1 cbz r0, .L353 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5078 .loc 1 2736 5 is_stmt 1 view .LVU1780 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5079 .loc 1 2736 19 is_stmt 0 view .LVU1781 5080 0022 FFF7FEFF bl HAL_DMA_Abort 5081 .LVL319: 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5082 .loc 1 2736 8 discriminator 1 view .LVU1782 5083 0026 20B1 cbz r0, .L353 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5084 .loc 1 2738 7 is_stmt 1 view .LVU1783 5085 0028 236E ldr r3, [r4, #96] 5086 002a 43F01003 orr r3, r3, #16 5087 002e 2366 str r3, [r4, #96] 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5088 .loc 1 2739 7 view .LVU1784 5089 .LVL320: 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5090 .loc 1 2739 17 is_stmt 0 view .LVU1785 5091 0030 0125 movs r5, #1 5092 .LVL321: 5093 .L353: 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5094 .loc 1 2744 3 is_stmt 1 view .LVU1786 ARM GAS /tmp/ccZ0BHQJ.s page 196 5095 0032 2268 ldr r2, [r4] 5096 0034 5368 ldr r3, [r2, #4] 5097 0036 23F00303 bic r3, r3, #3 5098 003a 5360 str r3, [r2, #4] 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5099 .loc 1 2745 3 view .LVU1787 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5100 .loc 1 2745 15 is_stmt 0 view .LVU1788 5101 003c 0123 movs r3, #1 5102 003e 84F85D30 strb r3, [r4, #93] 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5103 .loc 1 2746 3 is_stmt 1 view .LVU1789 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5104 .loc 1 2747 1 is_stmt 0 view .LVU1790 5105 0042 2846 mov r0, r5 5106 0044 38BD pop {r3, r4, r5, pc} 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5107 .loc 1 2747 1 view .LVU1791 5108 .cfi_endproc 5109 .LFE147: 5111 .section .text.HAL_SPI_TxCpltCallback,"ax",%progbits 5112 .align 1 5113 .weak HAL_SPI_TxCpltCallback 5114 .syntax unified 5115 .thumb 5116 .thumb_func 5118 HAL_SPI_TxCpltCallback: 5119 .LVL322: 5120 .LFB149: 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5121 .loc 1 2863 1 is_stmt 1 view -0 5122 .cfi_startproc 5123 @ args = 0, pretend = 0, frame = 0 5124 @ frame_needed = 0, uses_anonymous_args = 0 5125 @ link register save eliminated. 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5126 .loc 1 2865 3 view .LVU1793 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5127 .loc 1 2870 1 is_stmt 0 view .LVU1794 5128 0000 7047 bx lr 5129 .cfi_endproc 5130 .LFE149: 5132 .section .text.HAL_SPI_RxCpltCallback,"ax",%progbits 5133 .align 1 5134 .weak HAL_SPI_RxCpltCallback 5135 .syntax unified 5136 .thumb 5137 .thumb_func 5139 HAL_SPI_RxCpltCallback: 5140 .LVL323: 5141 .LFB150: 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5142 .loc 1 2879 1 is_stmt 1 view -0 5143 .cfi_startproc 5144 @ args = 0, pretend = 0, frame = 0 5145 @ frame_needed = 0, uses_anonymous_args = 0 5146 @ link register save eliminated. ARM GAS /tmp/ccZ0BHQJ.s page 197 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5147 .loc 1 2881 3 view .LVU1796 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5148 .loc 1 2886 1 is_stmt 0 view .LVU1797 5149 0000 7047 bx lr 5150 .cfi_endproc 5151 .LFE150: 5153 .section .text.HAL_SPI_TxRxCpltCallback,"ax",%progbits 5154 .align 1 5155 .weak HAL_SPI_TxRxCpltCallback 5156 .syntax unified 5157 .thumb 5158 .thumb_func 5160 HAL_SPI_TxRxCpltCallback: 5161 .LVL324: 5162 .LFB151: 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5163 .loc 1 2895 1 is_stmt 1 view -0 5164 .cfi_startproc 5165 @ args = 0, pretend = 0, frame = 0 5166 @ frame_needed = 0, uses_anonymous_args = 0 5167 @ link register save eliminated. 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5168 .loc 1 2897 3 view .LVU1799 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5169 .loc 1 2902 1 is_stmt 0 view .LVU1800 5170 0000 7047 bx lr 5171 .cfi_endproc 5172 .LFE151: 5174 .section .text.HAL_SPI_TxHalfCpltCallback,"ax",%progbits 5175 .align 1 5176 .weak HAL_SPI_TxHalfCpltCallback 5177 .syntax unified 5178 .thumb 5179 .thumb_func 5181 HAL_SPI_TxHalfCpltCallback: 5182 .LVL325: 5183 .LFB152: 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5184 .loc 1 2911 1 is_stmt 1 view -0 5185 .cfi_startproc 5186 @ args = 0, pretend = 0, frame = 0 5187 @ frame_needed = 0, uses_anonymous_args = 0 5188 @ link register save eliminated. 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5189 .loc 1 2913 3 view .LVU1802 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5190 .loc 1 2918 1 is_stmt 0 view .LVU1803 5191 0000 7047 bx lr 5192 .cfi_endproc 5193 .LFE152: 5195 .section .text.SPI_DMAHalfTransmitCplt,"ax",%progbits 5196 .align 1 5197 .syntax unified 5198 .thumb 5199 .thumb_func 5201 SPI_DMAHalfTransmitCplt: ARM GAS /tmp/ccZ0BHQJ.s page 198 5202 .LVL326: 5203 .LFB162: 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5204 .loc 1 3323 1 is_stmt 1 view -0 5205 .cfi_startproc 5206 @ args = 0, pretend = 0, frame = 0 5207 @ frame_needed = 0, uses_anonymous_args = 0 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5208 .loc 1 3323 1 is_stmt 0 view .LVU1805 5209 0000 08B5 push {r3, lr} 5210 .cfi_def_cfa_offset 8 5211 .cfi_offset 3, -8 5212 .cfi_offset 14, -4 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5213 .loc 1 3324 3 is_stmt 1 view .LVU1806 5214 .LVL327: 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5215 .loc 1 3330 3 view .LVU1807 5216 0002 406A ldr r0, [r0, #36] 5217 .LVL328: 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5218 .loc 1 3330 3 is_stmt 0 view .LVU1808 5219 0004 FFF7FEFF bl HAL_SPI_TxHalfCpltCallback 5220 .LVL329: 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5221 .loc 1 3332 1 view .LVU1809 5222 0008 08BD pop {r3, pc} 5223 .cfi_endproc 5224 .LFE162: 5226 .section .text.HAL_SPI_RxHalfCpltCallback,"ax",%progbits 5227 .align 1 5228 .weak HAL_SPI_RxHalfCpltCallback 5229 .syntax unified 5230 .thumb 5231 .thumb_func 5233 HAL_SPI_RxHalfCpltCallback: 5234 .LVL330: 5235 .LFB153: 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5236 .loc 1 2927 1 is_stmt 1 view -0 5237 .cfi_startproc 5238 @ args = 0, pretend = 0, frame = 0 5239 @ frame_needed = 0, uses_anonymous_args = 0 5240 @ link register save eliminated. 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5241 .loc 1 2929 3 view .LVU1811 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5242 .loc 1 2934 1 is_stmt 0 view .LVU1812 5243 0000 7047 bx lr 5244 .cfi_endproc 5245 .LFE153: 5247 .section .text.SPI_DMAHalfReceiveCplt,"ax",%progbits 5248 .align 1 5249 .syntax unified 5250 .thumb 5251 .thumb_func 5253 SPI_DMAHalfReceiveCplt: ARM GAS /tmp/ccZ0BHQJ.s page 199 5254 .LVL331: 5255 .LFB163: 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5256 .loc 1 3341 1 is_stmt 1 view -0 5257 .cfi_startproc 5258 @ args = 0, pretend = 0, frame = 0 5259 @ frame_needed = 0, uses_anonymous_args = 0 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5260 .loc 1 3341 1 is_stmt 0 view .LVU1814 5261 0000 08B5 push {r3, lr} 5262 .cfi_def_cfa_offset 8 5263 .cfi_offset 3, -8 5264 .cfi_offset 14, -4 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5265 .loc 1 3342 3 is_stmt 1 view .LVU1815 5266 .LVL332: 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5267 .loc 1 3348 3 view .LVU1816 5268 0002 406A ldr r0, [r0, #36] 5269 .LVL333: 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5270 .loc 1 3348 3 is_stmt 0 view .LVU1817 5271 0004 FFF7FEFF bl HAL_SPI_RxHalfCpltCallback 5272 .LVL334: 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5273 .loc 1 3350 1 view .LVU1818 5274 0008 08BD pop {r3, pc} 5275 .cfi_endproc 5276 .LFE163: 5278 .section .text.HAL_SPI_TxRxHalfCpltCallback,"ax",%progbits 5279 .align 1 5280 .weak HAL_SPI_TxRxHalfCpltCallback 5281 .syntax unified 5282 .thumb 5283 .thumb_func 5285 HAL_SPI_TxRxHalfCpltCallback: 5286 .LVL335: 5287 .LFB154: 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5288 .loc 1 2943 1 is_stmt 1 view -0 5289 .cfi_startproc 5290 @ args = 0, pretend = 0, frame = 0 5291 @ frame_needed = 0, uses_anonymous_args = 0 5292 @ link register save eliminated. 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5293 .loc 1 2945 3 view .LVU1820 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5294 .loc 1 2950 1 is_stmt 0 view .LVU1821 5295 0000 7047 bx lr 5296 .cfi_endproc 5297 .LFE154: 5299 .section .text.SPI_DMAHalfTransmitReceiveCplt,"ax",%progbits 5300 .align 1 5301 .syntax unified 5302 .thumb 5303 .thumb_func 5305 SPI_DMAHalfTransmitReceiveCplt: ARM GAS /tmp/ccZ0BHQJ.s page 200 5306 .LVL336: 5307 .LFB164: 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5308 .loc 1 3359 1 is_stmt 1 view -0 5309 .cfi_startproc 5310 @ args = 0, pretend = 0, frame = 0 5311 @ frame_needed = 0, uses_anonymous_args = 0 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5312 .loc 1 3359 1 is_stmt 0 view .LVU1823 5313 0000 08B5 push {r3, lr} 5314 .cfi_def_cfa_offset 8 5315 .cfi_offset 3, -8 5316 .cfi_offset 14, -4 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5317 .loc 1 3360 3 is_stmt 1 view .LVU1824 5318 .LVL337: 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5319 .loc 1 3366 3 view .LVU1825 5320 0002 406A ldr r0, [r0, #36] 5321 .LVL338: 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5322 .loc 1 3366 3 is_stmt 0 view .LVU1826 5323 0004 FFF7FEFF bl HAL_SPI_TxRxHalfCpltCallback 5324 .LVL339: 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5325 .loc 1 3368 1 view .LVU1827 5326 0008 08BD pop {r3, pc} 5327 .cfi_endproc 5328 .LFE164: 5330 .section .text.HAL_SPI_ErrorCallback,"ax",%progbits 5331 .align 1 5332 .weak HAL_SPI_ErrorCallback 5333 .syntax unified 5334 .thumb 5335 .thumb_func 5337 HAL_SPI_ErrorCallback: 5338 .LVL340: 5339 .LFB155: 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5340 .loc 1 2959 1 is_stmt 1 view -0 5341 .cfi_startproc 5342 @ args = 0, pretend = 0, frame = 0 5343 @ frame_needed = 0, uses_anonymous_args = 0 5344 @ link register save eliminated. 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5345 .loc 1 2961 3 view .LVU1829 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5346 .loc 1 2969 1 is_stmt 0 view .LVU1830 5347 0000 7047 bx lr 5348 .cfi_endproc 5349 .LFE155: 5351 .section .text.SPI_CloseTx_ISR,"ax",%progbits 5352 .align 1 5353 .syntax unified 5354 .thumb 5355 .thumb_func 5357 SPI_CloseTx_ISR: ARM GAS /tmp/ccZ0BHQJ.s page 201 5358 .LVL341: 5359 .LFB183: 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5360 .loc 1 4301 1 is_stmt 1 view -0 5361 .cfi_startproc 5362 @ args = 0, pretend = 0, frame = 8 5363 @ frame_needed = 0, uses_anonymous_args = 0 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5364 .loc 1 4301 1 is_stmt 0 view .LVU1832 5365 0000 10B5 push {r4, lr} 5366 .cfi_def_cfa_offset 8 5367 .cfi_offset 4, -8 5368 .cfi_offset 14, -4 5369 0002 82B0 sub sp, sp, #8 5370 .cfi_def_cfa_offset 16 5371 0004 0446 mov r4, r0 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5372 .loc 1 4302 3 is_stmt 1 view .LVU1833 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5373 .loc 1 4305 3 view .LVU1834 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5374 .loc 1 4305 15 is_stmt 0 view .LVU1835 5375 0006 FFF7FEFF bl HAL_GetTick 5376 .LVL342: 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5377 .loc 1 4305 15 view .LVU1836 5378 000a 0246 mov r2, r0 5379 .LVL343: 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5380 .loc 1 4308 3 is_stmt 1 view .LVU1837 5381 000c 2168 ldr r1, [r4] 5382 000e 4B68 ldr r3, [r1, #4] 5383 0010 23F0A003 bic r3, r3, #160 5384 0014 4B60 str r3, [r1, #4] 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5385 .loc 1 4311 3 view .LVU1838 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5386 .loc 1 4311 7 is_stmt 0 view .LVU1839 5387 0016 6421 movs r1, #100 5388 0018 2046 mov r0, r4 5389 .LVL344: 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5390 .loc 1 4311 7 view .LVU1840 5391 001a FFF7FEFF bl SPI_EndRxTxTransaction 5392 .LVL345: 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5393 .loc 1 4311 6 discriminator 1 view .LVU1841 5394 001e 18B1 cbz r0, .L370 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5395 .loc 1 4313 5 is_stmt 1 view .LVU1842 5396 0020 236E ldr r3, [r4, #96] 5397 0022 43F02003 orr r3, r3, #32 5398 0026 2366 str r3, [r4, #96] 5399 .L370: 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5400 .loc 1 4317 3 view .LVU1843 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 202 5401 .loc 1 4317 17 is_stmt 0 view .LVU1844 5402 0028 A368 ldr r3, [r4, #8] 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5403 .loc 1 4317 6 view .LVU1845 5404 002a 33B9 cbnz r3, .L371 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5405 .loc 1 4319 5 is_stmt 1 view .LVU1846 5406 .LBB5: 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5407 .loc 1 4319 5 view .LVU1847 5408 002c 0193 str r3, [sp, #4] 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5409 .loc 1 4319 5 view .LVU1848 5410 002e 2368 ldr r3, [r4] 5411 0030 DA68 ldr r2, [r3, #12] 5412 0032 0192 str r2, [sp, #4] 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5413 .loc 1 4319 5 view .LVU1849 5414 0034 9B68 ldr r3, [r3, #8] 5415 0036 0193 str r3, [sp, #4] 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5416 .loc 1 4319 5 view .LVU1850 5417 0038 019B ldr r3, [sp, #4] 5418 .L371: 5419 .LBE5: 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5420 .loc 1 4319 5 discriminator 1 view .LVU1851 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5421 .loc 1 4322 3 view .LVU1852 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5422 .loc 1 4322 15 is_stmt 0 view .LVU1853 5423 003a 0123 movs r3, #1 5424 003c 84F85D30 strb r3, [r4, #93] 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5425 .loc 1 4323 3 is_stmt 1 view .LVU1854 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5426 .loc 1 4323 11 is_stmt 0 view .LVU1855 5427 0040 236E ldr r3, [r4, #96] 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5428 .loc 1 4323 6 view .LVU1856 5429 0042 23B1 cbz r3, .L372 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5430 .loc 1 4329 5 is_stmt 1 view .LVU1857 5431 0044 2046 mov r0, r4 5432 0046 FFF7FEFF bl HAL_SPI_ErrorCallback 5433 .LVL346: 5434 .L369: 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5435 .loc 1 4341 1 is_stmt 0 view .LVU1858 5436 004a 02B0 add sp, sp, #8 5437 .cfi_remember_state 5438 .cfi_def_cfa_offset 8 5439 @ sp needed 5440 004c 10BD pop {r4, pc} 5441 .LVL347: 5442 .L372: 5443 .cfi_restore_state ARM GAS /tmp/ccZ0BHQJ.s page 203 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5444 .loc 1 4338 5 is_stmt 1 view .LVU1859 5445 004e 2046 mov r0, r4 5446 0050 FFF7FEFF bl HAL_SPI_TxCpltCallback 5447 .LVL348: 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5448 .loc 1 4341 1 is_stmt 0 view .LVU1860 5449 0054 F9E7 b .L369 5450 .cfi_endproc 5451 .LFE183: 5453 .section .text.SPI_TxISR_8BIT,"ax",%progbits 5454 .align 1 5455 .syntax unified 5456 .thumb 5457 .thumb_func 5459 SPI_TxISR_8BIT: 5460 .LVL349: 5461 .LFB175: 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5462 .loc 1 3895 1 is_stmt 1 view -0 5463 .cfi_startproc 5464 @ args = 0, pretend = 0, frame = 0 5465 @ frame_needed = 0, uses_anonymous_args = 0 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5466 .loc 1 3895 1 is_stmt 0 view .LVU1862 5467 0000 08B5 push {r3, lr} 5468 .cfi_def_cfa_offset 8 5469 .cfi_offset 3, -8 5470 .cfi_offset 14, -4 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5471 .loc 1 3896 3 is_stmt 1 view .LVU1863 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5472 .loc 1 3896 48 is_stmt 0 view .LVU1864 5473 0002 826B ldr r2, [r0, #56] 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5474 .loc 1 3896 25 view .LVU1865 5475 0004 0368 ldr r3, [r0] 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5476 .loc 1 3896 43 view .LVU1866 5477 0006 1278 ldrb r2, [r2] @ zero_extendqisi2 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5478 .loc 1 3896 40 view .LVU1867 5479 0008 1A73 strb r2, [r3, #12] 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5480 .loc 1 3897 3 is_stmt 1 view .LVU1868 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5481 .loc 1 3897 7 is_stmt 0 view .LVU1869 5482 000a 836B ldr r3, [r0, #56] 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5483 .loc 1 3897 19 view .LVU1870 5484 000c 0133 adds r3, r3, #1 5485 000e 8363 str r3, [r0, #56] 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5486 .loc 1 3898 3 is_stmt 1 view .LVU1871 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5487 .loc 1 3898 7 is_stmt 0 view .LVU1872 5488 0010 C38F ldrh r3, [r0, #62] ARM GAS /tmp/ccZ0BHQJ.s page 204 5489 0012 9BB2 uxth r3, r3 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5490 .loc 1 3898 20 view .LVU1873 5491 0014 013B subs r3, r3, #1 5492 0016 9BB2 uxth r3, r3 5493 0018 C387 strh r3, [r0, #62] @ movhi 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5494 .loc 1 3900 3 is_stmt 1 view .LVU1874 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5495 .loc 1 3900 11 is_stmt 0 view .LVU1875 5496 001a C38F ldrh r3, [r0, #62] 5497 001c 9BB2 uxth r3, r3 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5498 .loc 1 3900 6 view .LVU1876 5499 001e 03B1 cbz r3, .L378 5500 .LVL350: 5501 .L375: 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5502 .loc 1 3911 1 view .LVU1877 5503 0020 08BD pop {r3, pc} 5504 .LVL351: 5505 .L378: 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5506 .loc 1 3909 5 is_stmt 1 view .LVU1878 5507 0022 FFF7FEFF bl SPI_CloseTx_ISR 5508 .LVL352: 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5509 .loc 1 3911 1 is_stmt 0 view .LVU1879 5510 0026 FBE7 b .L375 5511 .cfi_endproc 5512 .LFE175: 5514 .section .text.SPI_TxISR_16BIT,"ax",%progbits 5515 .align 1 5516 .syntax unified 5517 .thumb 5518 .thumb_func 5520 SPI_TxISR_16BIT: 5521 .LVL353: 5522 .LFB176: 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5523 .loc 1 3920 1 is_stmt 1 view -0 5524 .cfi_startproc 5525 @ args = 0, pretend = 0, frame = 0 5526 @ frame_needed = 0, uses_anonymous_args = 0 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5527 .loc 1 3920 1 is_stmt 0 view .LVU1881 5528 0000 08B5 push {r3, lr} 5529 .cfi_def_cfa_offset 8 5530 .cfi_offset 3, -8 5531 .cfi_offset 14, -4 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5532 .loc 1 3922 3 is_stmt 1 view .LVU1882 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5533 .loc 1 3922 42 is_stmt 0 view .LVU1883 5534 0002 826B ldr r2, [r0, #56] 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5535 .loc 1 3922 7 view .LVU1884 ARM GAS /tmp/ccZ0BHQJ.s page 205 5536 0004 0368 ldr r3, [r0] 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5537 .loc 1 3922 24 view .LVU1885 5538 0006 1288 ldrh r2, [r2] 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5539 .loc 1 3922 22 view .LVU1886 5540 0008 DA60 str r2, [r3, #12] 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5541 .loc 1 3923 3 is_stmt 1 view .LVU1887 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5542 .loc 1 3923 7 is_stmt 0 view .LVU1888 5543 000a 836B ldr r3, [r0, #56] 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5544 .loc 1 3923 20 view .LVU1889 5545 000c 0233 adds r3, r3, #2 5546 000e 8363 str r3, [r0, #56] 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5547 .loc 1 3924 3 is_stmt 1 view .LVU1890 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5548 .loc 1 3924 7 is_stmt 0 view .LVU1891 5549 0010 C38F ldrh r3, [r0, #62] 5550 0012 9BB2 uxth r3, r3 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5551 .loc 1 3924 20 view .LVU1892 5552 0014 013B subs r3, r3, #1 5553 0016 9BB2 uxth r3, r3 5554 0018 C387 strh r3, [r0, #62] @ movhi 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5555 .loc 1 3926 3 is_stmt 1 view .LVU1893 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5556 .loc 1 3926 11 is_stmt 0 view .LVU1894 5557 001a C38F ldrh r3, [r0, #62] 5558 001c 9BB2 uxth r3, r3 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5559 .loc 1 3926 6 view .LVU1895 5560 001e 03B1 cbz r3, .L382 5561 .LVL354: 5562 .L379: 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5563 .loc 1 3937 1 view .LVU1896 5564 0020 08BD pop {r3, pc} 5565 .LVL355: 5566 .L382: 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5567 .loc 1 3935 5 is_stmt 1 view .LVU1897 5568 0022 FFF7FEFF bl SPI_CloseTx_ISR 5569 .LVL356: 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5570 .loc 1 3937 1 is_stmt 0 view .LVU1898 5571 0026 FBE7 b .L379 5572 .cfi_endproc 5573 .LFE176: 5575 .section .text.SPI_CloseRx_ISR,"ax",%progbits 5576 .align 1 5577 .syntax unified 5578 .thumb 5579 .thumb_func ARM GAS /tmp/ccZ0BHQJ.s page 206 5581 SPI_CloseRx_ISR: 5582 .LVL357: 5583 .LFB182: 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5584 .loc 1 4244 1 is_stmt 1 view -0 5585 .cfi_startproc 5586 @ args = 0, pretend = 0, frame = 0 5587 @ frame_needed = 0, uses_anonymous_args = 0 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5588 .loc 1 4244 1 is_stmt 0 view .LVU1900 5589 0000 10B5 push {r4, lr} 5590 .cfi_def_cfa_offset 8 5591 .cfi_offset 4, -8 5592 .cfi_offset 14, -4 5593 0002 0446 mov r4, r0 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5594 .loc 1 4246 3 is_stmt 1 view .LVU1901 5595 0004 0268 ldr r2, [r0] 5596 0006 5368 ldr r3, [r2, #4] 5597 0008 23F06003 bic r3, r3, #96 5598 000c 5360 str r3, [r2, #4] 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5599 .loc 1 4249 3 view .LVU1902 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5600 .loc 1 4249 7 is_stmt 0 view .LVU1903 5601 000e FFF7FEFF bl HAL_GetTick 5602 .LVL358: 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5603 .loc 1 4249 7 view .LVU1904 5604 0012 0246 mov r2, r0 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5605 .loc 1 4249 7 discriminator 1 view .LVU1905 5606 0014 6421 movs r1, #100 5607 0016 2046 mov r0, r4 5608 0018 FFF7FEFF bl SPI_EndRxTransaction 5609 .LVL359: 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5610 .loc 1 4249 6 discriminator 2 view .LVU1906 5611 001c 18B1 cbz r0, .L384 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5612 .loc 1 4251 5 is_stmt 1 view .LVU1907 5613 001e 236E ldr r3, [r4, #96] 5614 0020 43F02003 orr r3, r3, #32 5615 0024 2366 str r3, [r4, #96] 5616 .L384: 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5617 .loc 1 4253 3 view .LVU1908 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5618 .loc 1 4253 15 is_stmt 0 view .LVU1909 5619 0026 0123 movs r3, #1 5620 0028 84F85D30 strb r3, [r4, #93] 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5621 .loc 1 4271 5 is_stmt 1 view .LVU1910 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5622 .loc 1 4271 13 is_stmt 0 view .LVU1911 5623 002c 236E ldr r3, [r4, #96] 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 207 5624 .loc 1 4271 8 view .LVU1912 5625 002e 1BB9 cbnz r3, .L385 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5626 .loc 1 4277 7 is_stmt 1 view .LVU1913 5627 0030 2046 mov r0, r4 5628 0032 FFF7FEFF bl HAL_SPI_RxCpltCallback 5629 .LVL360: 5630 .L383: 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5631 .loc 1 4292 1 is_stmt 0 view .LVU1914 5632 0036 10BD pop {r4, pc} 5633 .LVL361: 5634 .L385: 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5635 .loc 1 4286 7 is_stmt 1 view .LVU1915 5636 0038 2046 mov r0, r4 5637 003a FFF7FEFF bl HAL_SPI_ErrorCallback 5638 .LVL362: 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5639 .loc 1 4292 1 is_stmt 0 view .LVU1916 5640 003e FAE7 b .L383 5641 .cfi_endproc 5642 .LFE182: 5644 .section .text.SPI_RxISR_8BIT,"ax",%progbits 5645 .align 1 5646 .syntax unified 5647 .thumb 5648 .thumb_func 5650 SPI_RxISR_8BIT: 5651 .LVL363: 5652 .LFB173: 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 5653 .loc 1 3806 1 is_stmt 1 view -0 5654 .cfi_startproc 5655 @ args = 0, pretend = 0, frame = 0 5656 @ frame_needed = 0, uses_anonymous_args = 0 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 5657 .loc 1 3806 1 is_stmt 0 view .LVU1918 5658 0000 08B5 push {r3, lr} 5659 .cfi_def_cfa_offset 8 5660 .cfi_offset 3, -8 5661 .cfi_offset 14, -4 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5662 .loc 1 3807 3 is_stmt 1 view .LVU1919 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5663 .loc 1 3807 46 is_stmt 0 view .LVU1920 5664 0002 0268 ldr r2, [r0] 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5665 .loc 1 3807 8 view .LVU1921 5666 0004 036C ldr r3, [r0, #64] 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5667 .loc 1 3807 24 view .LVU1922 5668 0006 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5669 .loc 1 3807 21 view .LVU1923 5670 0008 1A70 strb r2, [r3] 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; ARM GAS /tmp/ccZ0BHQJ.s page 208 5671 .loc 1 3808 3 is_stmt 1 view .LVU1924 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5672 .loc 1 3808 7 is_stmt 0 view .LVU1925 5673 000a 036C ldr r3, [r0, #64] 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5674 .loc 1 3808 19 view .LVU1926 5675 000c 0133 adds r3, r3, #1 5676 000e 0364 str r3, [r0, #64] 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5677 .loc 1 3809 3 is_stmt 1 view .LVU1927 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5678 .loc 1 3809 7 is_stmt 0 view .LVU1928 5679 0010 B0F84630 ldrh r3, [r0, #70] 5680 0014 9BB2 uxth r3, r3 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5681 .loc 1 3809 20 view .LVU1929 5682 0016 013B subs r3, r3, #1 5683 0018 9BB2 uxth r3, r3 5684 001a A0F84630 strh r3, [r0, #70] @ movhi 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5685 .loc 1 3819 3 is_stmt 1 view .LVU1930 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5686 .loc 1 3819 11 is_stmt 0 view .LVU1931 5687 001e B0F84630 ldrh r3, [r0, #70] 5688 0022 9BB2 uxth r3, r3 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5689 .loc 1 3819 6 view .LVU1932 5690 0024 03B1 cbz r3, .L391 5691 .LVL364: 5692 .L388: 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5693 .loc 1 3830 1 view .LVU1933 5694 0026 08BD pop {r3, pc} 5695 .LVL365: 5696 .L391: 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5697 .loc 1 3828 5 is_stmt 1 view .LVU1934 5698 0028 FFF7FEFF bl SPI_CloseRx_ISR 5699 .LVL366: 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5700 .loc 1 3830 1 is_stmt 0 view .LVU1935 5701 002c FBE7 b .L388 5702 .cfi_endproc 5703 .LFE173: 5705 .section .text.SPI_RxISR_16BIT,"ax",%progbits 5706 .align 1 5707 .syntax unified 5708 .thumb 5709 .thumb_func 5711 SPI_RxISR_16BIT: 5712 .LVL367: 5713 .LFB174: 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5714 .loc 1 3862 1 is_stmt 1 view -0 5715 .cfi_startproc 5716 @ args = 0, pretend = 0, frame = 0 5717 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccZ0BHQJ.s page 209 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5718 .loc 1 3862 1 is_stmt 0 view .LVU1937 5719 0000 08B5 push {r3, lr} 5720 .cfi_def_cfa_offset 8 5721 .cfi_offset 3, -8 5722 .cfi_offset 14, -4 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5723 .loc 1 3863 3 is_stmt 1 view .LVU1938 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5724 .loc 1 3863 52 is_stmt 0 view .LVU1939 5725 0002 0368 ldr r3, [r0] 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5726 .loc 1 3863 62 view .LVU1940 5727 0004 DA68 ldr r2, [r3, #12] 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5728 .loc 1 3863 21 view .LVU1941 5729 0006 036C ldr r3, [r0, #64] 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5730 .loc 1 3863 35 view .LVU1942 5731 0008 1A80 strh r2, [r3] @ movhi 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5732 .loc 1 3864 3 is_stmt 1 view .LVU1943 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5733 .loc 1 3864 7 is_stmt 0 view .LVU1944 5734 000a 036C ldr r3, [r0, #64] 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5735 .loc 1 3864 20 view .LVU1945 5736 000c 0233 adds r3, r3, #2 5737 000e 0364 str r3, [r0, #64] 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5738 .loc 1 3865 3 is_stmt 1 view .LVU1946 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5739 .loc 1 3865 7 is_stmt 0 view .LVU1947 5740 0010 B0F84630 ldrh r3, [r0, #70] 5741 0014 9BB2 uxth r3, r3 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5742 .loc 1 3865 20 view .LVU1948 5743 0016 013B subs r3, r3, #1 5744 0018 9BB2 uxth r3, r3 5745 001a A0F84630 strh r3, [r0, #70] @ movhi 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5746 .loc 1 3875 3 is_stmt 1 view .LVU1949 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5747 .loc 1 3875 11 is_stmt 0 view .LVU1950 5748 001e B0F84630 ldrh r3, [r0, #70] 5749 0022 9BB2 uxth r3, r3 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5750 .loc 1 3875 6 view .LVU1951 5751 0024 03B1 cbz r3, .L395 5752 .LVL368: 5753 .L392: 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5754 .loc 1 3886 1 view .LVU1952 5755 0026 08BD pop {r3, pc} 5756 .LVL369: 5757 .L395: 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccZ0BHQJ.s page 210 5758 .loc 1 3884 5 is_stmt 1 view .LVU1953 5759 0028 FFF7FEFF bl SPI_CloseRx_ISR 5760 .LVL370: 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5761 .loc 1 3886 1 is_stmt 0 view .LVU1954 5762 002c FBE7 b .L392 5763 .cfi_endproc 5764 .LFE174: 5766 .section .text.SPI_CloseRxTx_ISR,"ax",%progbits 5767 .align 1 5768 .syntax unified 5769 .thumb 5770 .thumb_func 5772 SPI_CloseRxTx_ISR: 5773 .LVL371: 5774 .LFB181: 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5775 .loc 1 4167 1 is_stmt 1 view -0 5776 .cfi_startproc 5777 @ args = 0, pretend = 0, frame = 0 5778 @ frame_needed = 0, uses_anonymous_args = 0 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5779 .loc 1 4167 1 is_stmt 0 view .LVU1956 5780 0000 10B5 push {r4, lr} 5781 .cfi_def_cfa_offset 8 5782 .cfi_offset 4, -8 5783 .cfi_offset 14, -4 5784 0002 0446 mov r4, r0 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5785 .loc 1 4168 3 is_stmt 1 view .LVU1957 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5786 .loc 1 4171 3 view .LVU1958 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5787 .loc 1 4171 15 is_stmt 0 view .LVU1959 5788 0004 FFF7FEFF bl HAL_GetTick 5789 .LVL372: 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5790 .loc 1 4171 15 view .LVU1960 5791 0008 0246 mov r2, r0 5792 .LVL373: 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5793 .loc 1 4174 3 is_stmt 1 view .LVU1961 5794 000a 2168 ldr r1, [r4] 5795 000c 4B68 ldr r3, [r1, #4] 5796 000e 23F02003 bic r3, r3, #32 5797 0012 4B60 str r3, [r1, #4] 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5798 .loc 1 4177 3 view .LVU1962 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5799 .loc 1 4177 7 is_stmt 0 view .LVU1963 5800 0014 6421 movs r1, #100 5801 0016 2046 mov r0, r4 5802 .LVL374: 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5803 .loc 1 4177 7 view .LVU1964 5804 0018 FFF7FEFF bl SPI_EndRxTxTransaction 5805 .LVL375: ARM GAS /tmp/ccZ0BHQJ.s page 211 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5806 .loc 1 4177 6 discriminator 1 view .LVU1965 5807 001c 18B1 cbz r0, .L397 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5808 .loc 1 4179 5 is_stmt 1 view .LVU1966 5809 001e 236E ldr r3, [r4, #96] 5810 0020 43F02003 orr r3, r3, #32 5811 0024 2366 str r3, [r4, #96] 5812 .L397: 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5813 .loc 1 4199 5 view .LVU1967 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5814 .loc 1 4199 13 is_stmt 0 view .LVU1968 5815 0026 236E ldr r3, [r4, #96] 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5816 .loc 1 4199 8 view .LVU1969 5817 0028 93B9 cbnz r3, .L398 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5818 .loc 1 4201 7 is_stmt 1 view .LVU1970 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5819 .loc 1 4201 15 is_stmt 0 view .LVU1971 5820 002a 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 5821 002e DBB2 uxtb r3, r3 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5822 .loc 1 4201 10 view .LVU1972 5823 0030 042B cmp r3, #4 5824 0032 06D0 beq .L402 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5825 .loc 1 4213 9 is_stmt 1 view .LVU1973 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5826 .loc 1 4213 21 is_stmt 0 view .LVU1974 5827 0034 0123 movs r3, #1 5828 0036 84F85D30 strb r3, [r4, #93] 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5829 .loc 1 4218 9 is_stmt 1 view .LVU1975 5830 003a 2046 mov r0, r4 5831 003c FFF7FEFF bl HAL_SPI_TxRxCpltCallback 5832 .LVL376: 5833 .L396: 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5834 .loc 1 4235 1 is_stmt 0 view .LVU1976 5835 0040 10BD pop {r4, pc} 5836 .LVL377: 5837 .L402: 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5838 .loc 1 4203 9 is_stmt 1 view .LVU1977 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5839 .loc 1 4203 21 is_stmt 0 view .LVU1978 5840 0042 0123 movs r3, #1 5841 0044 84F85D30 strb r3, [r4, #93] 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5842 .loc 1 4208 9 is_stmt 1 view .LVU1979 5843 0048 2046 mov r0, r4 5844 004a FFF7FEFF bl HAL_SPI_RxCpltCallback 5845 .LVL378: 5846 004e F7E7 b .L396 5847 .L398: ARM GAS /tmp/ccZ0BHQJ.s page 212 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5848 .loc 1 4224 7 view .LVU1980 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5849 .loc 1 4224 19 is_stmt 0 view .LVU1981 5850 0050 0123 movs r3, #1 5851 0052 84F85D30 strb r3, [r4, #93] 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5852 .loc 1 4229 7 is_stmt 1 view .LVU1982 5853 0056 2046 mov r0, r4 5854 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 5855 .LVL379: 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5856 .loc 1 4235 1 is_stmt 0 view .LVU1983 5857 005c F0E7 b .L396 5858 .cfi_endproc 5859 .LFE181: 5861 .section .text.SPI_2linesTxISR_8BIT,"ax",%progbits 5862 .align 1 5863 .syntax unified 5864 .thumb 5865 .thumb_func 5867 SPI_2linesTxISR_8BIT: 5868 .LVL380: 5869 .LFB170: 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5870 .loc 1 3638 1 is_stmt 1 view -0 5871 .cfi_startproc 5872 @ args = 0, pretend = 0, frame = 0 5873 @ frame_needed = 0, uses_anonymous_args = 0 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5874 .loc 1 3638 1 is_stmt 0 view .LVU1985 5875 0000 08B5 push {r3, lr} 5876 .cfi_def_cfa_offset 8 5877 .cfi_offset 3, -8 5878 .cfi_offset 14, -4 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5879 .loc 1 3640 3 is_stmt 1 view .LVU1986 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5880 .loc 1 3640 11 is_stmt 0 view .LVU1987 5881 0002 C38F ldrh r3, [r0, #62] 5882 0004 9BB2 uxth r3, r3 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5883 .loc 1 3640 6 view .LVU1988 5884 0006 012B cmp r3, #1 5885 0008 18D9 bls .L404 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5886 .loc 1 3642 5 is_stmt 1 view .LVU1989 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5887 .loc 1 3642 44 is_stmt 0 view .LVU1990 5888 000a 826B ldr r2, [r0, #56] 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5889 .loc 1 3642 9 view .LVU1991 5890 000c 0368 ldr r3, [r0] 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5891 .loc 1 3642 26 view .LVU1992 5892 000e 1288 ldrh r2, [r2] 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); ARM GAS /tmp/ccZ0BHQJ.s page 213 5893 .loc 1 3642 24 view .LVU1993 5894 0010 DA60 str r2, [r3, #12] 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5895 .loc 1 3643 5 is_stmt 1 view .LVU1994 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5896 .loc 1 3643 9 is_stmt 0 view .LVU1995 5897 0012 836B ldr r3, [r0, #56] 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5898 .loc 1 3643 22 view .LVU1996 5899 0014 0233 adds r3, r3, #2 5900 0016 8363 str r3, [r0, #56] 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5901 .loc 1 3644 5 is_stmt 1 view .LVU1997 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5902 .loc 1 3644 9 is_stmt 0 view .LVU1998 5903 0018 C38F ldrh r3, [r0, #62] 5904 001a 9BB2 uxth r3, r3 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5905 .loc 1 3644 23 view .LVU1999 5906 001c 023B subs r3, r3, #2 5907 001e 9BB2 uxth r3, r3 5908 0020 C387 strh r3, [r0, #62] @ movhi 5909 .L405: 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5910 .loc 1 3655 3 is_stmt 1 view .LVU2000 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5911 .loc 1 3655 11 is_stmt 0 view .LVU2001 5912 0022 C38F ldrh r3, [r0, #62] 5913 0024 9BB2 uxth r3, r3 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5914 .loc 1 3655 6 view .LVU2002 5915 0026 43B9 cbnz r3, .L403 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5916 .loc 1 3669 5 is_stmt 1 view .LVU2003 5917 0028 0268 ldr r2, [r0] 5918 002a 5368 ldr r3, [r2, #4] 5919 002c 23F08003 bic r3, r3, #128 5920 0030 5360 str r3, [r2, #4] 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5921 .loc 1 3671 5 view .LVU2004 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5922 .loc 1 3671 13 is_stmt 0 view .LVU2005 5923 0032 B0F84630 ldrh r3, [r0, #70] 5924 0036 9BB2 uxth r3, r3 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5925 .loc 1 3671 8 view .LVU2006 5926 0038 6BB1 cbz r3, .L408 5927 .LVL381: 5928 .L403: 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5929 .loc 1 3676 1 view .LVU2007 5930 003a 08BD pop {r3, pc} 5931 .LVL382: 5932 .L404: 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5933 .loc 1 3649 5 is_stmt 1 view .LVU2008 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; ARM GAS /tmp/ccZ0BHQJ.s page 214 5934 .loc 1 3649 50 is_stmt 0 view .LVU2009 5935 003c 826B ldr r2, [r0, #56] 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5936 .loc 1 3649 27 view .LVU2010 5937 003e 0368 ldr r3, [r0] 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5938 .loc 1 3649 45 view .LVU2011 5939 0040 1278 ldrb r2, [r2] @ zero_extendqisi2 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5940 .loc 1 3649 42 view .LVU2012 5941 0042 1A73 strb r2, [r3, #12] 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5942 .loc 1 3650 5 is_stmt 1 view .LVU2013 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5943 .loc 1 3650 9 is_stmt 0 view .LVU2014 5944 0044 836B ldr r3, [r0, #56] 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5945 .loc 1 3650 21 view .LVU2015 5946 0046 0133 adds r3, r3, #1 5947 0048 8363 str r3, [r0, #56] 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5948 .loc 1 3651 5 is_stmt 1 view .LVU2016 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5949 .loc 1 3651 9 is_stmt 0 view .LVU2017 5950 004a C38F ldrh r3, [r0, #62] 5951 004c 9BB2 uxth r3, r3 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5952 .loc 1 3651 22 view .LVU2018 5953 004e 013B subs r3, r3, #1 5954 0050 9BB2 uxth r3, r3 5955 0052 C387 strh r3, [r0, #62] @ movhi 5956 0054 E5E7 b .L405 5957 .L408: 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5958 .loc 1 3673 7 is_stmt 1 view .LVU2019 5959 0056 FFF7FEFF bl SPI_CloseRxTx_ISR 5960 .LVL383: 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5961 .loc 1 3676 1 is_stmt 0 view .LVU2020 5962 005a EEE7 b .L403 5963 .cfi_endproc 5964 .LFE170: 5966 .section .text.SPI_2linesRxISR_8BIT,"ax",%progbits 5967 .align 1 5968 .syntax unified 5969 .thumb 5970 .thumb_func 5972 SPI_2linesRxISR_8BIT: 5973 .LVL384: 5974 .LFB169: 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5975 .loc 1 3553 1 is_stmt 1 view -0 5976 .cfi_startproc 5977 @ args = 0, pretend = 0, frame = 0 5978 @ frame_needed = 0, uses_anonymous_args = 0 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5979 .loc 1 3553 1 is_stmt 0 view .LVU2022 ARM GAS /tmp/ccZ0BHQJ.s page 215 5980 0000 08B5 push {r3, lr} 5981 .cfi_def_cfa_offset 8 5982 .cfi_offset 3, -8 5983 .cfi_offset 14, -4 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5984 .loc 1 3555 3 is_stmt 1 view .LVU2023 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5985 .loc 1 3555 11 is_stmt 0 view .LVU2024 5986 0002 B0F84630 ldrh r3, [r0, #70] 5987 0006 9BB2 uxth r3, r3 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5988 .loc 1 3555 6 view .LVU2025 5989 0008 012B cmp r3, #1 5990 000a 18D9 bls .L410 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5991 .loc 1 3557 5 is_stmt 1 view .LVU2026 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5992 .loc 1 3557 54 is_stmt 0 view .LVU2027 5993 000c 0368 ldr r3, [r0] 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5994 .loc 1 3557 64 view .LVU2028 5995 000e DA68 ldr r2, [r3, #12] 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5996 .loc 1 3557 23 view .LVU2029 5997 0010 036C ldr r3, [r0, #64] 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5998 .loc 1 3557 37 view .LVU2030 5999 0012 1A80 strh r2, [r3] @ movhi 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 6000 .loc 1 3558 5 is_stmt 1 view .LVU2031 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 6001 .loc 1 3558 9 is_stmt 0 view .LVU2032 6002 0014 036C ldr r3, [r0, #64] 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 6003 .loc 1 3558 22 view .LVU2033 6004 0016 0233 adds r3, r3, #2 6005 0018 0364 str r3, [r0, #64] 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 6006 .loc 1 3559 5 is_stmt 1 view .LVU2034 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 6007 .loc 1 3559 9 is_stmt 0 view .LVU2035 6008 001a B0F84630 ldrh r3, [r0, #70] 6009 001e 9BB2 uxth r3, r3 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 6010 .loc 1 3559 23 view .LVU2036 6011 0020 023B subs r3, r3, #2 6012 0022 9BB2 uxth r3, r3 6013 0024 A0F84630 strh r3, [r0, #70] @ movhi 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6014 .loc 1 3560 5 is_stmt 1 view .LVU2037 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6015 .loc 1 3560 13 is_stmt 0 view .LVU2038 6016 0028 B0F84630 ldrh r3, [r0, #70] 6017 002c 9BB2 uxth r3, r3 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6018 .loc 1 3560 8 view .LVU2039 6019 002e 012B cmp r3, #1 ARM GAS /tmp/ccZ0BHQJ.s page 216 6020 0030 13D1 bne .L411 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6021 .loc 1 3563 7 is_stmt 1 view .LVU2040 6022 0032 0268 ldr r2, [r0] 6023 0034 5368 ldr r3, [r2, #4] 6024 0036 43F48053 orr r3, r3, #4096 6025 003a 5360 str r3, [r2, #4] 6026 003c 0DE0 b .L411 6027 .L410: 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6028 .loc 1 3569 5 view .LVU2041 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6029 .loc 1 3569 48 is_stmt 0 view .LVU2042 6030 003e 0268 ldr r2, [r0] 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6031 .loc 1 3569 10 view .LVU2043 6032 0040 036C ldr r3, [r0, #64] 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6033 .loc 1 3569 25 view .LVU2044 6034 0042 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6035 .loc 1 3569 23 view .LVU2045 6036 0044 1A70 strb r2, [r3] 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6037 .loc 1 3570 5 is_stmt 1 view .LVU2046 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6038 .loc 1 3570 9 is_stmt 0 view .LVU2047 6039 0046 036C ldr r3, [r0, #64] 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6040 .loc 1 3570 21 view .LVU2048 6041 0048 0133 adds r3, r3, #1 6042 004a 0364 str r3, [r0, #64] 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6043 .loc 1 3571 5 is_stmt 1 view .LVU2049 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6044 .loc 1 3571 9 is_stmt 0 view .LVU2050 6045 004c B0F84630 ldrh r3, [r0, #70] 6046 0050 9BB2 uxth r3, r3 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6047 .loc 1 3571 22 view .LVU2051 6048 0052 013B subs r3, r3, #1 6049 0054 9BB2 uxth r3, r3 6050 0056 A0F84630 strh r3, [r0, #70] @ movhi 6051 .L411: 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6052 .loc 1 3575 3 is_stmt 1 view .LVU2052 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6053 .loc 1 3575 11 is_stmt 0 view .LVU2053 6054 005a B0F84630 ldrh r3, [r0, #70] 6055 005e 9BB2 uxth r3, r3 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6056 .loc 1 3575 6 view .LVU2054 6057 0060 3BB9 cbnz r3, .L409 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6058 .loc 1 3587 5 is_stmt 1 view .LVU2055 6059 0062 0268 ldr r2, [r0] 6060 0064 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccZ0BHQJ.s page 217 6061 0066 23F06003 bic r3, r3, #96 6062 006a 5360 str r3, [r2, #4] 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6063 .loc 1 3589 5 view .LVU2056 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6064 .loc 1 3589 13 is_stmt 0 view .LVU2057 6065 006c C38F ldrh r3, [r0, #62] 6066 006e 9BB2 uxth r3, r3 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6067 .loc 1 3589 8 view .LVU2058 6068 0070 03B1 cbz r3, .L414 6069 .LVL385: 6070 .L409: 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6071 .loc 1 3594 1 view .LVU2059 6072 0072 08BD pop {r3, pc} 6073 .LVL386: 6074 .L414: 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6075 .loc 1 3591 7 is_stmt 1 view .LVU2060 6076 0074 FFF7FEFF bl SPI_CloseRxTx_ISR 6077 .LVL387: 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6078 .loc 1 3594 1 is_stmt 0 view .LVU2061 6079 0078 FBE7 b .L409 6080 .cfi_endproc 6081 .LFE169: 6083 .section .text.SPI_2linesTxISR_16BIT,"ax",%progbits 6084 .align 1 6085 .syntax unified 6086 .thumb 6087 .thumb_func 6089 SPI_2linesTxISR_16BIT: 6090 .LVL388: 6091 .LFB172: 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6092 .loc 1 3741 1 is_stmt 1 view -0 6093 .cfi_startproc 6094 @ args = 0, pretend = 0, frame = 0 6095 @ frame_needed = 0, uses_anonymous_args = 0 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6096 .loc 1 3741 1 is_stmt 0 view .LVU2063 6097 0000 08B5 push {r3, lr} 6098 .cfi_def_cfa_offset 8 6099 .cfi_offset 3, -8 6100 .cfi_offset 14, -4 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6101 .loc 1 3743 3 is_stmt 1 view .LVU2064 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6102 .loc 1 3743 42 is_stmt 0 view .LVU2065 6103 0002 826B ldr r2, [r0, #56] 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6104 .loc 1 3743 7 view .LVU2066 6105 0004 0368 ldr r3, [r0] 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6106 .loc 1 3743 24 view .LVU2067 6107 0006 1288 ldrh r2, [r2] ARM GAS /tmp/ccZ0BHQJ.s page 218 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6108 .loc 1 3743 22 view .LVU2068 6109 0008 DA60 str r2, [r3, #12] 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6110 .loc 1 3744 3 is_stmt 1 view .LVU2069 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6111 .loc 1 3744 7 is_stmt 0 view .LVU2070 6112 000a 836B ldr r3, [r0, #56] 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6113 .loc 1 3744 20 view .LVU2071 6114 000c 0233 adds r3, r3, #2 6115 000e 8363 str r3, [r0, #56] 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6116 .loc 1 3745 3 is_stmt 1 view .LVU2072 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6117 .loc 1 3745 7 is_stmt 0 view .LVU2073 6118 0010 C38F ldrh r3, [r0, #62] 6119 0012 9BB2 uxth r3, r3 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6120 .loc 1 3745 20 view .LVU2074 6121 0014 013B subs r3, r3, #1 6122 0016 9BB2 uxth r3, r3 6123 0018 C387 strh r3, [r0, #62] @ movhi 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6124 .loc 1 3748 3 is_stmt 1 view .LVU2075 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6125 .loc 1 3748 11 is_stmt 0 view .LVU2076 6126 001a C38F ldrh r3, [r0, #62] 6127 001c 9BB2 uxth r3, r3 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6128 .loc 1 3748 6 view .LVU2077 6129 001e 43B9 cbnz r3, .L415 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6130 .loc 1 3762 5 is_stmt 1 view .LVU2078 6131 0020 0268 ldr r2, [r0] 6132 0022 5368 ldr r3, [r2, #4] 6133 0024 23F08003 bic r3, r3, #128 6134 0028 5360 str r3, [r2, #4] 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6135 .loc 1 3764 5 view .LVU2079 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6136 .loc 1 3764 13 is_stmt 0 view .LVU2080 6137 002a B0F84630 ldrh r3, [r0, #70] 6138 002e 9BB2 uxth r3, r3 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6139 .loc 1 3764 8 view .LVU2081 6140 0030 03B1 cbz r3, .L418 6141 .LVL389: 6142 .L415: 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6143 .loc 1 3769 1 view .LVU2082 6144 0032 08BD pop {r3, pc} 6145 .LVL390: 6146 .L418: 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6147 .loc 1 3766 7 is_stmt 1 view .LVU2083 6148 0034 FFF7FEFF bl SPI_CloseRxTx_ISR ARM GAS /tmp/ccZ0BHQJ.s page 219 6149 .LVL391: 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6150 .loc 1 3769 1 is_stmt 0 view .LVU2084 6151 0038 FBE7 b .L415 6152 .cfi_endproc 6153 .LFE172: 6155 .section .text.SPI_2linesRxISR_16BIT,"ax",%progbits 6156 .align 1 6157 .syntax unified 6158 .thumb 6159 .thumb_func 6161 SPI_2linesRxISR_16BIT: 6162 .LVL392: 6163 .LFB171: 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6164 .loc 1 3685 1 is_stmt 1 view -0 6165 .cfi_startproc 6166 @ args = 0, pretend = 0, frame = 0 6167 @ frame_needed = 0, uses_anonymous_args = 0 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6168 .loc 1 3685 1 is_stmt 0 view .LVU2086 6169 0000 08B5 push {r3, lr} 6170 .cfi_def_cfa_offset 8 6171 .cfi_offset 3, -8 6172 .cfi_offset 14, -4 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6173 .loc 1 3687 3 is_stmt 1 view .LVU2087 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6174 .loc 1 3687 52 is_stmt 0 view .LVU2088 6175 0002 0368 ldr r3, [r0] 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6176 .loc 1 3687 62 view .LVU2089 6177 0004 DA68 ldr r2, [r3, #12] 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6178 .loc 1 3687 21 view .LVU2090 6179 0006 036C ldr r3, [r0, #64] 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6180 .loc 1 3687 35 view .LVU2091 6181 0008 1A80 strh r2, [r3] @ movhi 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6182 .loc 1 3688 3 is_stmt 1 view .LVU2092 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6183 .loc 1 3688 7 is_stmt 0 view .LVU2093 6184 000a 036C ldr r3, [r0, #64] 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6185 .loc 1 3688 20 view .LVU2094 6186 000c 0233 adds r3, r3, #2 6187 000e 0364 str r3, [r0, #64] 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6188 .loc 1 3689 3 is_stmt 1 view .LVU2095 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6189 .loc 1 3689 7 is_stmt 0 view .LVU2096 6190 0010 B0F84630 ldrh r3, [r0, #70] 6191 0014 9BB2 uxth r3, r3 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6192 .loc 1 3689 20 view .LVU2097 6193 0016 013B subs r3, r3, #1 ARM GAS /tmp/ccZ0BHQJ.s page 220 6194 0018 9BB2 uxth r3, r3 6195 001a A0F84630 strh r3, [r0, #70] @ movhi 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6196 .loc 1 3691 3 is_stmt 1 view .LVU2098 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6197 .loc 1 3691 11 is_stmt 0 view .LVU2099 6198 001e B0F84630 ldrh r3, [r0, #70] 6199 0022 9BB2 uxth r3, r3 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6200 .loc 1 3691 6 view .LVU2100 6201 0024 3BB9 cbnz r3, .L419 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6202 .loc 1 3702 5 is_stmt 1 view .LVU2101 6203 0026 0268 ldr r2, [r0] 6204 0028 5368 ldr r3, [r2, #4] 6205 002a 23F04003 bic r3, r3, #64 6206 002e 5360 str r3, [r2, #4] 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6207 .loc 1 3704 5 view .LVU2102 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6208 .loc 1 3704 13 is_stmt 0 view .LVU2103 6209 0030 C38F ldrh r3, [r0, #62] 6210 0032 9BB2 uxth r3, r3 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6211 .loc 1 3704 8 view .LVU2104 6212 0034 03B1 cbz r3, .L422 6213 .LVL393: 6214 .L419: 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6215 .loc 1 3709 1 view .LVU2105 6216 0036 08BD pop {r3, pc} 6217 .LVL394: 6218 .L422: 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6219 .loc 1 3706 7 is_stmt 1 view .LVU2106 6220 0038 FFF7FEFF bl SPI_CloseRxTx_ISR 6221 .LVL395: 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6222 .loc 1 3709 1 is_stmt 0 view .LVU2107 6223 003c FBE7 b .L419 6224 .cfi_endproc 6225 .LFE171: 6227 .section .text.SPI_DMAError,"ax",%progbits 6228 .align 1 6229 .syntax unified 6230 .thumb 6231 .thumb_func 6233 SPI_DMAError: 6234 .LVL396: 6235 .LFB165: 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6236 .loc 1 3377 1 is_stmt 1 view -0 6237 .cfi_startproc 6238 @ args = 0, pretend = 0, frame = 0 6239 @ frame_needed = 0, uses_anonymous_args = 0 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6240 .loc 1 3377 1 is_stmt 0 view .LVU2109 ARM GAS /tmp/ccZ0BHQJ.s page 221 6241 0000 08B5 push {r3, lr} 6242 .cfi_def_cfa_offset 8 6243 .cfi_offset 3, -8 6244 .cfi_offset 14, -4 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6245 .loc 1 3378 3 is_stmt 1 view .LVU2110 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6246 .loc 1 3378 22 is_stmt 0 view .LVU2111 6247 0002 406A ldr r0, [r0, #36] 6248 .LVL397: 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6249 .loc 1 3381 3 is_stmt 1 view .LVU2112 6250 0004 0268 ldr r2, [r0] 6251 0006 5368 ldr r3, [r2, #4] 6252 0008 23F00303 bic r3, r3, #3 6253 000c 5360 str r3, [r2, #4] 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6254 .loc 1 3383 3 view .LVU2113 6255 000e 036E ldr r3, [r0, #96] 6256 0010 43F01003 orr r3, r3, #16 6257 0014 0366 str r3, [r0, #96] 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6258 .loc 1 3384 3 view .LVU2114 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6259 .loc 1 3384 15 is_stmt 0 view .LVU2115 6260 0016 0123 movs r3, #1 6261 0018 80F85D30 strb r3, [r0, #93] 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6262 .loc 1 3389 3 is_stmt 1 view .LVU2116 6263 001c FFF7FEFF bl HAL_SPI_ErrorCallback 6264 .LVL398: 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6265 .loc 1 3391 1 is_stmt 0 view .LVU2117 6266 0020 08BD pop {r3, pc} 6267 .cfi_endproc 6268 .LFE165: 6270 .section .text.SPI_DMATransmitCplt,"ax",%progbits 6271 .align 1 6272 .syntax unified 6273 .thumb 6274 .thumb_func 6276 SPI_DMATransmitCplt: 6277 .LVL399: 6278 .LFB159: 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6279 .loc 1 3049 1 is_stmt 1 view -0 6280 .cfi_startproc 6281 @ args = 0, pretend = 0, frame = 8 6282 @ frame_needed = 0, uses_anonymous_args = 0 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6283 .loc 1 3049 1 is_stmt 0 view .LVU2119 6284 0000 30B5 push {r4, r5, lr} 6285 .cfi_def_cfa_offset 12 6286 .cfi_offset 4, -12 6287 .cfi_offset 5, -8 6288 .cfi_offset 14, -4 6289 0002 83B0 sub sp, sp, #12 ARM GAS /tmp/ccZ0BHQJ.s page 222 6290 .cfi_def_cfa_offset 24 6291 0004 0546 mov r5, r0 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6292 .loc 1 3050 3 is_stmt 1 view .LVU2120 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6293 .loc 1 3050 22 is_stmt 0 view .LVU2121 6294 0006 446A ldr r4, [r0, #36] 6295 .LVL400: 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6296 .loc 1 3051 3 is_stmt 1 view .LVU2122 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6297 .loc 1 3054 3 view .LVU2123 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6298 .loc 1 3054 15 is_stmt 0 view .LVU2124 6299 0008 FFF7FEFF bl HAL_GetTick 6300 .LVL401: 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6301 .loc 1 3057 3 is_stmt 1 view .LVU2125 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6302 .loc 1 3057 12 is_stmt 0 view .LVU2126 6303 000c 2B68 ldr r3, [r5] 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6304 .loc 1 3057 22 view .LVU2127 6305 000e 1B68 ldr r3, [r3] 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6306 .loc 1 3057 6 view .LVU2128 6307 0010 13F0200F tst r3, #32 6308 0014 23D1 bne .L426 6309 0016 0246 mov r2, r0 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6310 .loc 1 3060 5 is_stmt 1 view .LVU2129 6311 0018 2168 ldr r1, [r4] 6312 001a 4B68 ldr r3, [r1, #4] 6313 001c 23F02003 bic r3, r3, #32 6314 0020 4B60 str r3, [r1, #4] 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6315 .loc 1 3063 5 view .LVU2130 6316 0022 2168 ldr r1, [r4] 6317 0024 4B68 ldr r3, [r1, #4] 6318 0026 23F00203 bic r3, r3, #2 6319 002a 4B60 str r3, [r1, #4] 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6320 .loc 1 3066 5 view .LVU2131 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6321 .loc 1 3066 9 is_stmt 0 view .LVU2132 6322 002c 6421 movs r1, #100 6323 002e 2046 mov r0, r4 6324 .LVL402: 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6325 .loc 1 3066 9 view .LVU2133 6326 0030 FFF7FEFF bl SPI_EndRxTxTransaction 6327 .LVL403: 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6328 .loc 1 3066 8 discriminator 1 view .LVU2134 6329 0034 18B1 cbz r0, .L427 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6330 .loc 1 3068 7 is_stmt 1 view .LVU2135 ARM GAS /tmp/ccZ0BHQJ.s page 223 6331 0036 236E ldr r3, [r4, #96] 6332 0038 43F02003 orr r3, r3, #32 6333 003c 2366 str r3, [r4, #96] 6334 .L427: 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6335 .loc 1 3072 5 view .LVU2136 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6336 .loc 1 3072 19 is_stmt 0 view .LVU2137 6337 003e A368 ldr r3, [r4, #8] 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6338 .loc 1 3072 8 view .LVU2138 6339 0040 33B9 cbnz r3, .L428 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6340 .loc 1 3074 7 is_stmt 1 view .LVU2139 6341 .LBB6: 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6342 .loc 1 3074 7 view .LVU2140 6343 0042 0193 str r3, [sp, #4] 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6344 .loc 1 3074 7 view .LVU2141 6345 0044 2368 ldr r3, [r4] 6346 0046 DA68 ldr r2, [r3, #12] 6347 0048 0192 str r2, [sp, #4] 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6348 .loc 1 3074 7 view .LVU2142 6349 004a 9B68 ldr r3, [r3, #8] 6350 004c 0193 str r3, [sp, #4] 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6351 .loc 1 3074 7 view .LVU2143 6352 004e 019B ldr r3, [sp, #4] 6353 .L428: 6354 .LBE6: 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6355 .loc 1 3074 7 discriminator 1 view .LVU2144 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6356 .loc 1 3077 5 view .LVU2145 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6357 .loc 1 3077 23 is_stmt 0 view .LVU2146 6358 0050 0023 movs r3, #0 6359 0052 E387 strh r3, [r4, #62] @ movhi 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6360 .loc 1 3078 5 is_stmt 1 view .LVU2147 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6361 .loc 1 3078 17 is_stmt 0 view .LVU2148 6362 0054 0123 movs r3, #1 6363 0056 84F85D30 strb r3, [r4, #93] 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6364 .loc 1 3080 5 is_stmt 1 view .LVU2149 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6365 .loc 1 3080 13 is_stmt 0 view .LVU2150 6366 005a 236E ldr r3, [r4, #96] 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6367 .loc 1 3080 8 view .LVU2151 6368 005c 23B9 cbnz r3, .L431 6369 .L426: 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6370 .loc 1 3095 3 is_stmt 1 view .LVU2152 ARM GAS /tmp/ccZ0BHQJ.s page 224 6371 005e 2046 mov r0, r4 6372 0060 FFF7FEFF bl HAL_SPI_TxCpltCallback 6373 .LVL404: 6374 .L425: 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6375 .loc 1 3097 1 is_stmt 0 view .LVU2153 6376 0064 03B0 add sp, sp, #12 6377 .cfi_remember_state 6378 .cfi_def_cfa_offset 12 6379 @ sp needed 6380 0066 30BD pop {r4, r5, pc} 6381 .LVL405: 6382 .L431: 6383 .cfi_restore_state 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6384 .loc 1 3086 7 is_stmt 1 view .LVU2154 6385 0068 2046 mov r0, r4 6386 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6387 .LVL406: 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6388 .loc 1 3088 7 view .LVU2155 6389 006e F9E7 b .L425 6390 .cfi_endproc 6391 .LFE159: 6393 .section .text.SPI_DMAReceiveCplt,"ax",%progbits 6394 .align 1 6395 .syntax unified 6396 .thumb 6397 .thumb_func 6399 SPI_DMAReceiveCplt: 6400 .LVL407: 6401 .LFB160: 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6402 .loc 1 3106 1 view -0 6403 .cfi_startproc 6404 @ args = 0, pretend = 0, frame = 0 6405 @ frame_needed = 0, uses_anonymous_args = 0 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6406 .loc 1 3106 1 is_stmt 0 view .LVU2157 6407 0000 38B5 push {r3, r4, r5, lr} 6408 .cfi_def_cfa_offset 16 6409 .cfi_offset 3, -16 6410 .cfi_offset 4, -12 6411 .cfi_offset 5, -8 6412 .cfi_offset 14, -4 6413 0002 0546 mov r5, r0 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6414 .loc 1 3107 3 is_stmt 1 view .LVU2158 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6415 .loc 1 3107 22 is_stmt 0 view .LVU2159 6416 0004 446A ldr r4, [r0, #36] 6417 .LVL408: 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 6418 .loc 1 3108 3 is_stmt 1 view .LVU2160 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6419 .loc 1 3116 3 view .LVU2161 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 225 6420 .loc 1 3116 15 is_stmt 0 view .LVU2162 6421 0006 FFF7FEFF bl HAL_GetTick 6422 .LVL409: 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6423 .loc 1 3119 3 is_stmt 1 view .LVU2163 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6424 .loc 1 3119 12 is_stmt 0 view .LVU2164 6425 000a 2B68 ldr r3, [r5] 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6426 .loc 1 3119 22 view .LVU2165 6427 000c 1B68 ldr r3, [r3] 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6428 .loc 1 3119 6 view .LVU2166 6429 000e 13F0200F tst r3, #32 6430 0012 1FD1 bne .L433 6431 0014 0246 mov r2, r0 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6432 .loc 1 3122 5 is_stmt 1 view .LVU2167 6433 0016 2168 ldr r1, [r4] 6434 0018 4B68 ldr r3, [r1, #4] 6435 001a 23F02003 bic r3, r3, #32 6436 001e 4B60 str r3, [r1, #4] 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6437 .loc 1 3168 5 view .LVU2168 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6438 .loc 1 3168 20 is_stmt 0 view .LVU2169 6439 0020 A368 ldr r3, [r4, #8] 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6440 .loc 1 3168 8 view .LVU2170 6441 0022 1BB9 cbnz r3, .L434 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6442 .loc 1 3168 70 discriminator 1 view .LVU2171 6443 0024 6368 ldr r3, [r4, #4] 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6444 .loc 1 3168 56 discriminator 1 view .LVU2172 6445 0026 B3F5827F cmp r3, #260 6446 002a 17D0 beq .L439 6447 .L434: 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6448 .loc 1 3176 7 is_stmt 1 view .LVU2173 6449 002c 2168 ldr r1, [r4] 6450 002e 4B68 ldr r3, [r1, #4] 6451 0030 23F00103 bic r3, r3, #1 6452 0034 4B60 str r3, [r1, #4] 6453 .L435: 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6454 .loc 1 3180 5 view .LVU2174 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6455 .loc 1 3180 9 is_stmt 0 view .LVU2175 6456 0036 6421 movs r1, #100 6457 0038 2046 mov r0, r4 6458 .LVL410: 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6459 .loc 1 3180 9 view .LVU2176 6460 003a FFF7FEFF bl SPI_EndRxTransaction 6461 .LVL411: 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 226 6462 .loc 1 3180 8 discriminator 1 view .LVU2177 6463 003e 08B1 cbz r0, .L436 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6464 .loc 1 3182 7 is_stmt 1 view .LVU2178 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6465 .loc 1 3182 23 is_stmt 0 view .LVU2179 6466 0040 2023 movs r3, #32 6467 0042 2366 str r3, [r4, #96] 6468 .L436: 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6469 .loc 1 3185 5 is_stmt 1 view .LVU2180 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6470 .loc 1 3185 23 is_stmt 0 view .LVU2181 6471 0044 0023 movs r3, #0 6472 0046 A4F84630 strh r3, [r4, #70] @ movhi 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6473 .loc 1 3186 5 is_stmt 1 view .LVU2182 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6474 .loc 1 3186 17 is_stmt 0 view .LVU2183 6475 004a 0123 movs r3, #1 6476 004c 84F85D30 strb r3, [r4, #93] 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6477 .loc 1 3197 5 is_stmt 1 view .LVU2184 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6478 .loc 1 3197 13 is_stmt 0 view .LVU2185 6479 0050 236E ldr r3, [r4, #96] 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6480 .loc 1 3197 8 view .LVU2186 6481 0052 4BB9 cbnz r3, .L440 6482 .L433: 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6483 .loc 1 3212 3 is_stmt 1 view .LVU2187 6484 0054 2046 mov r0, r4 6485 0056 FFF7FEFF bl HAL_SPI_RxCpltCallback 6486 .LVL412: 6487 .L432: 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6488 .loc 1 3214 1 is_stmt 0 view .LVU2188 6489 005a 38BD pop {r3, r4, r5, pc} 6490 .LVL413: 6491 .L439: 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6492 .loc 1 3171 7 is_stmt 1 view .LVU2189 6493 005c 2168 ldr r1, [r4] 6494 005e 4B68 ldr r3, [r1, #4] 6495 0060 23F00303 bic r3, r3, #3 6496 0064 4B60 str r3, [r1, #4] 6497 0066 E6E7 b .L435 6498 .LVL414: 6499 .L440: 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6500 .loc 1 3203 7 view .LVU2190 6501 0068 2046 mov r0, r4 6502 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6503 .LVL415: 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6504 .loc 1 3205 7 view .LVU2191 ARM GAS /tmp/ccZ0BHQJ.s page 227 6505 006e F4E7 b .L432 6506 .cfi_endproc 6507 .LFE160: 6509 .section .text.SPI_DMATransmitReceiveCplt,"ax",%progbits 6510 .align 1 6511 .syntax unified 6512 .thumb 6513 .thumb_func 6515 SPI_DMATransmitReceiveCplt: 6516 .LVL416: 6517 .LFB161: 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6518 .loc 1 3223 1 view -0 6519 .cfi_startproc 6520 @ args = 0, pretend = 0, frame = 0 6521 @ frame_needed = 0, uses_anonymous_args = 0 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6522 .loc 1 3223 1 is_stmt 0 view .LVU2193 6523 0000 38B5 push {r3, r4, r5, lr} 6524 .cfi_def_cfa_offset 16 6525 .cfi_offset 3, -16 6526 .cfi_offset 4, -12 6527 .cfi_offset 5, -8 6528 .cfi_offset 14, -4 6529 0002 0546 mov r5, r0 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6530 .loc 1 3224 3 is_stmt 1 view .LVU2194 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6531 .loc 1 3224 22 is_stmt 0 view .LVU2195 6532 0004 446A ldr r4, [r0, #36] 6533 .LVL417: 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 6534 .loc 1 3225 3 is_stmt 1 view .LVU2196 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6535 .loc 1 3233 3 view .LVU2197 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6536 .loc 1 3233 15 is_stmt 0 view .LVU2198 6537 0006 FFF7FEFF bl HAL_GetTick 6538 .LVL418: 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6539 .loc 1 3236 3 is_stmt 1 view .LVU2199 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6540 .loc 1 3236 12 is_stmt 0 view .LVU2200 6541 000a 2B68 ldr r3, [r5] 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6542 .loc 1 3236 22 view .LVU2201 6543 000c 1B68 ldr r3, [r3] 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6544 .loc 1 3236 6 view .LVU2202 6545 000e 13F0200F tst r3, #32 6546 0012 1CD1 bne .L442 6547 0014 0246 mov r2, r0 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6548 .loc 1 3239 5 is_stmt 1 view .LVU2203 6549 0016 2168 ldr r1, [r4] 6550 0018 4B68 ldr r3, [r1, #4] 6551 001a 23F02003 bic r3, r3, #32 ARM GAS /tmp/ccZ0BHQJ.s page 228 6552 001e 4B60 str r3, [r1, #4] 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6553 .loc 1 3276 5 view .LVU2204 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6554 .loc 1 3276 9 is_stmt 0 view .LVU2205 6555 0020 6421 movs r1, #100 6556 0022 2046 mov r0, r4 6557 .LVL419: 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6558 .loc 1 3276 9 view .LVU2206 6559 0024 FFF7FEFF bl SPI_EndRxTxTransaction 6560 .LVL420: 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6561 .loc 1 3276 8 discriminator 1 view .LVU2207 6562 0028 18B1 cbz r0, .L443 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6563 .loc 1 3278 7 is_stmt 1 view .LVU2208 6564 002a 236E ldr r3, [r4, #96] 6565 002c 43F02003 orr r3, r3, #32 6566 0030 2366 str r3, [r4, #96] 6567 .L443: 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6568 .loc 1 3282 5 view .LVU2209 6569 0032 2268 ldr r2, [r4] 6570 0034 5368 ldr r3, [r2, #4] 6571 0036 23F00303 bic r3, r3, #3 6572 003a 5360 str r3, [r2, #4] 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6573 .loc 1 3284 5 view .LVU2210 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6574 .loc 1 3284 23 is_stmt 0 view .LVU2211 6575 003c 0023 movs r3, #0 6576 003e E387 strh r3, [r4, #62] @ movhi 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6577 .loc 1 3285 5 is_stmt 1 view .LVU2212 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6578 .loc 1 3285 23 is_stmt 0 view .LVU2213 6579 0040 A4F84630 strh r3, [r4, #70] @ movhi 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6580 .loc 1 3286 5 is_stmt 1 view .LVU2214 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6581 .loc 1 3286 17 is_stmt 0 view .LVU2215 6582 0044 0123 movs r3, #1 6583 0046 84F85D30 strb r3, [r4, #93] 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6584 .loc 1 3297 5 is_stmt 1 view .LVU2216 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6585 .loc 1 3297 13 is_stmt 0 view .LVU2217 6586 004a 236E ldr r3, [r4, #96] 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6587 .loc 1 3297 8 view .LVU2218 6588 004c 1BB9 cbnz r3, .L446 6589 .L442: 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6590 .loc 1 3312 3 is_stmt 1 view .LVU2219 6591 004e 2046 mov r0, r4 6592 0050 FFF7FEFF bl HAL_SPI_TxRxCpltCallback ARM GAS /tmp/ccZ0BHQJ.s page 229 6593 .LVL421: 6594 .L441: 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6595 .loc 1 3314 1 is_stmt 0 view .LVU2220 6596 0054 38BD pop {r3, r4, r5, pc} 6597 .LVL422: 6598 .L446: 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6599 .loc 1 3303 7 is_stmt 1 view .LVU2221 6600 0056 2046 mov r0, r4 6601 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 6602 .LVL423: 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6603 .loc 1 3305 7 view .LVU2222 6604 005c FAE7 b .L441 6605 .cfi_endproc 6606 .LFE161: 6608 .section .text.HAL_SPI_IRQHandler,"ax",%progbits 6609 .align 1 6610 .global HAL_SPI_IRQHandler 6611 .syntax unified 6612 .thumb 6613 .thumb_func 6615 HAL_SPI_IRQHandler: 6616 .LVL424: 6617 .LFB148: 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 6618 .loc 1 2756 1 view -0 6619 .cfi_startproc 6620 @ args = 0, pretend = 0, frame = 16 6621 @ frame_needed = 0, uses_anonymous_args = 0 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 6622 .loc 1 2756 1 is_stmt 0 view .LVU2224 6623 0000 30B5 push {r4, r5, lr} 6624 .cfi_def_cfa_offset 12 6625 .cfi_offset 4, -12 6626 .cfi_offset 5, -8 6627 .cfi_offset 14, -4 6628 0002 85B0 sub sp, sp, #20 6629 .cfi_def_cfa_offset 32 6630 0004 0446 mov r4, r0 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6631 .loc 1 2757 3 is_stmt 1 view .LVU2225 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6632 .loc 1 2757 27 is_stmt 0 view .LVU2226 6633 0006 0268 ldr r2, [r0] 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6634 .loc 1 2757 12 view .LVU2227 6635 0008 5168 ldr r1, [r2, #4] 6636 .LVL425: 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6637 .loc 1 2758 3 is_stmt 1 view .LVU2228 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6638 .loc 1 2758 12 is_stmt 0 view .LVU2229 6639 000a 9368 ldr r3, [r2, #8] 6640 .LVL426: 2761: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 ARM GAS /tmp/ccZ0BHQJ.s page 230 6641 .loc 1 2761 3 is_stmt 1 view .LVU2230 6642 000c C3F38010 ubfx r0, r3, #6, #1 6643 .LVL427: 2761: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 6644 .loc 1 2761 6 is_stmt 0 view .LVU2231 6645 0010 13F0400F tst r3, #64 6646 0014 05D1 bne .L448 2761: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 6647 .loc 1 2761 55 discriminator 1 view .LVU2232 6648 0016 13F0010F tst r3, #1 6649 001a 02D0 beq .L448 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6650 .loc 1 2762 56 view .LVU2233 6651 001c 11F0400F tst r1, #64 6652 0020 69D1 bne .L460 6653 .L448: 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6654 .loc 1 2769 3 is_stmt 1 view .LVU2234 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6655 .loc 1 2769 6 is_stmt 0 view .LVU2235 6656 0022 13F0020F tst r3, #2 6657 0026 02D0 beq .L450 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6658 .loc 1 2769 55 discriminator 1 view .LVU2236 6659 0028 11F0800F tst r1, #128 6660 002c 67D1 bne .L461 6661 .L450: 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6662 .loc 1 2776 3 is_stmt 1 view .LVU2237 6663 002e C3F34015 ubfx r5, r3, #5, #1 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6664 .loc 1 2776 6 is_stmt 0 view .LVU2238 6665 0032 13F0200F tst r3, #32 6666 0036 03D1 bne .L451 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6667 .loc 1 2776 57 discriminator 1 view .LVU2239 6668 0038 10B9 cbnz r0, .L451 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6669 .loc 1 2777 8 view .LVU2240 6670 003a 13F4807F tst r3, #256 6671 003e 61D0 beq .L447 6672 .L451: 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6673 .loc 1 2777 60 discriminator 1 view .LVU2241 6674 0040 11F0200F tst r1, #32 6675 0044 5ED0 beq .L447 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6676 .loc 1 2780 5 is_stmt 1 view .LVU2242 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6677 .loc 1 2780 8 is_stmt 0 view .LVU2243 6678 0046 78B1 cbz r0, .L452 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6679 .loc 1 2782 7 is_stmt 1 view .LVU2244 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6680 .loc 1 2782 15 is_stmt 0 view .LVU2245 6681 0048 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 6682 004c C0B2 uxtb r0, r0 ARM GAS /tmp/ccZ0BHQJ.s page 231 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6683 .loc 1 2782 10 view .LVU2246 6684 004e 0328 cmp r0, #3 6685 0050 5AD0 beq .L453 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 6686 .loc 1 2784 9 is_stmt 1 view .LVU2247 6687 0052 206E ldr r0, [r4, #96] 6688 0054 40F00400 orr r0, r0, #4 6689 0058 2066 str r0, [r4, #96] 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6690 .loc 1 2785 9 view .LVU2248 6691 .LBB7: 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6692 .loc 1 2785 9 view .LVU2249 6693 005a 0020 movs r0, #0 6694 005c 0090 str r0, [sp] 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6695 .loc 1 2785 9 view .LVU2250 6696 005e D068 ldr r0, [r2, #12] 6697 0060 0090 str r0, [sp] 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6698 .loc 1 2785 9 view .LVU2251 6699 0062 9068 ldr r0, [r2, #8] 6700 0064 0090 str r0, [sp] 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6701 .loc 1 2785 9 view .LVU2252 6702 0066 0098 ldr r0, [sp] 6703 .LBE7: 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6704 .loc 1 2785 9 view .LVU2253 6705 .L452: 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6706 .loc 1 2795 5 view .LVU2254 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6707 .loc 1 2795 8 is_stmt 0 view .LVU2255 6708 0068 65B1 cbz r5, .L454 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 6709 .loc 1 2797 7 is_stmt 1 view .LVU2256 6710 006a 206E ldr r0, [r4, #96] 6711 006c 40F00100 orr r0, r0, #1 6712 0070 2066 str r0, [r4, #96] 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6713 .loc 1 2798 7 view .LVU2257 6714 .LBB8: 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6715 .loc 1 2798 7 view .LVU2258 6716 0072 0020 movs r0, #0 6717 0074 0290 str r0, [sp, #8] 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6718 .loc 1 2798 7 view .LVU2259 6719 0076 9068 ldr r0, [r2, #8] 6720 0078 0290 str r0, [sp, #8] 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6721 .loc 1 2798 7 view .LVU2260 6722 007a 1068 ldr r0, [r2] 6723 007c 20F04000 bic r0, r0, #64 6724 0080 1060 str r0, [r2] ARM GAS /tmp/ccZ0BHQJ.s page 232 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6725 .loc 1 2798 7 view .LVU2261 6726 0082 029A ldr r2, [sp, #8] 6727 .L454: 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6728 .loc 1 2798 7 is_stmt 0 view .LVU2262 6729 .LBE8: 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6730 .loc 1 2798 7 is_stmt 1 discriminator 1 view .LVU2263 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6731 .loc 1 2802 5 view .LVU2264 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6732 .loc 1 2802 8 is_stmt 0 view .LVU2265 6733 0084 13F4807F tst r3, #256 6734 0088 09D0 beq .L455 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6735 .loc 1 2804 7 is_stmt 1 view .LVU2266 6736 008a 236E ldr r3, [r4, #96] 6737 .LVL428: 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6738 .loc 1 2804 7 is_stmt 0 view .LVU2267 6739 008c 43F00803 orr r3, r3, #8 6740 0090 2366 str r3, [r4, #96] 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6741 .loc 1 2805 7 is_stmt 1 view .LVU2268 6742 .LBB9: 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6743 .loc 1 2805 7 view .LVU2269 6744 0092 0023 movs r3, #0 6745 0094 0393 str r3, [sp, #12] 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6746 .loc 1 2805 7 view .LVU2270 6747 0096 2368 ldr r3, [r4] 6748 0098 9B68 ldr r3, [r3, #8] 6749 009a 0393 str r3, [sp, #12] 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6750 .loc 1 2805 7 view .LVU2271 6751 009c 039B ldr r3, [sp, #12] 6752 .L455: 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6753 .loc 1 2805 7 is_stmt 0 view .LVU2272 6754 .LBE9: 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6755 .loc 1 2805 7 is_stmt 1 discriminator 1 view .LVU2273 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6756 .loc 1 2808 5 view .LVU2274 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6757 .loc 1 2808 13 is_stmt 0 view .LVU2275 6758 009e 236E ldr r3, [r4, #96] 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6759 .loc 1 2808 8 view .LVU2276 6760 00a0 002B cmp r3, #0 6761 00a2 2FD0 beq .L447 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6762 .loc 1 2811 7 is_stmt 1 view .LVU2277 6763 00a4 2268 ldr r2, [r4] 6764 00a6 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccZ0BHQJ.s page 233 6765 00a8 23F0E003 bic r3, r3, #224 6766 00ac 5360 str r3, [r2, #4] 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6767 .loc 1 2813 7 view .LVU2278 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6768 .loc 1 2813 19 is_stmt 0 view .LVU2279 6769 00ae 0123 movs r3, #1 6770 00b0 84F85D30 strb r3, [r4, #93] 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6771 .loc 1 2815 7 is_stmt 1 view .LVU2280 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6772 .loc 1 2815 10 is_stmt 0 view .LVU2281 6773 00b4 11F0030F tst r1, #3 6774 00b8 2ED0 beq .L457 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6775 .loc 1 2817 9 is_stmt 1 view .LVU2282 6776 00ba 2268 ldr r2, [r4] 6777 00bc 5368 ldr r3, [r2, #4] 6778 00be 23F00303 bic r3, r3, #3 6779 00c2 5360 str r3, [r2, #4] 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6780 .loc 1 2820 9 view .LVU2283 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6781 .loc 1 2820 17 is_stmt 0 view .LVU2284 6782 00c4 A36D ldr r3, [r4, #88] 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6783 .loc 1 2820 12 view .LVU2285 6784 00c6 4BB1 cbz r3, .L458 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6785 .loc 1 2824 11 is_stmt 1 view .LVU2286 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6786 .loc 1 2824 43 is_stmt 0 view .LVU2287 6787 00c8 154A ldr r2, .L462 6788 00ca 5A63 str r2, [r3, #52] 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6789 .loc 1 2825 11 is_stmt 1 view .LVU2288 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6790 .loc 1 2825 25 is_stmt 0 view .LVU2289 6791 00cc A06D ldr r0, [r4, #88] 6792 00ce FFF7FEFF bl HAL_DMA_Abort_IT 6793 .LVL429: 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6794 .loc 1 2825 14 discriminator 1 view .LVU2290 6795 00d2 18B1 cbz r0, .L458 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6796 .loc 1 2827 13 is_stmt 1 view .LVU2291 6797 00d4 236E ldr r3, [r4, #96] 6798 00d6 43F04003 orr r3, r3, #64 6799 00da 2366 str r3, [r4, #96] 6800 .L458: 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6801 .loc 1 2831 9 view .LVU2292 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6802 .loc 1 2831 17 is_stmt 0 view .LVU2293 6803 00dc 636D ldr r3, [r4, #84] 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6804 .loc 1 2831 12 view .LVU2294 ARM GAS /tmp/ccZ0BHQJ.s page 234 6805 00de 8BB1 cbz r3, .L447 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6806 .loc 1 2835 11 is_stmt 1 view .LVU2295 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6807 .loc 1 2835 43 is_stmt 0 view .LVU2296 6808 00e0 0F4A ldr r2, .L462 6809 00e2 5A63 str r2, [r3, #52] 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6810 .loc 1 2836 11 is_stmt 1 view .LVU2297 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6811 .loc 1 2836 25 is_stmt 0 view .LVU2298 6812 00e4 606D ldr r0, [r4, #84] 6813 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 6814 .LVL430: 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6815 .loc 1 2836 14 discriminator 1 view .LVU2299 6816 00ea 58B1 cbz r0, .L447 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6817 .loc 1 2838 13 is_stmt 1 view .LVU2300 6818 00ec 236E ldr r3, [r4, #96] 6819 00ee 43F04003 orr r3, r3, #64 6820 00f2 2366 str r3, [r4, #96] 6821 00f4 06E0 b .L447 6822 .LVL431: 6823 .L460: 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6824 .loc 1 2764 5 view .LVU2301 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6825 .loc 1 2764 9 is_stmt 0 view .LVU2302 6826 00f6 E36C ldr r3, [r4, #76] 6827 .LVL432: 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6828 .loc 1 2764 5 view .LVU2303 6829 00f8 2046 mov r0, r4 6830 00fa 9847 blx r3 6831 .LVL433: 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6832 .loc 1 2765 5 is_stmt 1 view .LVU2304 6833 00fc 02E0 b .L447 6834 .LVL434: 6835 .L461: 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6836 .loc 1 2771 5 view .LVU2305 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6837 .loc 1 2771 9 is_stmt 0 view .LVU2306 6838 00fe 236D ldr r3, [r4, #80] 6839 .LVL435: 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6840 .loc 1 2771 5 view .LVU2307 6841 0100 2046 mov r0, r4 6842 0102 9847 blx r3 6843 .LVL436: 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6844 .loc 1 2772 5 is_stmt 1 view .LVU2308 6845 .L447: 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6846 .loc 1 2854 1 is_stmt 0 view .LVU2309 ARM GAS /tmp/ccZ0BHQJ.s page 235 6847 0104 05B0 add sp, sp, #20 6848 .cfi_remember_state 6849 .cfi_def_cfa_offset 12 6850 @ sp needed 6851 0106 30BD pop {r4, r5, pc} 6852 .LVL437: 6853 .L453: 6854 .cfi_restore_state 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6855 .loc 1 2789 9 is_stmt 1 view .LVU2310 6856 .LBB10: 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6857 .loc 1 2789 9 view .LVU2311 6858 0108 0023 movs r3, #0 6859 .LVL438: 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6860 .loc 1 2789 9 is_stmt 0 view .LVU2312 6861 010a 0193 str r3, [sp, #4] 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6862 .loc 1 2789 9 is_stmt 1 view .LVU2313 6863 010c D368 ldr r3, [r2, #12] 6864 010e 0193 str r3, [sp, #4] 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6865 .loc 1 2789 9 view .LVU2314 6866 0110 9368 ldr r3, [r2, #8] 6867 0112 0193 str r3, [sp, #4] 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6868 .loc 1 2789 9 view .LVU2315 6869 0114 019B ldr r3, [sp, #4] 6870 .LBE10: 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6871 .loc 1 2789 9 view .LVU2316 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6872 .loc 1 2790 9 view .LVU2317 6873 0116 F5E7 b .L447 6874 .L457: 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6875 .loc 1 2848 9 view .LVU2318 6876 0118 2046 mov r0, r4 6877 011a FFF7FEFF bl HAL_SPI_ErrorCallback 6878 .LVL439: 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6879 .loc 1 2852 5 view .LVU2319 6880 011e F1E7 b .L447 6881 .L463: 6882 .align 2 6883 .L462: 6884 0120 00000000 .word SPI_DMAAbortOnError 6885 .cfi_endproc 6886 .LFE148: 6888 .section .text.SPI_DMAAbortOnError,"ax",%progbits 6889 .align 1 6890 .syntax unified 6891 .thumb 6892 .thumb_func 6894 SPI_DMAAbortOnError: 6895 .LVL440: ARM GAS /tmp/ccZ0BHQJ.s page 236 6896 .LFB166: 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6897 .loc 1 3400 1 view -0 6898 .cfi_startproc 6899 @ args = 0, pretend = 0, frame = 0 6900 @ frame_needed = 0, uses_anonymous_args = 0 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6901 .loc 1 3400 1 is_stmt 0 view .LVU2321 6902 0000 08B5 push {r3, lr} 6903 .cfi_def_cfa_offset 8 6904 .cfi_offset 3, -8 6905 .cfi_offset 14, -4 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6906 .loc 1 3401 3 is_stmt 1 view .LVU2322 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6907 .loc 1 3401 22 is_stmt 0 view .LVU2323 6908 0002 406A ldr r0, [r0, #36] 6909 .LVL441: 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6910 .loc 1 3402 3 is_stmt 1 view .LVU2324 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6911 .loc 1 3402 21 is_stmt 0 view .LVU2325 6912 0004 0023 movs r3, #0 6913 0006 A0F84630 strh r3, [r0, #70] @ movhi 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6914 .loc 1 3403 3 is_stmt 1 view .LVU2326 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6915 .loc 1 3403 21 is_stmt 0 view .LVU2327 6916 000a C387 strh r3, [r0, #62] @ movhi 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6917 .loc 1 3409 3 is_stmt 1 view .LVU2328 6918 000c FFF7FEFF bl HAL_SPI_ErrorCallback 6919 .LVL442: 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6920 .loc 1 3411 1 is_stmt 0 view .LVU2329 6921 0010 08BD pop {r3, pc} 6922 .cfi_endproc 6923 .LFE166: 6925 .section .text.HAL_SPI_AbortCpltCallback,"ax",%progbits 6926 .align 1 6927 .weak HAL_SPI_AbortCpltCallback 6928 .syntax unified 6929 .thumb 6930 .thumb_func 6932 HAL_SPI_AbortCpltCallback: 6933 .LVL443: 6934 .LFB156: 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 6935 .loc 1 2977 1 is_stmt 1 view -0 6936 .cfi_startproc 6937 @ args = 0, pretend = 0, frame = 0 6938 @ frame_needed = 0, uses_anonymous_args = 0 6939 @ link register save eliminated. 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6940 .loc 1 2979 3 view .LVU2331 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6941 .loc 1 2984 1 is_stmt 0 view .LVU2332 ARM GAS /tmp/ccZ0BHQJ.s page 237 6942 0000 7047 bx lr 6943 .cfi_endproc 6944 .LFE156: 6946 .section .text.HAL_SPI_Abort_IT,"ax",%progbits 6947 .align 1 6948 .global HAL_SPI_Abort_IT 6949 .syntax unified 6950 .thumb 6951 .thumb_func 6953 HAL_SPI_Abort_IT: 6954 .LVL444: 6955 .LFB144: 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6956 .loc 1 2515 1 is_stmt 1 view -0 6957 .cfi_startproc 6958 @ args = 0, pretend = 0, frame = 16 6959 @ frame_needed = 0, uses_anonymous_args = 0 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6960 .loc 1 2515 1 is_stmt 0 view .LVU2334 6961 0000 70B5 push {r4, r5, r6, lr} 6962 .cfi_def_cfa_offset 16 6963 .cfi_offset 4, -16 6964 .cfi_offset 5, -12 6965 .cfi_offset 6, -8 6966 .cfi_offset 14, -4 6967 0002 84B0 sub sp, sp, #16 6968 .cfi_def_cfa_offset 32 6969 0004 0446 mov r4, r0 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 6970 .loc 1 2516 3 is_stmt 1 view .LVU2335 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 6971 .loc 1 2517 3 view .LVU2336 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 6972 .loc 1 2518 3 view .LVU2337 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6973 .loc 1 2519 3 view .LVU2338 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 6974 .loc 1 2522 3 view .LVU2339 6975 .LVL445: 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 6976 .loc 1 2523 3 view .LVU2340 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6977 .loc 1 2524 3 view .LVU2341 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6978 .loc 1 2524 61 is_stmt 0 view .LVU2342 6979 0006 504B ldr r3, .L493 6980 0008 1B68 ldr r3, [r3] 6981 000a 504A ldr r2, .L493+4 6982 000c A2FB0323 umull r2, r3, r2, r3 6983 0010 5B0A lsrs r3, r3, #9 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6984 .loc 1 2524 36 view .LVU2343 6985 0012 6422 movs r2, #100 6986 0014 02FB03F3 mul r3, r2, r3 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6987 .loc 1 2524 14 view .LVU2344 6988 0018 0293 str r3, [sp, #8] ARM GAS /tmp/ccZ0BHQJ.s page 238 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6989 .loc 1 2525 3 is_stmt 1 view .LVU2345 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6990 .loc 1 2525 9 is_stmt 0 view .LVU2346 6991 001a 029B ldr r3, [sp, #8] 6992 001c 0393 str r3, [sp, #12] 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6993 .loc 1 2528 3 is_stmt 1 view .LVU2347 6994 001e 0268 ldr r2, [r0] 6995 0020 5368 ldr r3, [r2, #4] 6996 0022 23F02003 bic r3, r3, #32 6997 0026 5360 str r3, [r2, #4] 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6998 .loc 1 2531 3 view .LVU2348 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6999 .loc 1 2531 7 is_stmt 0 view .LVU2349 7000 0028 0268 ldr r2, [r0] 7001 002a 5368 ldr r3, [r2, #4] 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7002 .loc 1 2531 6 view .LVU2350 7003 002c 13F0800F tst r3, #128 7004 0030 12D0 beq .L468 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7005 .loc 1 2533 5 is_stmt 1 view .LVU2351 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7006 .loc 1 2533 17 is_stmt 0 view .LVU2352 7007 0032 474B ldr r3, .L493+8 7008 0034 0365 str r3, [r0, #80] 7009 .L471: 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7010 .loc 1 2535 5 is_stmt 1 view .LVU2353 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7011 .loc 1 2537 7 view .LVU2354 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7012 .loc 1 2537 17 is_stmt 0 view .LVU2355 7013 0036 039B ldr r3, [sp, #12] 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7014 .loc 1 2537 10 view .LVU2356 7015 0038 43B1 cbz r3, .L490 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7016 .loc 1 2542 7 is_stmt 1 view .LVU2357 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7017 .loc 1 2542 12 is_stmt 0 view .LVU2358 7018 003a 039B ldr r3, [sp, #12] 7019 003c 013B subs r3, r3, #1 7020 003e 0393 str r3, [sp, #12] 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7021 .loc 1 2543 26 is_stmt 1 view .LVU2359 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7022 .loc 1 2543 18 is_stmt 0 view .LVU2360 7023 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 7024 0044 DBB2 uxtb r3, r3 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7025 .loc 1 2543 26 view .LVU2361 7026 0046 072B cmp r3, #7 7027 0048 F5D1 bne .L471 7028 004a 03E0 b .L470 ARM GAS /tmp/ccZ0BHQJ.s page 239 7029 .L490: 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 7030 .loc 1 2539 9 is_stmt 1 view .LVU2362 7031 004c 236E ldr r3, [r4, #96] 7032 004e 43F04003 orr r3, r3, #64 7033 0052 2366 str r3, [r4, #96] 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7034 .loc 1 2540 9 view .LVU2363 7035 .L470: 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7036 .loc 1 2545 5 view .LVU2364 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7037 .loc 1 2545 11 is_stmt 0 view .LVU2365 7038 0054 029B ldr r3, [sp, #8] 7039 0056 0393 str r3, [sp, #12] 7040 .L468: 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7041 .loc 1 2548 3 is_stmt 1 view .LVU2366 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7042 .loc 1 2548 7 is_stmt 0 view .LVU2367 7043 0058 5368 ldr r3, [r2, #4] 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7044 .loc 1 2548 6 view .LVU2368 7045 005a 13F0400F tst r3, #64 7046 005e 12D0 beq .L472 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7047 .loc 1 2550 5 is_stmt 1 view .LVU2369 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7048 .loc 1 2550 17 is_stmt 0 view .LVU2370 7049 0060 3C4B ldr r3, .L493+12 7050 0062 E364 str r3, [r4, #76] 7051 .L475: 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7052 .loc 1 2552 5 is_stmt 1 view .LVU2371 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7053 .loc 1 2554 7 view .LVU2372 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7054 .loc 1 2554 17 is_stmt 0 view .LVU2373 7055 0064 039B ldr r3, [sp, #12] 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7056 .loc 1 2554 10 view .LVU2374 7057 0066 43B1 cbz r3, .L491 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7058 .loc 1 2559 7 is_stmt 1 view .LVU2375 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7059 .loc 1 2559 12 is_stmt 0 view .LVU2376 7060 0068 039B ldr r3, [sp, #12] 7061 006a 013B subs r3, r3, #1 7062 006c 0393 str r3, [sp, #12] 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7063 .loc 1 2560 26 is_stmt 1 view .LVU2377 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7064 .loc 1 2560 18 is_stmt 0 view .LVU2378 7065 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 7066 0072 DBB2 uxtb r3, r3 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7067 .loc 1 2560 26 view .LVU2379 ARM GAS /tmp/ccZ0BHQJ.s page 240 7068 0074 072B cmp r3, #7 7069 0076 F5D1 bne .L475 7070 0078 03E0 b .L474 7071 .L491: 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 7072 .loc 1 2556 9 is_stmt 1 view .LVU2380 7073 007a 236E ldr r3, [r4, #96] 7074 007c 43F04003 orr r3, r3, #64 7075 0080 2366 str r3, [r4, #96] 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7076 .loc 1 2557 9 view .LVU2381 7077 .L474: 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7078 .loc 1 2562 5 view .LVU2382 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7079 .loc 1 2562 11 is_stmt 0 view .LVU2383 7080 0082 029B ldr r3, [sp, #8] 7081 0084 0393 str r3, [sp, #12] 7082 .L472: 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7083 .loc 1 2568 3 is_stmt 1 view .LVU2384 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7084 .loc 1 2568 11 is_stmt 0 view .LVU2385 7085 0086 636D ldr r3, [r4, #84] 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7086 .loc 1 2568 6 view .LVU2386 7087 0088 2BB1 cbz r3, .L476 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7088 .loc 1 2572 5 is_stmt 1 view .LVU2387 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7089 .loc 1 2572 9 is_stmt 0 view .LVU2388 7090 008a 5268 ldr r2, [r2, #4] 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7091 .loc 1 2572 8 view .LVU2389 7092 008c 12F0020F tst r2, #2 7093 0090 1BD0 beq .L477 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7094 .loc 1 2574 7 is_stmt 1 view .LVU2390 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7095 .loc 1 2574 39 is_stmt 0 view .LVU2391 7096 0092 314A ldr r2, .L493+16 7097 0094 5A63 str r2, [r3, #52] 7098 .L476: 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7099 .loc 1 2582 3 is_stmt 1 view .LVU2392 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7100 .loc 1 2582 11 is_stmt 0 view .LVU2393 7101 0096 A36D ldr r3, [r4, #88] 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7102 .loc 1 2582 6 view .LVU2394 7103 0098 33B1 cbz r3, .L478 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7104 .loc 1 2586 5 is_stmt 1 view .LVU2395 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7105 .loc 1 2586 9 is_stmt 0 view .LVU2396 7106 009a 2268 ldr r2, [r4] 7107 009c 5268 ldr r2, [r2, #4] ARM GAS /tmp/ccZ0BHQJ.s page 241 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7108 .loc 1 2586 8 view .LVU2397 7109 009e 12F0010F tst r2, #1 7110 00a2 15D0 beq .L479 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7111 .loc 1 2588 7 is_stmt 1 view .LVU2398 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7112 .loc 1 2588 39 is_stmt 0 view .LVU2399 7113 00a4 2D4A ldr r2, .L493+20 7114 00a6 5A63 str r2, [r3, #52] 7115 .L478: 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7116 .loc 1 2597 3 is_stmt 1 view .LVU2400 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7117 .loc 1 2597 7 is_stmt 0 view .LVU2401 7118 00a8 2368 ldr r3, [r4] 7119 00aa 5B68 ldr r3, [r3, #4] 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7120 .loc 1 2597 6 view .LVU2402 7121 00ac 13F0020F tst r3, #2 7122 00b0 11D0 beq .L484 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7123 .loc 1 2600 5 is_stmt 1 view .LVU2403 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7124 .loc 1 2600 13 is_stmt 0 view .LVU2404 7125 00b2 606D ldr r0, [r4, #84] 7126 .LVL446: 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7127 .loc 1 2600 8 view .LVU2405 7128 00b4 28B3 cbz r0, .L485 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7129 .loc 1 2603 7 is_stmt 1 view .LVU2406 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7130 .loc 1 2603 11 is_stmt 0 view .LVU2407 7131 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 7132 .LVL447: 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7133 .loc 1 2603 10 discriminator 1 view .LVU2408 7134 00ba 20B3 cbz r0, .L486 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7135 .loc 1 2605 9 is_stmt 1 view .LVU2409 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7136 .loc 1 2605 13 is_stmt 0 view .LVU2410 7137 00bc 636D ldr r3, [r4, #84] 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7138 .loc 1 2605 41 view .LVU2411 7139 00be 0022 movs r2, #0 7140 00c0 5A63 str r2, [r3, #52] 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7141 .loc 1 2606 9 is_stmt 1 view .LVU2412 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7142 .loc 1 2606 25 is_stmt 0 view .LVU2413 7143 00c2 4023 movs r3, #64 7144 00c4 2366 str r3, [r4, #96] 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7145 .loc 1 2523 13 view .LVU2414 7146 00c6 0126 movs r6, #1 ARM GAS /tmp/ccZ0BHQJ.s page 242 7147 00c8 06E0 b .L480 7148 .LVL448: 7149 .L477: 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7150 .loc 1 2578 7 is_stmt 1 view .LVU2415 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7151 .loc 1 2578 39 is_stmt 0 view .LVU2416 7152 00ca 0022 movs r2, #0 7153 00cc 5A63 str r2, [r3, #52] 7154 00ce E2E7 b .L476 7155 .L479: 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7156 .loc 1 2592 7 is_stmt 1 view .LVU2417 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7157 .loc 1 2592 39 is_stmt 0 view .LVU2418 7158 00d0 0022 movs r2, #0 7159 00d2 5A63 str r2, [r3, #52] 7160 00d4 E8E7 b .L478 7161 .L484: 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7162 .loc 1 2523 13 view .LVU2419 7163 00d6 0126 movs r6, #1 7164 .LVL449: 7165 .L480: 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7166 .loc 1 2615 3 is_stmt 1 view .LVU2420 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7167 .loc 1 2615 7 is_stmt 0 view .LVU2421 7168 00d8 2368 ldr r3, [r4] 7169 00da 5B68 ldr r3, [r3, #4] 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7170 .loc 1 2615 6 view .LVU2422 7171 00dc 13F0010F tst r3, #1 7172 00e0 0AD0 beq .L481 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7173 .loc 1 2618 5 is_stmt 1 view .LVU2423 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7174 .loc 1 2618 13 is_stmt 0 view .LVU2424 7175 00e2 A06D ldr r0, [r4, #88] 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7176 .loc 1 2618 8 view .LVU2425 7177 00e4 40B1 cbz r0, .L481 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7178 .loc 1 2621 7 is_stmt 1 view .LVU2426 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7179 .loc 1 2621 11 is_stmt 0 view .LVU2427 7180 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 7181 .LVL450: 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7182 .loc 1 2621 10 discriminator 1 view .LVU2428 7183 00ea 0546 mov r5, r0 7184 00ec 30B1 cbz r0, .L482 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7185 .loc 1 2623 9 is_stmt 1 view .LVU2429 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7186 .loc 1 2623 13 is_stmt 0 view .LVU2430 7187 00ee A36D ldr r3, [r4, #88] ARM GAS /tmp/ccZ0BHQJ.s page 243 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7188 .loc 1 2623 41 view .LVU2431 7189 00f0 0022 movs r2, #0 7190 00f2 5A63 str r2, [r3, #52] 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7191 .loc 1 2624 9 is_stmt 1 view .LVU2432 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7192 .loc 1 2624 25 is_stmt 0 view .LVU2433 7193 00f4 4023 movs r3, #64 7194 00f6 2366 str r3, [r4, #96] 7195 .L481: 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7196 .loc 1 2633 3 is_stmt 1 view .LVU2434 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7197 .loc 1 2633 6 is_stmt 0 view .LVU2435 7198 00f8 3EB9 cbnz r6, .L492 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 7199 .loc 1 2522 13 view .LVU2436 7200 00fa 0025 movs r5, #0 7201 .LVL451: 7202 .L482: 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7203 .loc 1 2666 3 is_stmt 1 view .LVU2437 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7204 .loc 1 2667 1 is_stmt 0 view .LVU2438 7205 00fc 2846 mov r0, r5 7206 00fe 04B0 add sp, sp, #16 7207 .cfi_remember_state 7208 .cfi_def_cfa_offset 16 7209 @ sp needed 7210 0100 70BD pop {r4, r5, r6, pc} 7211 .LVL452: 7212 .L485: 7213 .cfi_restore_state 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7214 .loc 1 2523 13 view .LVU2439 7215 0102 0126 movs r6, #1 7216 0104 E8E7 b .L480 7217 .L486: 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7218 .loc 1 2610 19 view .LVU2440 7219 0106 0026 movs r6, #0 7220 0108 E6E7 b .L480 7221 .LVL453: 7222 .L492: 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7223 .loc 1 2636 5 is_stmt 1 view .LVU2441 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7224 .loc 1 2636 23 is_stmt 0 view .LVU2442 7225 010a 0023 movs r3, #0 7226 010c A4F84630 strh r3, [r4, #70] @ movhi 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7227 .loc 1 2637 5 is_stmt 1 view .LVU2443 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7228 .loc 1 2637 23 is_stmt 0 view .LVU2444 7229 0110 E387 strh r3, [r4, #62] @ movhi 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccZ0BHQJ.s page 244 7230 .loc 1 2640 5 is_stmt 1 view .LVU2445 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7231 .loc 1 2640 13 is_stmt 0 view .LVU2446 7232 0112 236E ldr r3, [r4, #96] 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7233 .loc 1 2640 8 view .LVU2447 7234 0114 402B cmp r3, #64 7235 0116 14D0 beq .L488 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7236 .loc 1 2648 7 is_stmt 1 view .LVU2448 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7237 .loc 1 2648 23 is_stmt 0 view .LVU2449 7238 0118 0025 movs r5, #0 7239 011a 2566 str r5, [r4, #96] 7240 .L483: 7241 .LVL454: 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7242 .loc 1 2652 5 is_stmt 1 view .LVU2450 7243 .LBB11: 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7244 .loc 1 2652 5 view .LVU2451 7245 011c 0022 movs r2, #0 7246 011e 0092 str r2, [sp] 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7247 .loc 1 2652 5 view .LVU2452 7248 0120 2368 ldr r3, [r4] 7249 0122 D968 ldr r1, [r3, #12] 7250 0124 0091 str r1, [sp] 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7251 .loc 1 2652 5 view .LVU2453 7252 0126 9968 ldr r1, [r3, #8] 7253 0128 0091 str r1, [sp] 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7254 .loc 1 2652 5 view .LVU2454 7255 012a 0099 ldr r1, [sp] 7256 .LBE11: 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7257 .loc 1 2652 5 view .LVU2455 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7258 .loc 1 2653 5 view .LVU2456 7259 .LBB12: 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7260 .loc 1 2653 5 view .LVU2457 7261 012c 0192 str r2, [sp, #4] 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7262 .loc 1 2653 5 view .LVU2458 7263 012e 9B68 ldr r3, [r3, #8] 7264 0130 0193 str r3, [sp, #4] 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7265 .loc 1 2653 5 view .LVU2459 7266 0132 019B ldr r3, [sp, #4] 7267 .LBE12: 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7268 .loc 1 2653 5 view .LVU2460 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7269 .loc 1 2656 5 view .LVU2461 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccZ0BHQJ.s page 245 7270 .loc 1 2656 17 is_stmt 0 view .LVU2462 7271 0134 0123 movs r3, #1 7272 0136 84F85D30 strb r3, [r4, #93] 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7273 .loc 1 2662 5 is_stmt 1 view .LVU2463 7274 013a 2046 mov r0, r4 7275 013c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7276 .LVL455: 7277 0140 DCE7 b .L482 7278 .LVL456: 7279 .L488: 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7280 .loc 1 2643 17 is_stmt 0 view .LVU2464 7281 0142 0125 movs r5, #1 7282 0144 EAE7 b .L483 7283 .L494: 7284 0146 00BF .align 2 7285 .L493: 7286 0148 00000000 .word SystemCoreClock 7287 014c F1197605 .word 91625969 7288 0150 00000000 .word SPI_AbortTx_ISR 7289 0154 00000000 .word SPI_AbortRx_ISR 7290 0158 00000000 .word SPI_DMATxAbortCallback 7291 015c 00000000 .word SPI_DMARxAbortCallback 7292 .cfi_endproc 7293 .LFE144: 7295 .section .text.SPI_DMARxAbortCallback,"ax",%progbits 7296 .align 1 7297 .syntax unified 7298 .thumb 7299 .thumb_func 7301 SPI_DMARxAbortCallback: 7302 .LVL457: 7303 .LFB168: 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7304 .loc 1 3488 1 is_stmt 1 view -0 7305 .cfi_startproc 7306 @ args = 0, pretend = 0, frame = 8 7307 @ frame_needed = 0, uses_anonymous_args = 0 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7308 .loc 1 3488 1 is_stmt 0 view .LVU2466 7309 0000 30B5 push {r4, r5, lr} 7310 .cfi_def_cfa_offset 12 7311 .cfi_offset 4, -12 7312 .cfi_offset 5, -8 7313 .cfi_offset 14, -4 7314 0002 85B0 sub sp, sp, #20 7315 .cfi_def_cfa_offset 32 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7316 .loc 1 3489 3 is_stmt 1 view .LVU2467 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7317 .loc 1 3489 22 is_stmt 0 view .LVU2468 7318 0004 446A ldr r4, [r0, #36] 7319 .LVL458: 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7320 .loc 1 3492 3 is_stmt 1 view .LVU2469 7321 0006 2268 ldr r2, [r4] ARM GAS /tmp/ccZ0BHQJ.s page 246 7322 0008 1368 ldr r3, [r2] 7323 000a 23F04003 bic r3, r3, #64 7324 000e 1360 str r3, [r2] 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7325 .loc 1 3494 3 view .LVU2470 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7326 .loc 1 3494 7 is_stmt 0 view .LVU2471 7327 0010 A36D ldr r3, [r4, #88] 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7328 .loc 1 3494 35 view .LVU2472 7329 0012 0025 movs r5, #0 7330 0014 5D63 str r5, [r3, #52] 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7331 .loc 1 3497 3 is_stmt 1 view .LVU2473 7332 0016 2268 ldr r2, [r4] 7333 0018 5368 ldr r3, [r2, #4] 7334 001a 23F00103 bic r3, r3, #1 7335 001e 5360 str r3, [r2, #4] 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7336 .loc 1 3500 3 view .LVU2474 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7337 .loc 1 3500 7 is_stmt 0 view .LVU2475 7338 0020 FFF7FEFF bl HAL_GetTick 7339 .LVL459: 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7340 .loc 1 3500 7 discriminator 1 view .LVU2476 7341 0024 0090 str r0, [sp] 7342 0026 6423 movs r3, #100 7343 0028 2A46 mov r2, r5 7344 002a 8021 movs r1, #128 7345 002c 2046 mov r0, r4 7346 002e FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 7347 .LVL460: 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7348 .loc 1 3500 6 discriminator 2 view .LVU2477 7349 0032 08B1 cbz r0, .L496 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7350 .loc 1 3502 5 is_stmt 1 view .LVU2478 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7351 .loc 1 3502 21 is_stmt 0 view .LVU2479 7352 0034 4023 movs r3, #64 7353 0036 2366 str r3, [r4, #96] 7354 .L496: 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7355 .loc 1 3506 3 is_stmt 1 view .LVU2480 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7356 .loc 1 3506 7 is_stmt 0 view .LVU2481 7357 0038 FFF7FEFF bl HAL_GetTick 7358 .LVL461: 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7359 .loc 1 3506 7 discriminator 1 view .LVU2482 7360 003c 0090 str r0, [sp] 7361 003e 6423 movs r3, #100 7362 0040 0022 movs r2, #0 7363 0042 4FF4C061 mov r1, #1536 7364 0046 2046 mov r0, r4 7365 0048 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout ARM GAS /tmp/ccZ0BHQJ.s page 247 7366 .LVL462: 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7367 .loc 1 3506 6 discriminator 2 view .LVU2483 7368 004c 08B1 cbz r0, .L497 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7369 .loc 1 3508 5 is_stmt 1 view .LVU2484 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7370 .loc 1 3508 21 is_stmt 0 view .LVU2485 7371 004e 4023 movs r3, #64 7372 0050 2366 str r3, [r4, #96] 7373 .L497: 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7374 .loc 1 3512 3 is_stmt 1 view .LVU2486 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7375 .loc 1 3512 11 is_stmt 0 view .LVU2487 7376 0052 636D ldr r3, [r4, #84] 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7377 .loc 1 3512 6 view .LVU2488 7378 0054 0BB1 cbz r3, .L498 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7379 .loc 1 3514 5 is_stmt 1 view .LVU2489 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7380 .loc 1 3514 21 is_stmt 0 view .LVU2490 7381 0056 5B6B ldr r3, [r3, #52] 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7382 .loc 1 3514 8 view .LVU2491 7383 0058 D3B9 cbnz r3, .L495 7384 .L498: 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7385 .loc 1 3521 3 is_stmt 1 view .LVU2492 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7386 .loc 1 3521 21 is_stmt 0 view .LVU2493 7387 005a 0023 movs r3, #0 7388 005c A4F84630 strh r3, [r4, #70] @ movhi 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7389 .loc 1 3522 3 is_stmt 1 view .LVU2494 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7390 .loc 1 3522 21 is_stmt 0 view .LVU2495 7391 0060 E387 strh r3, [r4, #62] @ movhi 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7392 .loc 1 3525 3 is_stmt 1 view .LVU2496 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7393 .loc 1 3525 11 is_stmt 0 view .LVU2497 7394 0062 236E ldr r3, [r4, #96] 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7395 .loc 1 3525 6 view .LVU2498 7396 0064 402B cmp r3, #64 7397 0066 01D0 beq .L500 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7398 .loc 1 3528 5 is_stmt 1 view .LVU2499 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7399 .loc 1 3528 21 is_stmt 0 view .LVU2500 7400 0068 0023 movs r3, #0 7401 006a 2366 str r3, [r4, #96] 7402 .L500: 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7403 .loc 1 3532 3 is_stmt 1 view .LVU2501 ARM GAS /tmp/ccZ0BHQJ.s page 248 7404 .LBB13: 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7405 .loc 1 3532 3 view .LVU2502 7406 006c 0022 movs r2, #0 7407 006e 0292 str r2, [sp, #8] 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7408 .loc 1 3532 3 view .LVU2503 7409 0070 2368 ldr r3, [r4] 7410 0072 D968 ldr r1, [r3, #12] 7411 0074 0291 str r1, [sp, #8] 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7412 .loc 1 3532 3 view .LVU2504 7413 0076 9968 ldr r1, [r3, #8] 7414 0078 0291 str r1, [sp, #8] 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7415 .loc 1 3532 3 view .LVU2505 7416 007a 0299 ldr r1, [sp, #8] 7417 .LBE13: 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7418 .loc 1 3532 3 view .LVU2506 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7419 .loc 1 3533 3 view .LVU2507 7420 .LBB14: 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7421 .loc 1 3533 3 view .LVU2508 7422 007c 0392 str r2, [sp, #12] 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7423 .loc 1 3533 3 view .LVU2509 7424 007e 9B68 ldr r3, [r3, #8] 7425 0080 0393 str r3, [sp, #12] 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7426 .loc 1 3533 3 view .LVU2510 7427 0082 039B ldr r3, [sp, #12] 7428 .LBE14: 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7429 .loc 1 3533 3 view .LVU2511 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7430 .loc 1 3536 3 view .LVU2512 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7431 .loc 1 3536 16 is_stmt 0 view .LVU2513 7432 0084 0123 movs r3, #1 7433 0086 84F85D30 strb r3, [r4, #93] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7434 .loc 1 3542 3 is_stmt 1 view .LVU2514 7435 008a 2046 mov r0, r4 7436 008c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7437 .LVL463: 7438 .L495: 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7439 .loc 1 3544 1 is_stmt 0 view .LVU2515 7440 0090 05B0 add sp, sp, #20 7441 .cfi_def_cfa_offset 12 7442 @ sp needed 7443 0092 30BD pop {r4, r5, pc} 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7444 .loc 1 3544 1 view .LVU2516 7445 .cfi_endproc ARM GAS /tmp/ccZ0BHQJ.s page 249 7446 .LFE168: 7448 .section .text.SPI_DMATxAbortCallback,"ax",%progbits 7449 .align 1 7450 .syntax unified 7451 .thumb 7452 .thumb_func 7454 SPI_DMATxAbortCallback: 7455 .LVL464: 7456 .LFB167: 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7457 .loc 1 3422 1 is_stmt 1 view -0 7458 .cfi_startproc 7459 @ args = 0, pretend = 0, frame = 8 7460 @ frame_needed = 0, uses_anonymous_args = 0 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7461 .loc 1 3422 1 is_stmt 0 view .LVU2518 7462 0000 10B5 push {r4, lr} 7463 .cfi_def_cfa_offset 8 7464 .cfi_offset 4, -8 7465 .cfi_offset 14, -4 7466 0002 84B0 sub sp, sp, #16 7467 .cfi_def_cfa_offset 24 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7468 .loc 1 3423 3 is_stmt 1 view .LVU2519 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7469 .loc 1 3423 22 is_stmt 0 view .LVU2520 7470 0004 446A ldr r4, [r0, #36] 7471 .LVL465: 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7472 .loc 1 3425 3 is_stmt 1 view .LVU2521 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7473 .loc 1 3425 7 is_stmt 0 view .LVU2522 7474 0006 636D ldr r3, [r4, #84] 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7475 .loc 1 3425 35 view .LVU2523 7476 0008 0022 movs r2, #0 7477 000a 5A63 str r2, [r3, #52] 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7478 .loc 1 3428 3 is_stmt 1 view .LVU2524 7479 000c 2268 ldr r2, [r4] 7480 000e 5368 ldr r3, [r2, #4] 7481 0010 23F00203 bic r3, r3, #2 7482 0014 5360 str r3, [r2, #4] 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7483 .loc 1 3430 3 view .LVU2525 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7484 .loc 1 3430 7 is_stmt 0 view .LVU2526 7485 0016 FFF7FEFF bl HAL_GetTick 7486 .LVL466: 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7487 .loc 1 3430 7 view .LVU2527 7488 001a 0246 mov r2, r0 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7489 .loc 1 3430 7 discriminator 1 view .LVU2528 7490 001c 6421 movs r1, #100 7491 001e 2046 mov r0, r4 7492 0020 FFF7FEFF bl SPI_EndRxTxTransaction ARM GAS /tmp/ccZ0BHQJ.s page 250 7493 .LVL467: 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7494 .loc 1 3430 6 discriminator 2 view .LVU2529 7495 0024 08B1 cbz r0, .L503 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7496 .loc 1 3432 5 is_stmt 1 view .LVU2530 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7497 .loc 1 3432 21 is_stmt 0 view .LVU2531 7498 0026 4023 movs r3, #64 7499 0028 2366 str r3, [r4, #96] 7500 .L503: 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7501 .loc 1 3436 3 is_stmt 1 view .LVU2532 7502 002a 2268 ldr r2, [r4] 7503 002c 1368 ldr r3, [r2] 7504 002e 23F04003 bic r3, r3, #64 7505 0032 1360 str r3, [r2] 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7506 .loc 1 3439 3 view .LVU2533 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7507 .loc 1 3439 7 is_stmt 0 view .LVU2534 7508 0034 FFF7FEFF bl HAL_GetTick 7509 .LVL468: 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7510 .loc 1 3439 7 discriminator 1 view .LVU2535 7511 0038 0090 str r0, [sp] 7512 003a 6423 movs r3, #100 7513 003c 0022 movs r2, #0 7514 003e 4FF4C061 mov r1, #1536 7515 0042 2046 mov r0, r4 7516 0044 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7517 .LVL469: 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7518 .loc 1 3439 6 discriminator 2 view .LVU2536 7519 0048 08B1 cbz r0, .L504 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7520 .loc 1 3441 5 is_stmt 1 view .LVU2537 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7521 .loc 1 3441 21 is_stmt 0 view .LVU2538 7522 004a 4023 movs r3, #64 7523 004c 2366 str r3, [r4, #96] 7524 .L504: 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7525 .loc 1 3445 3 is_stmt 1 view .LVU2539 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7526 .loc 1 3445 11 is_stmt 0 view .LVU2540 7527 004e A36D ldr r3, [r4, #88] 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7528 .loc 1 3445 6 view .LVU2541 7529 0050 0BB1 cbz r3, .L505 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7530 .loc 1 3447 5 is_stmt 1 view .LVU2542 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7531 .loc 1 3447 21 is_stmt 0 view .LVU2543 7532 0052 5B6B ldr r3, [r3, #52] 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7533 .loc 1 3447 8 view .LVU2544 ARM GAS /tmp/ccZ0BHQJ.s page 251 7534 0054 D3B9 cbnz r3, .L502 7535 .L505: 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7536 .loc 1 3454 3 is_stmt 1 view .LVU2545 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7537 .loc 1 3454 21 is_stmt 0 view .LVU2546 7538 0056 0023 movs r3, #0 7539 0058 A4F84630 strh r3, [r4, #70] @ movhi 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7540 .loc 1 3455 3 is_stmt 1 view .LVU2547 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7541 .loc 1 3455 21 is_stmt 0 view .LVU2548 7542 005c E387 strh r3, [r4, #62] @ movhi 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7543 .loc 1 3458 3 is_stmt 1 view .LVU2549 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7544 .loc 1 3458 11 is_stmt 0 view .LVU2550 7545 005e 236E ldr r3, [r4, #96] 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7546 .loc 1 3458 6 view .LVU2551 7547 0060 402B cmp r3, #64 7548 0062 01D0 beq .L507 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7549 .loc 1 3461 5 is_stmt 1 view .LVU2552 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7550 .loc 1 3461 21 is_stmt 0 view .LVU2553 7551 0064 0023 movs r3, #0 7552 0066 2366 str r3, [r4, #96] 7553 .L507: 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7554 .loc 1 3465 3 is_stmt 1 view .LVU2554 7555 .LBB15: 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7556 .loc 1 3465 3 view .LVU2555 7557 0068 0022 movs r2, #0 7558 006a 0292 str r2, [sp, #8] 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7559 .loc 1 3465 3 view .LVU2556 7560 006c 2368 ldr r3, [r4] 7561 006e D968 ldr r1, [r3, #12] 7562 0070 0291 str r1, [sp, #8] 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7563 .loc 1 3465 3 view .LVU2557 7564 0072 9968 ldr r1, [r3, #8] 7565 0074 0291 str r1, [sp, #8] 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7566 .loc 1 3465 3 view .LVU2558 7567 0076 0299 ldr r1, [sp, #8] 7568 .LBE15: 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7569 .loc 1 3465 3 view .LVU2559 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7570 .loc 1 3466 3 view .LVU2560 7571 .LBB16: 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7572 .loc 1 3466 3 view .LVU2561 7573 0078 0392 str r2, [sp, #12] ARM GAS /tmp/ccZ0BHQJ.s page 252 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7574 .loc 1 3466 3 view .LVU2562 7575 007a 9B68 ldr r3, [r3, #8] 7576 007c 0393 str r3, [sp, #12] 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7577 .loc 1 3466 3 view .LVU2563 7578 007e 039B ldr r3, [sp, #12] 7579 .LBE16: 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7580 .loc 1 3466 3 view .LVU2564 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7581 .loc 1 3469 3 view .LVU2565 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7582 .loc 1 3469 16 is_stmt 0 view .LVU2566 7583 0080 0123 movs r3, #1 7584 0082 84F85D30 strb r3, [r4, #93] 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7585 .loc 1 3475 3 is_stmt 1 view .LVU2567 7586 0086 2046 mov r0, r4 7587 0088 FFF7FEFF bl HAL_SPI_AbortCpltCallback 7588 .LVL470: 7589 .L502: 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7590 .loc 1 3477 1 is_stmt 0 view .LVU2568 7591 008c 04B0 add sp, sp, #16 7592 .cfi_def_cfa_offset 8 7593 @ sp needed 7594 008e 10BD pop {r4, pc} 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7595 .loc 1 3477 1 view .LVU2569 7596 .cfi_endproc 7597 .LFE167: 7599 .section .text.HAL_SPI_GetState,"ax",%progbits 7600 .align 1 7601 .global HAL_SPI_GetState 7602 .syntax unified 7603 .thumb 7604 .thumb_func 7606 HAL_SPI_GetState: 7607 .LVL471: 7608 .LFB157: 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 7609 .loc 1 3012 1 is_stmt 1 view -0 7610 .cfi_startproc 7611 @ args = 0, pretend = 0, frame = 0 7612 @ frame_needed = 0, uses_anonymous_args = 0 7613 @ link register save eliminated. 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7614 .loc 1 3014 3 view .LVU2571 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7615 .loc 1 3014 14 is_stmt 0 view .LVU2572 7616 0000 90F85D00 ldrb r0, [r0, #93] @ zero_extendqisi2 7617 .LVL472: 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7618 .loc 1 3015 1 view .LVU2573 7619 0004 7047 bx lr 7620 .cfi_endproc ARM GAS /tmp/ccZ0BHQJ.s page 253 7621 .LFE157: 7623 .section .text.HAL_SPI_GetError,"ax",%progbits 7624 .align 1 7625 .global HAL_SPI_GetError 7626 .syntax unified 7627 .thumb 7628 .thumb_func 7630 HAL_SPI_GetError: 7631 .LVL473: 7632 .LFB158: 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 7633 .loc 1 3024 1 is_stmt 1 view -0 7634 .cfi_startproc 7635 @ args = 0, pretend = 0, frame = 0 7636 @ frame_needed = 0, uses_anonymous_args = 0 7637 @ link register save eliminated. 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7638 .loc 1 3026 3 view .LVU2575 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7639 .loc 1 3026 14 is_stmt 0 view .LVU2576 7640 0000 006E ldr r0, [r0, #96] 7641 .LVL474: 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7642 .loc 1 3027 1 view .LVU2577 7643 0002 7047 bx lr 7644 .cfi_endproc 7645 .LFE158: 7647 .text 7648 .Letext0: 7649 .file 2 "/home/h/.var/app/com.visualstudio.code/config/Code/User/globalStorage/bmd.stm32-for-vscod 7650 .file 3 "/home/h/.var/app/com.visualstudio.code/config/Code/User/globalStorage/bmd.stm32-for-vscod 7651 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 7652 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 7653 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 7654 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 7655 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h" 7656 .file 9 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h" 7657 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccZ0BHQJ.s page 254 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_spi.c /tmp/ccZ0BHQJ.s:21 .text.SPI_WaitFlagStateUntilTimeout:00000000 $t /tmp/ccZ0BHQJ.s:26 .text.SPI_WaitFlagStateUntilTimeout:00000000 SPI_WaitFlagStateUntilTimeout /tmp/ccZ0BHQJ.s:200 .text.SPI_WaitFlagStateUntilTimeout:000000c4 $d /tmp/ccZ0BHQJ.s:205 .text.SPI_WaitFifoStateUntilTimeout:00000000 $t /tmp/ccZ0BHQJ.s:210 .text.SPI_WaitFifoStateUntilTimeout:00000000 SPI_WaitFifoStateUntilTimeout /tmp/ccZ0BHQJ.s:415 .text.SPI_WaitFifoStateUntilTimeout:000000ec $d /tmp/ccZ0BHQJ.s:420 .text.SPI_EndRxTxTransaction:00000000 $t /tmp/ccZ0BHQJ.s:425 .text.SPI_EndRxTxTransaction:00000000 SPI_EndRxTxTransaction /tmp/ccZ0BHQJ.s:518 .text.SPI_EndRxTransaction:00000000 $t /tmp/ccZ0BHQJ.s:523 .text.SPI_EndRxTransaction:00000000 SPI_EndRxTransaction /tmp/ccZ0BHQJ.s:642 .text.SPI_AbortRx_ISR:00000000 $t /tmp/ccZ0BHQJ.s:647 .text.SPI_AbortRx_ISR:00000000 SPI_AbortRx_ISR /tmp/ccZ0BHQJ.s:762 .text.SPI_AbortRx_ISR:00000088 $d /tmp/ccZ0BHQJ.s:768 .text.SPI_AbortTx_ISR:00000000 $t /tmp/ccZ0BHQJ.s:773 .text.SPI_AbortTx_ISR:00000000 SPI_AbortTx_ISR /tmp/ccZ0BHQJ.s:961 .text.SPI_AbortTx_ISR:000000e8 $d /tmp/ccZ0BHQJ.s:967 .text.HAL_SPI_MspInit:00000000 $t /tmp/ccZ0BHQJ.s:973 .text.HAL_SPI_MspInit:00000000 HAL_SPI_MspInit /tmp/ccZ0BHQJ.s:988 .text.HAL_SPI_Init:00000000 $t /tmp/ccZ0BHQJ.s:994 .text.HAL_SPI_Init:00000000 HAL_SPI_Init /tmp/ccZ0BHQJ.s:1181 .text.HAL_SPI_MspDeInit:00000000 $t /tmp/ccZ0BHQJ.s:1187 .text.HAL_SPI_MspDeInit:00000000 HAL_SPI_MspDeInit /tmp/ccZ0BHQJ.s:1202 .text.HAL_SPI_DeInit:00000000 $t /tmp/ccZ0BHQJ.s:1208 .text.HAL_SPI_DeInit:00000000 HAL_SPI_DeInit /tmp/ccZ0BHQJ.s:1265 .text.HAL_SPI_Transmit:00000000 $t /tmp/ccZ0BHQJ.s:1271 .text.HAL_SPI_Transmit:00000000 HAL_SPI_Transmit /tmp/ccZ0BHQJ.s:1743 .text.HAL_SPI_TransmitReceive:00000000 $t /tmp/ccZ0BHQJ.s:1749 .text.HAL_SPI_TransmitReceive:00000000 HAL_SPI_TransmitReceive /tmp/ccZ0BHQJ.s:2475 .text.HAL_SPI_Receive:00000000 $t /tmp/ccZ0BHQJ.s:2481 .text.HAL_SPI_Receive:00000000 HAL_SPI_Receive /tmp/ccZ0BHQJ.s:2849 .text.HAL_SPI_Transmit_IT:00000000 $t /tmp/ccZ0BHQJ.s:2855 .text.HAL_SPI_Transmit_IT:00000000 HAL_SPI_Transmit_IT /tmp/ccZ0BHQJ.s:3020 .text.HAL_SPI_Transmit_IT:000000a8 $d /tmp/ccZ0BHQJ.s:5520 .text.SPI_TxISR_16BIT:00000000 SPI_TxISR_16BIT /tmp/ccZ0BHQJ.s:5459 .text.SPI_TxISR_8BIT:00000000 SPI_TxISR_8BIT /tmp/ccZ0BHQJ.s:3026 .text.HAL_SPI_TransmitReceive_IT:00000000 $t /tmp/ccZ0BHQJ.s:3032 .text.HAL_SPI_TransmitReceive_IT:00000000 HAL_SPI_TransmitReceive_IT /tmp/ccZ0BHQJ.s:3283 .text.HAL_SPI_TransmitReceive_IT:00000104 $d /tmp/ccZ0BHQJ.s:6161 .text.SPI_2linesRxISR_16BIT:00000000 SPI_2linesRxISR_16BIT /tmp/ccZ0BHQJ.s:6089 .text.SPI_2linesTxISR_16BIT:00000000 SPI_2linesTxISR_16BIT /tmp/ccZ0BHQJ.s:5972 .text.SPI_2linesRxISR_8BIT:00000000 SPI_2linesRxISR_8BIT /tmp/ccZ0BHQJ.s:5867 .text.SPI_2linesTxISR_8BIT:00000000 SPI_2linesTxISR_8BIT /tmp/ccZ0BHQJ.s:3291 .text.HAL_SPI_Receive_IT:00000000 $t /tmp/ccZ0BHQJ.s:3297 .text.HAL_SPI_Receive_IT:00000000 HAL_SPI_Receive_IT /tmp/ccZ0BHQJ.s:3496 .text.HAL_SPI_Receive_IT:000000f8 $d /tmp/ccZ0BHQJ.s:5711 .text.SPI_RxISR_16BIT:00000000 SPI_RxISR_16BIT /tmp/ccZ0BHQJ.s:5650 .text.SPI_RxISR_8BIT:00000000 SPI_RxISR_8BIT /tmp/ccZ0BHQJ.s:3502 .text.HAL_SPI_Transmit_DMA:00000000 $t /tmp/ccZ0BHQJ.s:3508 .text.HAL_SPI_Transmit_DMA:00000000 HAL_SPI_Transmit_DMA /tmp/ccZ0BHQJ.s:3764 .text.HAL_SPI_Transmit_DMA:00000124 $d /tmp/ccZ0BHQJ.s:5201 .text.SPI_DMAHalfTransmitCplt:00000000 SPI_DMAHalfTransmitCplt /tmp/ccZ0BHQJ.s:6276 .text.SPI_DMATransmitCplt:00000000 SPI_DMATransmitCplt /tmp/ccZ0BHQJ.s:6233 .text.SPI_DMAError:00000000 SPI_DMAError /tmp/ccZ0BHQJ.s:3771 .text.HAL_SPI_TransmitReceive_DMA:00000000 $t /tmp/ccZ0BHQJ.s:3777 .text.HAL_SPI_TransmitReceive_DMA:00000000 HAL_SPI_TransmitReceive_DMA ARM GAS /tmp/ccZ0BHQJ.s page 255 /tmp/ccZ0BHQJ.s:4234 .text.HAL_SPI_TransmitReceive_DMA:00000210 $d /tmp/ccZ0BHQJ.s:5305 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 SPI_DMAHalfTransmitReceiveCplt /tmp/ccZ0BHQJ.s:6515 .text.SPI_DMATransmitReceiveCplt:00000000 SPI_DMATransmitReceiveCplt /tmp/ccZ0BHQJ.s:5253 .text.SPI_DMAHalfReceiveCplt:00000000 SPI_DMAHalfReceiveCplt /tmp/ccZ0BHQJ.s:6399 .text.SPI_DMAReceiveCplt:00000000 SPI_DMAReceiveCplt /tmp/ccZ0BHQJ.s:4243 .text.HAL_SPI_Receive_DMA:00000000 $t /tmp/ccZ0BHQJ.s:4249 .text.HAL_SPI_Receive_DMA:00000000 HAL_SPI_Receive_DMA /tmp/ccZ0BHQJ.s:4557 .text.HAL_SPI_Receive_DMA:00000184 $d /tmp/ccZ0BHQJ.s:4564 .text.HAL_SPI_Abort:00000000 $t /tmp/ccZ0BHQJ.s:4570 .text.HAL_SPI_Abort:00000000 HAL_SPI_Abort /tmp/ccZ0BHQJ.s:4914 .text.HAL_SPI_Abort:00000180 $d /tmp/ccZ0BHQJ.s:4922 .text.HAL_SPI_DMAPause:00000000 $t /tmp/ccZ0BHQJ.s:4928 .text.HAL_SPI_DMAPause:00000000 HAL_SPI_DMAPause /tmp/ccZ0BHQJ.s:4972 .text.HAL_SPI_DMAResume:00000000 $t /tmp/ccZ0BHQJ.s:4978 .text.HAL_SPI_DMAResume:00000000 HAL_SPI_DMAResume /tmp/ccZ0BHQJ.s:5022 .text.HAL_SPI_DMAStop:00000000 $t /tmp/ccZ0BHQJ.s:5028 .text.HAL_SPI_DMAStop:00000000 HAL_SPI_DMAStop /tmp/ccZ0BHQJ.s:5112 .text.HAL_SPI_TxCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5118 .text.HAL_SPI_TxCpltCallback:00000000 HAL_SPI_TxCpltCallback /tmp/ccZ0BHQJ.s:5133 .text.HAL_SPI_RxCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5139 .text.HAL_SPI_RxCpltCallback:00000000 HAL_SPI_RxCpltCallback /tmp/ccZ0BHQJ.s:5154 .text.HAL_SPI_TxRxCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5160 .text.HAL_SPI_TxRxCpltCallback:00000000 HAL_SPI_TxRxCpltCallback /tmp/ccZ0BHQJ.s:5175 .text.HAL_SPI_TxHalfCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5181 .text.HAL_SPI_TxHalfCpltCallback:00000000 HAL_SPI_TxHalfCpltCallback /tmp/ccZ0BHQJ.s:5196 .text.SPI_DMAHalfTransmitCplt:00000000 $t /tmp/ccZ0BHQJ.s:5227 .text.HAL_SPI_RxHalfCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5233 .text.HAL_SPI_RxHalfCpltCallback:00000000 HAL_SPI_RxHalfCpltCallback /tmp/ccZ0BHQJ.s:5248 .text.SPI_DMAHalfReceiveCplt:00000000 $t /tmp/ccZ0BHQJ.s:5279 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:5285 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 HAL_SPI_TxRxHalfCpltCallback /tmp/ccZ0BHQJ.s:5300 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 $t /tmp/ccZ0BHQJ.s:5331 .text.HAL_SPI_ErrorCallback:00000000 $t /tmp/ccZ0BHQJ.s:5337 .text.HAL_SPI_ErrorCallback:00000000 HAL_SPI_ErrorCallback /tmp/ccZ0BHQJ.s:5352 .text.SPI_CloseTx_ISR:00000000 $t /tmp/ccZ0BHQJ.s:5357 .text.SPI_CloseTx_ISR:00000000 SPI_CloseTx_ISR /tmp/ccZ0BHQJ.s:5454 .text.SPI_TxISR_8BIT:00000000 $t /tmp/ccZ0BHQJ.s:5515 .text.SPI_TxISR_16BIT:00000000 $t /tmp/ccZ0BHQJ.s:5576 .text.SPI_CloseRx_ISR:00000000 $t /tmp/ccZ0BHQJ.s:5581 .text.SPI_CloseRx_ISR:00000000 SPI_CloseRx_ISR /tmp/ccZ0BHQJ.s:5645 .text.SPI_RxISR_8BIT:00000000 $t /tmp/ccZ0BHQJ.s:5706 .text.SPI_RxISR_16BIT:00000000 $t /tmp/ccZ0BHQJ.s:5767 .text.SPI_CloseRxTx_ISR:00000000 $t /tmp/ccZ0BHQJ.s:5772 .text.SPI_CloseRxTx_ISR:00000000 SPI_CloseRxTx_ISR /tmp/ccZ0BHQJ.s:5862 .text.SPI_2linesTxISR_8BIT:00000000 $t /tmp/ccZ0BHQJ.s:5967 .text.SPI_2linesRxISR_8BIT:00000000 $t /tmp/ccZ0BHQJ.s:6084 .text.SPI_2linesTxISR_16BIT:00000000 $t /tmp/ccZ0BHQJ.s:6156 .text.SPI_2linesRxISR_16BIT:00000000 $t /tmp/ccZ0BHQJ.s:6228 .text.SPI_DMAError:00000000 $t /tmp/ccZ0BHQJ.s:6271 .text.SPI_DMATransmitCplt:00000000 $t /tmp/ccZ0BHQJ.s:6394 .text.SPI_DMAReceiveCplt:00000000 $t /tmp/ccZ0BHQJ.s:6510 .text.SPI_DMATransmitReceiveCplt:00000000 $t /tmp/ccZ0BHQJ.s:6609 .text.HAL_SPI_IRQHandler:00000000 $t /tmp/ccZ0BHQJ.s:6615 .text.HAL_SPI_IRQHandler:00000000 HAL_SPI_IRQHandler /tmp/ccZ0BHQJ.s:6884 .text.HAL_SPI_IRQHandler:00000120 $d /tmp/ccZ0BHQJ.s:6894 .text.SPI_DMAAbortOnError:00000000 SPI_DMAAbortOnError /tmp/ccZ0BHQJ.s:6889 .text.SPI_DMAAbortOnError:00000000 $t ARM GAS /tmp/ccZ0BHQJ.s page 256 /tmp/ccZ0BHQJ.s:6926 .text.HAL_SPI_AbortCpltCallback:00000000 $t /tmp/ccZ0BHQJ.s:6932 .text.HAL_SPI_AbortCpltCallback:00000000 HAL_SPI_AbortCpltCallback /tmp/ccZ0BHQJ.s:6947 .text.HAL_SPI_Abort_IT:00000000 $t /tmp/ccZ0BHQJ.s:6953 .text.HAL_SPI_Abort_IT:00000000 HAL_SPI_Abort_IT /tmp/ccZ0BHQJ.s:7286 .text.HAL_SPI_Abort_IT:00000148 $d /tmp/ccZ0BHQJ.s:7454 .text.SPI_DMATxAbortCallback:00000000 SPI_DMATxAbortCallback /tmp/ccZ0BHQJ.s:7301 .text.SPI_DMARxAbortCallback:00000000 SPI_DMARxAbortCallback /tmp/ccZ0BHQJ.s:7296 .text.SPI_DMARxAbortCallback:00000000 $t /tmp/ccZ0BHQJ.s:7449 .text.SPI_DMATxAbortCallback:00000000 $t /tmp/ccZ0BHQJ.s:7600 .text.HAL_SPI_GetState:00000000 $t /tmp/ccZ0BHQJ.s:7606 .text.HAL_SPI_GetState:00000000 HAL_SPI_GetState /tmp/ccZ0BHQJ.s:7624 .text.HAL_SPI_GetError:00000000 $t /tmp/ccZ0BHQJ.s:7630 .text.HAL_SPI_GetError:00000000 HAL_SPI_GetError UNDEFINED SYMBOLS HAL_GetTick SystemCoreClock HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_Abort_IT