ARM GAS /tmp/ccNym1yT.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 .LFB170: 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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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/ccNym1yT.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 **** #if (USE_SPI_CRC != 0U) 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1368: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_CR2_ 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1393: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 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 26 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNE flag */ 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 8 Bit mode */ 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1441: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 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) ARM GAS /tmp/ccNym1yT.s page 27 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1475: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 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag is reset */ 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold before to switch on 8 bit data size */ 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout = 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 28 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC from DR to close CRC calculation process */ 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag */ 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** /* Check if CRC error occurred */ 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear CRC Flag */ 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; ARM GAS /tmp/ccNym1yT.s page 29 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with Interrupt. 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; ARM GAS /tmp/ccNym1yT.s page 30 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_16BIT; 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_8BIT; 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 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 **** /* Process Unlocked */ 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with Interrupt. 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccNym1yT.s page 31 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1702: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 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_IT(hspi, pData, pData, Size); 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1729: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 */ 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; ARM GAS /tmp/ccNym1yT.s page 32 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Note : The SPI must be enabled after unlocking current process 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to avoid the risk of SPI interrupt handle execution before current 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** process unlock */ 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable RXNE and ERR interrupt */ 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with Interrupt. 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pR ARM GAS /tmp/ccNym1yT.s page 33 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BIT; 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 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 **** hspi->RxISR = SPI_2linesRxISR_8BIT; 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 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 **** #if (USE_SPI_CRC != 0U) 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ ARM GAS /tmp/ccNym1yT.s page 34 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1870: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 */ 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (Size >= 2U)) 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with DMA. 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ ARM GAS /tmp/ccNym1yT.s page 35 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA Half transfer complete callback */ 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt; 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA transfer complete callback */ 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt; 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ ARM GAS /tmp/ccNym1yT.s page 36 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = SPI_DMAError; 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmatx->Init.MemDataAlignment == DMA_MDA 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the even/odd of the data size + crc if enabled */ 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount & 0x1U) == 0U) 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** /* Enable the Tx DMA Stream/Channel */ 1992: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 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with DMA. 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note In case of MASTER mode and SPI_DIRECTION_2LINES direction, hdmatx shall be defined. 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccNym1yT.s page 37 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pData Length must be Size + 1. 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx dma handle */ 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2051: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 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size); 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 **** /* Process Locked */ 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); ARM GAS /tmp/ccNym1yT.s page 38 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** /* Set the SPI RxDMA Half transfer complete callback */ 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA transfer complete callback */ 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; ARM GAS /tmp/ccNym1yT.s page 39 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2145: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 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with DMA. 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pRxData Length must be Size + 1 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *p 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t Size) 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx & tx dma handles */ 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); ARM GAS /tmp/ccNym1yT.s page 40 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ ARM GAS /tmp/ccNym1yT.s page 41 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset the threshold bit */ 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX | SPI_CR2_LDMARX); 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The packing mode management is enabled by the DMA settings according the spi data size */ 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferSize & 0x1U) == 0x0U) 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2301: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 * 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA Half transfer complete callback */ 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx/Rx DMA Half transfer complete callback */ ARM GAS /tmp/ccNym1yT.s page 42 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt; 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2322: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 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** is performed in DMA reception complete callback */ 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = NULL; 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 2343: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 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); ARM GAS /tmp/ccNym1yT.s page 43 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (blocking mode). 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); ARM GAS /tmp/ccNym1yT.s page 44 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */ 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK) 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN)); 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */ 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK) 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; ARM GAS /tmp/ccNym1yT.s page 45 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable peripheral */ 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 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 **** /* Disable Rx DMA Request */ 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXDMAEN)); 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->state to ready */ 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (Interrupt mode). 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2537: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) 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY ARM GAS /tmp/ccNym1yT.s page 46 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - At abort completion, call user abort complete callback 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * considered as completed only when user abort complete callback is executed (not when ex 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi) 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Change Rx and Tx Irq Handler to Disable TXEIE, RXNEIE and ERRIE interrupts */ 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 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 **** /* If DMA Tx and/or DMA Rx Handles are associated to SPI Handle, DMA Abort complete callbacks sho ARM GAS /tmp/ccNym1yT.s page 47 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** before any call to DMA Abort functions */ 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Tx Handle is valid */ 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback; 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Rx Handle is valid */ 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback; 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel */ 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK) 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel */ 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK) 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 48 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (abortcplt == 1U) 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Pause the DMA Transfer. 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi) 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 49 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Resume the DMA Transfer. 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi) 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI DMA Tx & Rx requests */ 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Stop the DMA Transfer. 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi) 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 2749: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 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the correspond call back is executed HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA tx Stream/Channel */ 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmatx)) 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA rx Stream/Channel */ 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmarx)) ARM GAS /tmp/ccNym1yT.s page 50 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI interrupt request. 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Receiver ----------------------------------------------------*/ 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && 2792: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 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR(hspi); 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Transmitter -------------------------------------------------*/ 2799: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) 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR(hspi); 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in Error Treatment --------------------------------------------------*/ 2806: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) != 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Overrun error interrupt occurred ----------------------------------*/ 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_TX) 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 51 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Mode Fault error interrupt occurred -------------------------------*/ 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) 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_MODF); 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Frame error interrupt occurred ------------------------------------*/ 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable all interrupts */ 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 2845: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) 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx channel */ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx channel */ 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 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 **** else 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 52 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Tx Transfer completed callback. 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxCpltCallback should be implemented in the user file 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Rx Transfer completed callback. 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxCpltCallback should be implemented in the user file 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Tx and Rx Transfer completed callback. 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxCpltCallback should be implemented in the user file 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Tx Half Transfer completed callback. 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccNym1yT.s page 53 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxHalfCpltCallback should be implemented in the user file 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Rx Half Transfer completed callback. 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx and Rx Half Transfer callback. 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI error callback. 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_ErrorCallback should be implemented in the user file ARM GAS /tmp/ccNym1yT.s page 54 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and user can use HAL_SPI_GetError() API to check the latest error occurred 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI Abort Complete callback. 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_AbortCpltCallback can be implemented in the user file. 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI control functions 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Peripheral State and Errors functions ##### 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to control the SPI. 3029: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 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetError() check in run-time Errors occurring during communication 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 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 **** * @brief Return the SPI handle state. 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI state 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi) 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->State; 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI error code. 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI error code in bitmap format ARM GAS /tmp/ccNym1yT.s page 55 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi) 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->ErrorCode; 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup SPI_Private_Functions 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Private functions 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 **** 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit process complete callback. 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received data is not read */ 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; ARM GAS /tmp/ccNym1yT.s page 56 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx complete callback */ 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI receive process complete callback. 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag */ 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) ! 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) ARM GAS /tmp/ccNym1yT.s page 57 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstar 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** /* Check if we are in Master RX 2 line mode */ 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3200: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) 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Normal case */ 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); ARM GAS /tmp/ccNym1yT.s page 58 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit receive process complete callback. 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_8BI 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_QUARTER_FULL, SPI_DEFAULT 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart) != HAL_OK) 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 59 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_HALF_FULL, SPI_DEFAULT_TI 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request */ 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 60 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit process complete callback. 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx half complete callback */ 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback(hspi); 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxHalfCpltCallback(hspi); 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half receive process complete callback 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx half complete callback */ 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback(hspi); 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxHalfCpltCallback(hspi); 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit receive process complete callback. 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx half complete callback */ 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) ARM GAS /tmp/ccNym1yT.s page 61 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback(hspi); 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxHalfCpltCallback(hspi); 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication error callback. 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma) 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Stop the disable DMA transfer on SPI side */ 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication abort callback, when initiated by HAL services on Error 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief DMA SPI Tx communication abort callback, when initiated by user 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3446: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 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Rx DMA Handle. 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ ARM GAS /tmp/ccNym1yT.s page 62 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->XferAbortCallback != NULL) 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 63 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Rx communication abort callback, when initiated by user 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3512: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 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Tx DMA Handle. 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->XferAbortCallback != NULL) 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 64 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 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 **** /* Receive data in 8 Bit mode */ 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = *((__IO uint8_t *)&hspi->Instance->DR); 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BITCRC; 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); ARM GAS /tmp/ccNym1yT.s page 65 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 8-bit handler for Transmit and Receive in Interrupt mode. 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount >= 2U) 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 8 Bit mode */ 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 66 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transmission */ 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** * @brief Rx 16-bit handler for Transmit and Receive in Interrupt mode. 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BITCRC; 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 67 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 16-bit handler for Transmit and Receive in Interrupt mode. 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); ARM GAS /tmp/ccNym1yT.s page 68 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 8-bit receive in Interrupt context. 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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 **** 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the receive 8-bit in Interrupt context. 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) ARM GAS /tmp/ccNym1yT.s page 69 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BITCRC; 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive in Interrupt context. 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 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 **** 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the 16-bit receive in Interrupt context. 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 70 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BITCRC; 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 8-bit transmit in Interrupt mode. 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 16-bit transmit in Interrupt mode. 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 71 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI Communication Timeout. 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Flag SPI flag to check 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State flag state to check 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 29 .loc 1 3981 1 view -0 30 .cfi_startproc 31 @ args = 4, pretend = 0, frame = 8 32 @ frame_needed = 0, uses_anonymous_args = 0 33 .loc 1 3981 1 is_stmt 0 view .LVU1 34 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 35 .cfi_def_cfa_offset 32 36 .cfi_offset 4, -32 37 .cfi_offset 5, -28 38 .cfi_offset 6, -24 39 .cfi_offset 7, -20 40 .cfi_offset 8, -16 41 .cfi_offset 9, -12 42 .cfi_offset 10, -8 43 .cfi_offset 14, -4 44 0004 82B0 sub sp, sp, #8 45 .cfi_def_cfa_offset 40 46 0006 0546 mov r5, r0 47 0008 8846 mov r8, r1 48 000a 1746 mov r7, r2 49 000c 1E46 mov r6, r3 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 50 .loc 1 3982 3 is_stmt 1 view .LVU2 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 51 .loc 1 3983 3 view .LVU3 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 52 .loc 1 3984 3 view .LVU4 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 53 .loc 1 3987 3 view .LVU5 54 .loc 1 3987 30 is_stmt 0 view .LVU6 55 000e FFF7FEFF bl HAL_GetTick 56 .LVL1: 57 .loc 1 3987 44 discriminator 1 view .LVU7 58 0012 0A9B ldr r3, [sp, #40] 59 0014 1B1A subs r3, r3, r0 60 .loc 1 3987 17 discriminator 1 view .LVU8 61 0016 03EB0609 add r9, r3, r6 ARM GAS /tmp/ccNym1yT.s page 72 62 .LVL2: 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 63 .loc 1 3988 3 is_stmt 1 view .LVU9 64 .loc 1 3988 19 is_stmt 0 view .LVU10 65 001a FFF7FEFF bl HAL_GetTick 66 .LVL3: 67 001e 8246 mov r10, r0 68 .LVL4: 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); 69 .loc 1 3991 3 is_stmt 1 view .LVU11 70 .loc 1 3991 43 is_stmt 0 view .LVU12 71 0020 284B ldr r3, .L16 72 0022 1B68 ldr r3, [r3] 73 .loc 1 3991 50 view .LVU13 74 0024 C3F3CB33 ubfx r3, r3, #15, #12 75 .loc 1 3991 23 view .LVU14 76 0028 09FB03F3 mul r3, r9, r3 77 .loc 1 3991 9 view .LVU15 78 002c 0193 str r3, [sp, #4] 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) 79 .loc 1 3993 3 is_stmt 1 view .LVU16 80 .LVL5: 81 .L3: 82 .loc 1 3993 57 view .LVU17 83 .loc 1 3993 11 is_stmt 0 view .LVU18 84 002e 2B68 ldr r3, [r5] 85 0030 9C68 ldr r4, [r3, #8] 86 .loc 1 3993 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 3993 57 view .LVU20 92 003c BB42 cmp r3, r7 93 003e 3DD0 beq .L12 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 94 .loc 1 3995 5 is_stmt 1 view .LVU21 95 .loc 1 3995 8 is_stmt 0 view .LVU22 96 0040 B6F1FF3F cmp r6, #-1 97 0044 F3D0 beq .L3 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 98 .loc 1 3997 7 is_stmt 1 view .LVU23 99 .loc 1 3997 13 is_stmt 0 view .LVU24 100 0046 FFF7FEFF bl HAL_GetTick 101 .LVL6: 102 .loc 1 3997 27 discriminator 1 view .LVU25 103 004a A0EB0A00 sub r0, r0, r10 104 .loc 1 3997 10 discriminator 1 view .LVU26 105 004e 4845 cmp r0, r9 106 0050 07D2 bcs .L13 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared ARM GAS /tmp/ccNym1yT.s page 73 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 107 .loc 1 4027 7 is_stmt 1 view .LVU27 108 .loc 1 4027 17 is_stmt 0 view .LVU28 109 0052 019A ldr r2, [sp, #4] 110 .loc 1 4027 10 view .LVU29 111 0054 02B1 cbz r2, .L9 112 0056 4A46 mov r2, r9 113 .L9: 114 .LVL7: 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 115 .loc 1 4031 7 is_stmt 1 view .LVU30 116 .loc 1 4031 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: 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 124 .loc 1 4004 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] 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 129 .loc 1 4006 9 view .LVU33 ARM GAS /tmp/ccNym1yT.s page 74 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 130 .loc 1 4006 24 is_stmt 0 view .LVU34 131 006c 6B68 ldr r3, [r5, #4] 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 132 .loc 1 4006 12 view .LVU35 133 006e B3F5827F cmp r3, #260 134 0072 0BD0 beq .L14 135 .L5: 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 136 .loc 1 4014 9 is_stmt 1 view .LVU36 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 137 .loc 1 4014 23 is_stmt 0 view .LVU37 138 0074 AB6A ldr r3, [r5, #40] 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 139 .loc 1 4014 12 view .LVU38 140 0076 B3F5005F cmp r3, #8192 141 007a 14D0 beq .L15 142 .L7: 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 143 .loc 1 4016 11 is_stmt 1 discriminator 1 view .LVU39 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 144 .loc 1 4019 9 view .LVU40 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 145 .loc 1 4019 21 is_stmt 0 view .LVU41 146 007c 0123 movs r3, #1 147 007e 85F85D30 strb r3, [r5, #93] 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 148 .loc 1 4022 9 is_stmt 1 view .LVU42 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 149 .loc 1 4022 9 view .LVU43 150 0082 0023 movs r3, #0 151 0084 85F85C30 strb r3, [r5, #92] 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 152 .loc 1 4022 9 view .LVU44 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 153 .loc 1 4024 9 view .LVU45 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 154 .loc 1 4024 16 is_stmt 0 view .LVU46 155 0088 0320 movs r0, #3 156 008a 18E0 b .L8 157 .L14: 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 158 .loc 1 4006 65 discriminator 1 view .LVU47 159 008c AB68 ldr r3, [r5, #8] 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 160 .loc 1 4006 50 discriminator 1 view .LVU48 161 008e B3F5004F cmp r3, #32768 162 0092 02D0 beq .L6 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 163 .loc 1 4007 54 view .LVU49 164 0094 B3F5806F cmp r3, #1024 165 0098 ECD1 bne .L5 166 .L6: 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 167 .loc 1 4010 11 is_stmt 1 view .LVU50 168 009a 2A68 ldr r2, [r5] 169 009c 1368 ldr r3, [r2] ARM GAS /tmp/ccNym1yT.s page 75 170 009e 23F04003 bic r3, r3, #64 171 00a2 1360 str r3, [r2] 172 00a4 E6E7 b .L5 173 .L15: 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 174 .loc 1 4016 11 view .LVU51 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 175 .loc 1 4016 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] 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 180 .loc 1 4016 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: 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 187 .loc 1 4035 10 is_stmt 0 view .LVU54 188 00bc 0020 movs r0, #0 189 .L8: 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 190 .loc 1 4036 1 view .LVU55 191 00be 02B0 add sp, sp, #8 192 .cfi_def_cfa_offset 32 193 @ sp needed 194 00c0 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 195 .LVL9: 196 .L17: 197 .loc 1 4036 1 view .LVU56 198 .align 2 199 .L16: 200 00c4 00000000 .word SystemCoreClock 201 .cfi_endproc 202 .LFE170: 204 .section .text.SPI_WaitFifoStateUntilTimeout,"ax",%progbits 205 .align 1 206 .syntax unified 207 .thumb 208 .thumb_func 210 SPI_WaitFifoStateUntilTimeout: 211 .LVL10: 212 .LFB171: 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI FIFO Communication Timeout. 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Fifo Fifo to check 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State Fifo state to check 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration ARM GAS /tmp/ccNym1yT.s page 76 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 213 .loc 1 4050 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 4050 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 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 234 .loc 1 4051 3 is_stmt 1 view .LVU59 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 235 .loc 1 4052 3 view .LVU60 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 236 .loc 1 4053 3 view .LVU61 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 237 .loc 1 4054 3 view .LVU62 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 238 .loc 1 4055 3 view .LVU63 239 .loc 1 4055 17 is_stmt 0 view .LVU64 240 000e 0023 movs r3, #0 241 .LVL11: 242 .loc 1 4055 17 view .LVU65 243 0010 8DF80330 strb r3, [sp, #3] 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 244 .loc 1 4058 3 is_stmt 1 view .LVU66 245 .loc 1 4058 28 is_stmt 0 view .LVU67 246 0014 FFF7FEFF bl HAL_GetTick 247 .LVL12: 248 .loc 1 4058 42 discriminator 1 view .LVU68 249 0018 0A9B ldr r3, [sp, #40] 250 001a 1B1A subs r3, r3, r0 251 .loc 1 4058 15 discriminator 1 view .LVU69 252 001c 03EB0708 add r8, r3, r7 253 .LVL13: 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 254 .loc 1 4059 3 is_stmt 1 view .LVU70 ARM GAS /tmp/ccNym1yT.s page 77 255 .loc 1 4059 19 is_stmt 0 view .LVU71 256 0020 FFF7FEFF bl HAL_GetTick 257 .LVL14: 258 0024 8146 mov r9, r0 259 .LVL15: 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 260 .loc 1 4062 3 is_stmt 1 view .LVU72 261 .loc 1 4062 35 is_stmt 0 view .LVU73 262 0026 D6F800A0 ldr r10, [r6] 263 .LVL16: 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 35U) >> 20U); 264 .loc 1 4065 3 is_stmt 1 view .LVU74 265 .loc 1 4065 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 4065 50 view .LVU76 271 0036 1B0D lsrs r3, r3, #20 272 .loc 1 4065 23 view .LVU77 273 0038 08FB03F3 mul r3, r8, r3 274 .loc 1 4065 9 view .LVU78 275 003c 0193 str r3, [sp, #4] 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->Instance->SR & Fifo) != State) 276 .loc 1 4067 3 is_stmt 1 view .LVU79 277 .loc 1 4067 9 is_stmt 0 view .LVU80 278 003e 02E0 b .L21 279 .LVL17: 280 .L20: 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((Fifo == SPI_SR_FRLVL) && (State == SPI_FRLVL_EMPTY)) 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Flush Data Register by a blank read */ 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 281 .loc 1 4077 5 is_stmt 1 view .LVU81 282 .loc 1 4077 8 is_stmt 0 view .LVU82 283 0040 B7F1FF3F cmp r7, #-1 284 0044 12D1 bne .L30 285 .L21: 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 286 .loc 1 4067 38 is_stmt 1 view .LVU83 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 287 .loc 1 4067 15 is_stmt 0 view .LVU84 288 0046 3368 ldr r3, [r6] 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 289 .loc 1 4067 25 view .LVU85 290 0048 9B68 ldr r3, [r3, #8] ARM GAS /tmp/ccNym1yT.s page 78 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 291 .loc 1 4067 30 view .LVU86 292 004a 03EA040C and ip, r3, r4 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 293 .loc 1 4067 38 view .LVU87 294 004e AC45 cmp ip, r5 295 0050 47D0 beq .L31 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 296 .loc 1 4069 5 is_stmt 1 view .LVU88 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 297 .loc 1 4069 8 is_stmt 0 view .LVU89 298 0052 B4F5C06F cmp r4, #1536 299 0056 F3D1 bne .L20 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 300 .loc 1 4069 32 discriminator 1 view .LVU90 301 0058 002D cmp r5, #0 302 005a F1D1 bne .L20 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 303 .loc 1 4072 7 is_stmt 1 view .LVU91 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 304 .loc 1 4072 17 is_stmt 0 view .LVU92 305 005c 9AF80C30 ldrb r3, [r10, #12] @ zero_extendqisi2 306 0060 DBB2 uxtb r3, r3 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 307 .loc 1 4072 15 view .LVU93 308 0062 8DF80330 strb r3, [sp, #3] 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 309 .loc 1 4074 7 is_stmt 1 view .LVU94 310 0066 9DF80330 ldrb r3, [sp, #3] @ zero_extendqisi2 311 006a E9E7 b .L20 312 .L30: 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 313 .loc 1 4079 7 view .LVU95 314 .loc 1 4079 13 is_stmt 0 view .LVU96 315 006c FFF7FEFF bl HAL_GetTick 316 .LVL18: 317 .loc 1 4079 27 discriminator 1 view .LVU97 318 0070 A0EB0900 sub r0, r0, r9 319 .loc 1 4079 10 discriminator 1 view .LVU98 320 0074 4045 cmp r0, r8 321 0076 07D2 bcs .L32 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 79 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 322 .loc 1 4109 7 is_stmt 1 view .LVU99 323 .loc 1 4109 17 is_stmt 0 view .LVU100 324 0078 019A ldr r2, [sp, #4] 325 .loc 1 4109 10 view .LVU101 326 007a 02B1 cbz r2, .L27 327 007c 4246 mov r2, r8 328 .L27: 329 .LVL19: 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 330 .loc 1 4113 7 is_stmt 1 view .LVU102 331 .loc 1 4113 12 is_stmt 0 view .LVU103 332 007e 019B ldr r3, [sp, #4] 333 0080 013B subs r3, r3, #1 334 0082 0193 str r3, [sp, #4] 335 0084 9046 mov r8, r2 336 0086 DEE7 b .L21 337 .LVL20: 338 .L32: 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 339 .loc 1 4086 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] 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 344 .loc 1 4088 9 view .LVU105 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 345 .loc 1 4088 24 is_stmt 0 view .LVU106 346 0092 7368 ldr r3, [r6, #4] 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 347 .loc 1 4088 12 view .LVU107 348 0094 B3F5827F cmp r3, #260 349 0098 0BD0 beq .L33 350 .L23: 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 351 .loc 1 4096 9 is_stmt 1 view .LVU108 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 352 .loc 1 4096 23 is_stmt 0 view .LVU109 353 009a B36A ldr r3, [r6, #40] ARM GAS /tmp/ccNym1yT.s page 80 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 354 .loc 1 4096 12 view .LVU110 355 009c B3F5005F cmp r3, #8192 356 00a0 14D0 beq .L34 357 .L25: 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 358 .loc 1 4098 11 is_stmt 1 discriminator 1 view .LVU111 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 359 .loc 1 4101 9 view .LVU112 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 360 .loc 1 4101 21 is_stmt 0 view .LVU113 361 00a2 0123 movs r3, #1 362 00a4 86F85D30 strb r3, [r6, #93] 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 363 .loc 1 4104 9 is_stmt 1 view .LVU114 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 364 .loc 1 4104 9 view .LVU115 365 00a8 0023 movs r3, #0 366 00aa 86F85C30 strb r3, [r6, #92] 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 367 .loc 1 4104 9 view .LVU116 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 368 .loc 1 4106 9 view .LVU117 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 369 .loc 1 4106 16 is_stmt 0 view .LVU118 370 00ae 0320 movs r0, #3 371 00b0 18E0 b .L26 372 .L33: 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 373 .loc 1 4088 65 discriminator 1 view .LVU119 374 00b2 B368 ldr r3, [r6, #8] 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 375 .loc 1 4088 50 discriminator 1 view .LVU120 376 00b4 B3F5004F cmp r3, #32768 377 00b8 02D0 beq .L24 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 378 .loc 1 4089 54 view .LVU121 379 00ba B3F5806F cmp r3, #1024 380 00be ECD1 bne .L23 381 .L24: 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 382 .loc 1 4092 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: 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 389 .loc 1 4098 11 view .LVU123 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 390 .loc 1 4098 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] 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 81 395 .loc 1 4098 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: 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 402 .loc 1 4117 10 is_stmt 0 view .LVU126 403 00e2 0020 movs r0, #0 404 .L26: 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 405 .loc 1 4118 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 4118 1 view .LVU128 413 00ea 00BF .align 2 414 .L35: 415 00ec 00000000 .word SystemCoreClock 416 .cfi_endproc 417 .LFE171: 419 .section .text.SPI_EndRxTxTransaction,"ax",%progbits 420 .align 1 421 .syntax unified 422 .thumb 423 .thumb_func 425 SPI_EndRxTxTransaction: 426 .LVL22: 427 .LFB173: 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RX transaction complete. 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 82 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 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 **** /** 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RXTX or TX transaction complete. 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 428 .loc 1 4165 1 is_stmt 1 view -0 429 .cfi_startproc 430 @ args = 0, pretend = 0, frame = 0 431 @ frame_needed = 0, uses_anonymous_args = 0 432 .loc 1 4165 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 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the TX fifo is empty */ 4167: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 4167 3 is_stmt 1 view .LVU131 445 .loc 1 4167 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 4167 7 view .LVU133 451 0010 4FF4C051 mov r1, #6144 452 .LVL24: 453 .loc 1 4167 7 view .LVU134 454 0014 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 455 .LVL25: 456 .loc 1 4167 6 discriminator 1 view .LVU135 ARM GAS /tmp/ccNym1yT.s page 83 457 0018 B0B9 cbnz r0, .L42 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 458 .loc 1 4174 3 is_stmt 1 view .LVU136 459 .loc 1 4174 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 4174 6 discriminator 1 view .LVU138 468 0028 A8B9 cbnz r0, .L43 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the RX fifo is empty */ 4181: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 4181 3 is_stmt 1 view .LVU139 470 .loc 1 4181 7 is_stmt 0 view .LVU140 471 002a 0096 str r6, [sp] 472 002c 2B46 mov r3, r5 473 002e 0022 movs r2, #0 474 0030 4FF4C061 mov r1, #1536 475 0034 2046 mov r0, r4 476 0036 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 477 .LVL27: 478 .loc 1 4181 6 discriminator 1 view .LVU141 479 003a 50B1 cbz r0, .L39 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 480 .loc 1 4183 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] 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 484 .loc 1 4184 5 view .LVU143 485 .loc 1 4184 12 is_stmt 0 view .LVU144 486 0044 0320 movs r0, #3 487 0046 04E0 b .L39 488 .L42: 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 489 .loc 1 4169 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] 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 493 .loc 1 4170 5 view .LVU146 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 84 494 .loc 1 4170 12 is_stmt 0 view .LVU147 495 0050 0320 movs r0, #3 496 .L39: 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 497 .loc 1 4188 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 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 506 .loc 1 4176 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] 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 510 .loc 1 4177 5 view .LVU150 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 511 .loc 1 4177 12 is_stmt 0 view .LVU151 512 005e 0320 movs r0, #3 513 0060 F7E7 b .L39 514 .cfi_endproc 515 .LFE173: 517 .section .text.SPI_EndRxTransaction,"ax",%progbits 518 .align 1 519 .syntax unified 520 .thumb 521 .thumb_func 523 SPI_EndRxTransaction: 524 .LVL29: 525 .LFB172: 4129: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 4129 1 is_stmt 1 view -0 527 .cfi_startproc 528 @ args = 0, pretend = 0, frame = 0 529 @ frame_needed = 0, uses_anonymous_args = 0 4129: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 4129 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 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 542 .loc 1 4130 3 is_stmt 1 view .LVU154 ARM GAS /tmp/ccNym1yT.s page 85 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 543 .loc 1 4130 18 is_stmt 0 view .LVU155 544 000a 4368 ldr r3, [r0, #4] 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 545 .loc 1 4130 6 view .LVU156 546 000c B3F5827F cmp r3, #260 547 0010 0DD0 beq .L51 548 .LVL30: 549 .L45: 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 550 .loc 1 4138 3 is_stmt 1 view .LVU157 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 551 .loc 1 4138 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: 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 557 .loc 1 4138 7 view .LVU159 558 001a 2046 mov r0, r4 559 .LVL32: 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 560 .loc 1 4138 7 view .LVU160 561 001c FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 562 .LVL33: 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 563 .loc 1 4138 6 discriminator 1 view .LVU161 564 0020 90B9 cbnz r0, .L52 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 565 .loc 1 4144 3 is_stmt 1 view .LVU162 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 566 .loc 1 4144 18 is_stmt 0 view .LVU163 567 0022 6368 ldr r3, [r4, #4] 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 568 .loc 1 4144 6 view .LVU164 569 0024 B3F5827F cmp r3, #260 570 0028 14D0 beq .L53 571 .L48: 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 572 .loc 1 4155 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 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 581 .loc 1 4130 59 discriminator 1 view .LVU166 582 002e 8368 ldr r3, [r0, #8] 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 583 .loc 1 4130 44 discriminator 1 view .LVU167 584 0030 B3F5004F cmp r3, #32768 585 0034 02D0 beq .L46 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 86 586 .loc 1 4131 48 view .LVU168 587 0036 B3F5806F cmp r3, #1024 588 003a EAD1 bne .L45 589 .L46: 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 590 .loc 1 4134 5 is_stmt 1 view .LVU169 591 003c 2268 ldr r2, [r4] 592 .LVL35: 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 593 .loc 1 4134 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: 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 600 .loc 1 4140 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] 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 604 .loc 1 4141 5 view .LVU172 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 605 .loc 1 4141 12 is_stmt 0 view .LVU173 606 0050 0320 movs r0, #3 607 0052 EAE7 b .L48 608 .L53: 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 609 .loc 1 4144 59 discriminator 1 view .LVU174 610 0054 A368 ldr r3, [r4, #8] 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 611 .loc 1 4144 44 discriminator 1 view .LVU175 612 0056 B3F5004F cmp r3, #32768 613 005a 02D0 beq .L49 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 614 .loc 1 4145 48 view .LVU176 615 005c B3F5806F cmp r3, #1024 616 0060 E3D1 bne .L48 617 .L49: 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 618 .loc 1 4148 5 is_stmt 1 view .LVU177 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 619 .loc 1 4148 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: 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 627 .loc 1 4148 8 discriminator 1 view .LVU179 628 0072 0028 cmp r0, #0 629 0074 D9D0 beq .L48 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 630 .loc 1 4150 7 is_stmt 1 view .LVU180 ARM GAS /tmp/ccNym1yT.s page 87 631 0076 236E ldr r3, [r4, #96] 632 0078 43F02003 orr r3, r3, #32 633 007c 2366 str r3, [r4, #96] 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 634 .loc 1 4151 7 view .LVU181 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 635 .loc 1 4151 14 is_stmt 0 view .LVU182 636 007e 0320 movs r0, #3 637 0080 D3E7 b .L48 638 .cfi_endproc 639 .LFE172: 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 .LFB177: 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RXTX transaction. 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi) 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management */ 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else ARM GAS /tmp/ccNym1yT.s page 88 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RX transaction. 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi) 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; ARM GAS /tmp/ccNym1yT.s page 89 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the TX transaction. 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE and ERR interrupt */ 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ ARM GAS /tmp/ccNym1yT.s page 90 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received is not read */ 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Rx transaction. 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi) 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 650 .loc 1 4380 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 4380 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 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 662 .loc 1 4381 3 is_stmt 1 view .LVU185 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); ARM GAS /tmp/ccNym1yT.s page 91 663 .loc 1 4384 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] 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 668 .loc 1 4386 3 view .LVU187 669 .loc 1 4386 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 4386 31 view .LVU189 676 001c 6422 movs r2, #100 677 001e 02FB03F3 mul r3, r2, r3 678 .loc 1 4386 9 view .LVU190 679 0022 0393 str r3, [sp, #12] 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 680 .loc 1 4389 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: 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 686 .loc 1 4392 3 view .LVU192 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 687 .loc 1 4394 5 view .LVU193 688 .loc 1 4394 15 is_stmt 0 view .LVU194 689 002e 039B ldr r3, [sp, #12] 690 .loc 1 4394 8 view .LVU195 691 0030 43B1 cbz r3, .L61 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 692 .loc 1 4399 5 is_stmt 1 view .LVU196 693 .loc 1 4399 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] 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 697 .loc 1 4400 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: ARM GAS /tmp/ccNym1yT.s page 92 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 704 .loc 1 4396 7 view .LVU199 705 0044 236E ldr r3, [r4, #96] 706 0046 43F04003 orr r3, r3, #64 707 004a 2366 str r3, [r4, #96] 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 708 .loc 1 4397 7 view .LVU200 709 .L56: 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4403: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 4403 3 view .LVU201 711 .loc 1 4403 7 is_stmt 0 view .LVU202 712 004c FFF7FEFF bl HAL_GetTick 713 .LVL39: 714 .loc 1 4403 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 4403 6 discriminator 2 view .LVU204 723 005e 08B1 cbz r0, .L58 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 724 .loc 1 4405 5 is_stmt 1 view .LVU205 725 .loc 1 4405 21 is_stmt 0 view .LVU206 726 0060 4023 movs r3, #64 727 0062 2366 str r3, [r4, #96] 728 .L58: 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4409: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 4409 3 is_stmt 1 view .LVU207 730 .loc 1 4409 7 is_stmt 0 view .LVU208 731 0064 FFF7FEFF bl HAL_GetTick 732 .LVL41: 733 .loc 1 4409 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 4409 6 discriminator 2 view .LVU210 742 0078 08B1 cbz r0, .L59 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 743 .loc 1 4411 5 is_stmt 1 view .LVU211 744 .loc 1 4411 21 is_stmt 0 view .LVU212 745 007a 4023 movs r3, #64 746 007c 2366 str r3, [r4, #96] 747 .L59: ARM GAS /tmp/ccNym1yT.s page 93 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 748 .loc 1 4414 3 is_stmt 1 view .LVU213 749 .loc 1 4414 15 is_stmt 0 view .LVU214 750 007e 0723 movs r3, #7 751 0080 84F85D30 strb r3, [r4, #93] 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 752 .loc 1 4415 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 4415 1 view .LVU216 760 .align 2 761 .L62: 762 0088 00000000 .word SystemCoreClock 763 008c F1197605 .word 91625969 764 .cfi_endproc 765 .LFE177: 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 .LFB178: 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 **** * @brief Handle abort a Tx or Rx/Tx transaction. 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi) 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 776 .loc 1 4424 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 4424 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 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 788 .loc 1 4425 3 is_stmt 1 view .LVU219 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 789 .loc 1 4427 3 view .LVU220 790 .loc 1 4427 56 is_stmt 0 view .LVU221 ARM GAS /tmp/ccNym1yT.s page 94 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 4427 31 view .LVU222 797 0012 6422 movs r2, #100 798 0014 02FB03F3 mul r3, r2, r3 799 .loc 1 4427 9 view .LVU223 800 0018 0393 str r3, [sp, #12] 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE interrupt */ 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE)); 801 .loc 1 4430 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: 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXEIE is disabled */ 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 807 .loc 1 4433 3 view .LVU225 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 808 .loc 1 4435 5 view .LVU226 809 .loc 1 4435 15 is_stmt 0 view .LVU227 810 0024 039B ldr r3, [sp, #12] 811 .loc 1 4435 8 view .LVU228 812 0026 43B1 cbz r3, .L76 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 813 .loc 1 4440 5 is_stmt 1 view .LVU229 814 .loc 1 4440 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] 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)); 818 .loc 1 4441 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: 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 825 .loc 1 4437 7 view .LVU232 826 003a 236E ldr r3, [r4, #96] 827 003c 43F04003 orr r3, r3, #64 828 0040 2366 str r3, [r4, #96] 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 829 .loc 1 4438 7 view .LVU233 830 .L66: 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 95 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 831 .loc 1 4443 3 view .LVU234 832 .loc 1 4443 7 is_stmt 0 view .LVU235 833 0042 FFF7FEFF bl HAL_GetTick 834 .LVL45: 835 .loc 1 4443 7 view .LVU236 836 0046 0246 mov r2, r0 837 .loc 1 4443 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 4443 6 discriminator 2 view .LVU238 843 0050 08B1 cbz r0, .L68 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 844 .loc 1 4445 5 is_stmt 1 view .LVU239 845 .loc 1 4445 21 is_stmt 0 view .LVU240 846 0052 4023 movs r3, #64 847 0054 2366 str r3, [r4, #96] 848 .L68: 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 849 .loc 1 4449 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] 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4452: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 4452 3 view .LVU242 855 .loc 1 4452 7 is_stmt 0 view .LVU243 856 0060 FFF7FEFF bl HAL_GetTick 857 .LVL47: 858 .loc 1 4452 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 4452 6 discriminator 2 view .LVU245 867 0074 08B1 cbz r0, .L69 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 868 .loc 1 4454 5 is_stmt 1 view .LVU246 869 .loc 1 4454 21 is_stmt 0 view .LVU247 870 0076 4023 movs r3, #64 871 0078 2366 str r3, [r4, #96] 872 .L69: 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check case of Full-Duplex Mode and disable directly RXNEIE interrupt */ ARM GAS /tmp/ccNym1yT.s page 96 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 873 .loc 1 4458 3 is_stmt 1 view .LVU248 874 .loc 1 4458 7 is_stmt 0 view .LVU249 875 007a 2368 ldr r3, [r4] 876 007c 5A68 ldr r2, [r3, #4] 877 .loc 1 4458 6 view .LVU250 878 007e 12F0400F tst r2, #64 879 0082 2BD0 beq .L70 4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 880 .loc 1 4461 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: 4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 885 .loc 1 4464 5 view .LVU252 4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 886 .loc 1 4466 7 view .LVU253 887 .loc 1 4466 17 is_stmt 0 view .LVU254 888 008c 039B ldr r3, [sp, #12] 889 .loc 1 4466 10 view .LVU255 890 008e 43B1 cbz r3, .L77 4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 891 .loc 1 4471 7 is_stmt 1 view .LVU256 892 .loc 1 4471 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] 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 896 .loc 1 4472 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: 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 903 .loc 1 4468 9 view .LVU259 904 00a2 236E ldr r3, [r4, #96] 905 00a4 43F04003 orr r3, r3, #64 906 00a8 2366 str r3, [r4, #96] 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 907 .loc 1 4469 9 view .LVU260 908 .L72: 4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4475: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 4475 5 view .LVU261 ARM GAS /tmp/ccNym1yT.s page 97 910 .loc 1 4475 9 is_stmt 0 view .LVU262 911 00aa FFF7FEFF bl HAL_GetTick 912 .LVL49: 913 .loc 1 4475 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 4475 8 discriminator 2 view .LVU264 922 00bc 08B1 cbz r0, .L74 4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 923 .loc 1 4477 7 is_stmt 1 view .LVU265 924 .loc 1 4477 23 is_stmt 0 view .LVU266 925 00be 4023 movs r3, #64 926 00c0 2366 str r3, [r4, #96] 927 .L74: 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4481: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 4481 5 is_stmt 1 view .LVU267 929 .loc 1 4481 9 is_stmt 0 view .LVU268 930 00c2 FFF7FEFF bl HAL_GetTick 931 .LVL51: 932 .loc 1 4481 9 discriminator 1 view .LVU269 933 00c6 0090 str r0, [sp] 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 4481 8 discriminator 2 view .LVU270 941 00d6 08B1 cbz r0, .L70 4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 942 .loc 1 4483 7 is_stmt 1 view .LVU271 943 .loc 1 4483 23 is_stmt 0 view .LVU272 944 00d8 4023 movs r3, #64 945 00da 2366 str r3, [r4, #96] 946 .L70: 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 947 .loc 1 4486 3 is_stmt 1 view .LVU273 948 .loc 1 4486 15 is_stmt 0 view .LVU274 949 00dc 0723 movs r3, #7 950 00de 84F85D30 strb r3, [r4, #93] 4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 951 .loc 1 4487 1 view .LVU275 952 00e2 04B0 add sp, sp, #16 953 .cfi_def_cfa_offset 8 954 @ sp needed ARM GAS /tmp/ccNym1yT.s page 98 955 00e4 10BD pop {r4, pc} 956 .LVL53: 957 .L79: 958 .loc 1 4487 1 view .LVU276 959 00e6 00BF .align 2 960 .L78: 961 00e8 00000000 .word SystemCoreClock 962 00ec F1197605 .word 91625969 963 .cfi_endproc 964 .LFE178: 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 .LFB125: 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 984 .cfi_endproc 985 .LFE125: 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 .LFB123: 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} ARM GAS /tmp/ccNym1yT.s page 99 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 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 ARM GAS /tmp/ccNym1yT.s page 100 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 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 ARM GAS /tmp/ccNym1yT.s page 101 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 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] ARM GAS /tmp/ccNym1yT.s page 102 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] 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 ARM GAS /tmp/ccNym1yT.s page 103 1178 .LFE123: 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 .LFB126: 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 .LFE126: 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: 1209 .LVL65: 1210 .LFB124: 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] ARM GAS /tmp/ccNym1yT.s page 104 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 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 .LFE124: 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 .LFB127: 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; ARM GAS /tmp/ccNym1yT.s page 105 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 **** 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 **** ARM GAS /tmp/ccNym1yT.s page 106 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; 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 ARM GAS /tmp/ccNym1yT.s page 107 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 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 ARM GAS /tmp/ccNym1yT.s page 108 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 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] ARM GAS /tmp/ccNym1yT.s page 109 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] 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--; ARM GAS /tmp/ccNym1yT.s page 110 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] 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 ARM GAS /tmp/ccNym1yT.s page 111 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 **** } 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--; ARM GAS /tmp/ccNym1yT.s page 112 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 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 ARM GAS /tmp/ccNym1yT.s page 113 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 **** { 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] ARM GAS /tmp/ccNym1yT.s page 114 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 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 **** } ARM GAS /tmp/ccNym1yT.s page 115 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 **** } 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; ARM GAS /tmp/ccNym1yT.s page 116 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 1738 01fc F9E7 b .L104 1739 .cfi_endproc 1740 .LFE127: 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 .LFB129: 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 ARM GAS /tmp/ccNym1yT.s page 117 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 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: ARM GAS /tmp/ccNym1yT.s page 118 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 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 **** { ARM GAS /tmp/ccNym1yT.s page 119 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 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 **** { ARM GAS /tmp/ccNym1yT.s page 120 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 **** { 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 **** { ARM GAS /tmp/ccNym1yT.s page 121 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 **** 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: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1948 .loc 1 1409 19 view .LVU646 1949 00d8 0127 movs r7, #1 1950 .LVL97: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1951 .loc 1 1409 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 ARM GAS /tmp/ccNym1yT.s page 122 1962 00e6 DAE7 b .L141 1963 .LVL100: 1964 .L174: 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1965 .loc 1 1382 9 is_stmt 1 view .LVU650 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1966 .loc 1 1382 48 is_stmt 0 view .LVU651 1967 00e8 A26B ldr r2, [r4, #56] 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1968 .loc 1 1382 30 view .LVU652 1969 00ea 1288 ldrh r2, [r2] 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1970 .loc 1 1382 28 view .LVU653 1971 00ec DA60 str r2, [r3, #12] 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1972 .loc 1 1383 9 is_stmt 1 view .LVU654 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1973 .loc 1 1383 13 is_stmt 0 view .LVU655 1974 00ee A36B ldr r3, [r4, #56] 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1975 .loc 1 1383 26 view .LVU656 1976 00f0 0233 adds r3, r3, #2 1977 00f2 A363 str r3, [r4, #56] 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1978 .loc 1 1384 9 is_stmt 1 view .LVU657 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1979 .loc 1 1384 13 is_stmt 0 view .LVU658 1980 00f4 E38F ldrh r3, [r4, #62] 1981 00f6 9BB2 uxth r3, r3 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1982 .loc 1 1384 26 view .LVU659 1983 00f8 013B subs r3, r3, #1 1984 00fa 9BB2 uxth r3, r3 1985 00fc E387 strh r3, [r4, #62] @ movhi 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1986 .loc 1 1386 9 is_stmt 1 view .LVU660 1987 .LVL101: 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1988 .loc 1 1386 19 is_stmt 0 view .LVU661 1989 00fe 0027 movs r7, #0 1990 .LVL102: 1991 .L147: 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1992 .loc 1 1403 7 is_stmt 1 view .LVU662 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1993 .loc 1 1403 12 is_stmt 0 view .LVU663 1994 0100 2368 ldr r3, [r4] 1995 0102 9A68 ldr r2, [r3, #8] 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1996 .loc 1 1403 10 view .LVU664 1997 0104 12F0010F tst r2, #1 1998 0108 11D0 beq .L148 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1999 .loc 1 1403 61 discriminator 1 view .LVU665 2000 010a B4F84620 ldrh r2, [r4, #70] 2001 010e 92B2 uxth r2, r2 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 123 2002 .loc 1 1403 53 discriminator 1 view .LVU666 2003 0110 6AB1 cbz r2, .L148 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2004 .loc 1 1405 9 is_stmt 1 view .LVU667 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2005 .loc 1 1405 67 is_stmt 0 view .LVU668 2006 0112 DA68 ldr r2, [r3, #12] 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2007 .loc 1 1405 27 view .LVU669 2008 0114 236C ldr r3, [r4, #64] 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2009 .loc 1 1405 41 view .LVU670 2010 0116 1A80 strh r2, [r3] @ movhi 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2011 .loc 1 1406 9 is_stmt 1 view .LVU671 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2012 .loc 1 1406 13 is_stmt 0 view .LVU672 2013 0118 236C ldr r3, [r4, #64] 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2014 .loc 1 1406 26 view .LVU673 2015 011a 0233 adds r3, r3, #2 2016 011c 2364 str r3, [r4, #64] 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2017 .loc 1 1407 9 is_stmt 1 view .LVU674 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2018 .loc 1 1407 13 is_stmt 0 view .LVU675 2019 011e B4F84630 ldrh r3, [r4, #70] 2020 0122 9BB2 uxth r3, r3 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 2021 .loc 1 1407 26 view .LVU676 2022 0124 013B subs r3, r3, #1 2023 0126 9BB2 uxth r3, r3 2024 0128 A4F84630 strh r3, [r4, #70] @ movhi 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2025 .loc 1 1409 9 is_stmt 1 view .LVU677 2026 .LVL103: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2027 .loc 1 1409 19 is_stmt 0 view .LVU678 2028 012c 0127 movs r7, #1 2029 .LVL104: 2030 .L148: 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2031 .loc 1 1411 7 is_stmt 1 view .LVU679 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2032 .loc 1 1411 13 is_stmt 0 view .LVU680 2033 012e FFF7FEFF bl HAL_GetTick 2034 .LVL105: 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2035 .loc 1 1411 27 discriminator 1 view .LVU681 2036 0132 831B subs r3, r0, r6 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2037 .loc 1 1411 10 discriminator 1 view .LVU682 2038 0134 AB42 cmp r3, r5 2039 0136 02D3 bcc .L146 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2040 .loc 1 1411 53 discriminator 1 view .LVU683 2041 0138 B5F1FF3F cmp r5, #-1 ARM GAS /tmp/ccNym1yT.s page 124 2042 013c 14D1 bne .L173 2043 .LVL106: 2044 .L146: 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2045 .loc 1 1377 37 is_stmt 1 view .LVU684 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2046 .loc 1 1377 17 is_stmt 0 view .LVU685 2047 013e E38F ldrh r3, [r4, #62] 2048 0140 9BB2 uxth r3, r3 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2049 .loc 1 1377 37 view .LVU686 2050 0142 2BB9 cbnz r3, .L149 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2051 .loc 1 1377 45 discriminator 1 view .LVU687 2052 0144 B4F84630 ldrh r3, [r4, #70] 2053 0148 9BB2 uxth r3, r3 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2054 .loc 1 1377 37 discriminator 1 view .LVU688 2055 014a 002B cmp r3, #0 2056 014c 00F0AB80 beq .L150 2057 .L149: 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2058 .loc 1 1380 7 is_stmt 1 view .LVU689 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2059 .loc 1 1380 12 is_stmt 0 view .LVU690 2060 0150 2368 ldr r3, [r4] 2061 0152 9A68 ldr r2, [r3, #8] 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2062 .loc 1 1380 10 view .LVU691 2063 0154 12F0020F tst r2, #2 2064 0158 D2D0 beq .L147 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2065 .loc 1 1380 60 discriminator 1 view .LVU692 2066 015a E28F ldrh r2, [r4, #62] 2067 015c 92B2 uxth r2, r2 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2068 .loc 1 1380 52 discriminator 1 view .LVU693 2069 015e 002A cmp r2, #0 2070 0160 CED0 beq .L147 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2071 .loc 1 1380 80 discriminator 2 view .LVU694 2072 0162 002F cmp r7, #0 2073 0164 CCD0 beq .L147 2074 0166 BFE7 b .L174 2075 .L173: 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2076 .loc 1 1413 9 is_stmt 1 view .LVU695 2077 .LVL107: 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2078 .loc 1 1414 9 view .LVU696 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2079 .loc 1 1414 21 is_stmt 0 view .LVU697 2080 0168 0123 movs r3, #1 2081 016a 84F85D30 strb r3, [r4, #93] 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2082 .loc 1 1415 9 is_stmt 1 view .LVU698 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; ARM GAS /tmp/ccNym1yT.s page 125 2083 .loc 1 1413 19 is_stmt 0 view .LVU699 2084 016e 0320 movs r0, #3 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2085 .loc 1 1415 9 view .LVU700 2086 0170 A9E0 b .L137 2087 .LVL108: 2088 .L143: 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2089 .loc 1 1422 5 is_stmt 1 view .LVU701 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2090 .loc 1 1422 20 is_stmt 0 view .LVU702 2091 0172 6368 ldr r3, [r4, #4] 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2092 .loc 1 1422 8 view .LVU703 2093 0174 0BB1 cbz r3, .L151 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2094 .loc 1 1422 45 discriminator 1 view .LVU704 2095 0176 012F cmp r7, #1 2096 0178 0FD1 bne .L152 2097 .L151: 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2098 .loc 1 1424 7 is_stmt 1 view .LVU705 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2099 .loc 1 1424 15 is_stmt 0 view .LVU706 2100 017a E38F ldrh r3, [r4, #62] 2101 017c 9BB2 uxth r3, r3 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2102 .loc 1 1424 10 view .LVU707 2103 017e 012B cmp r3, #1 2104 0180 0DD9 bls .L153 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2105 .loc 1 1426 9 is_stmt 1 view .LVU708 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2106 .loc 1 1426 48 is_stmt 0 view .LVU709 2107 0182 A26B ldr r2, [r4, #56] 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2108 .loc 1 1426 13 view .LVU710 2109 0184 2368 ldr r3, [r4] 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2110 .loc 1 1426 30 view .LVU711 2111 0186 1288 ldrh r2, [r2] 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2112 .loc 1 1426 28 view .LVU712 2113 0188 DA60 str r2, [r3, #12] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2114 .loc 1 1427 9 is_stmt 1 view .LVU713 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2115 .loc 1 1427 13 is_stmt 0 view .LVU714 2116 018a A36B ldr r3, [r4, #56] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2117 .loc 1 1427 26 view .LVU715 2118 018c 0233 adds r3, r3, #2 2119 018e A363 str r3, [r4, #56] 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2120 .loc 1 1428 9 is_stmt 1 view .LVU716 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2121 .loc 1 1428 13 is_stmt 0 view .LVU717 ARM GAS /tmp/ccNym1yT.s page 126 2122 0190 E38F ldrh r3, [r4, #62] 2123 0192 9BB2 uxth r3, r3 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2124 .loc 1 1428 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: 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2129 .loc 1 1505 19 view .LVU719 2130 019a 0127 movs r7, #1 2131 .LVL109: 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2132 .loc 1 1505 19 view .LVU720 2133 019c 49E0 b .L160 2134 .LVL110: 2135 .L153: 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2136 .loc 1 1432 9 is_stmt 1 view .LVU721 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2137 .loc 1 1432 54 is_stmt 0 view .LVU722 2138 019e A26B ldr r2, [r4, #56] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2139 .loc 1 1432 31 view .LVU723 2140 01a0 2368 ldr r3, [r4] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2141 .loc 1 1432 49 view .LVU724 2142 01a2 1278 ldrb r2, [r2] @ zero_extendqisi2 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2143 .loc 1 1432 46 view .LVU725 2144 01a4 1A73 strb r2, [r3, #12] 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2145 .loc 1 1433 9 is_stmt 1 view .LVU726 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2146 .loc 1 1433 13 is_stmt 0 view .LVU727 2147 01a6 A36B ldr r3, [r4, #56] 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2148 .loc 1 1433 25 view .LVU728 2149 01a8 0133 adds r3, r3, #1 2150 01aa A363 str r3, [r4, #56] 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2151 .loc 1 1434 9 is_stmt 1 view .LVU729 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2152 .loc 1 1434 13 is_stmt 0 view .LVU730 2153 01ac E38F ldrh r3, [r4, #62] 2154 01ae 9BB2 uxth r3, r3 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2155 .loc 1 1434 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: 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2162 .loc 1 1455 9 is_stmt 1 view .LVU732 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 127 2163 .loc 1 1455 17 is_stmt 0 view .LVU733 2164 01b8 E28F ldrh r2, [r4, #62] 2165 01ba 92B2 uxth r2, r2 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2166 .loc 1 1455 12 view .LVU734 2167 01bc 012A cmp r2, #1 2168 01be 0CD9 bls .L155 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2169 .loc 1 1457 11 is_stmt 1 view .LVU735 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2170 .loc 1 1457 50 is_stmt 0 view .LVU736 2171 01c0 A26B ldr r2, [r4, #56] 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2172 .loc 1 1457 32 view .LVU737 2173 01c2 1288 ldrh r2, [r2] 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 2174 .loc 1 1457 30 view .LVU738 2175 01c4 DA60 str r2, [r3, #12] 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2176 .loc 1 1458 11 is_stmt 1 view .LVU739 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2177 .loc 1 1458 15 is_stmt 0 view .LVU740 2178 01c6 A36B ldr r3, [r4, #56] 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 2179 .loc 1 1458 28 view .LVU741 2180 01c8 0233 adds r3, r3, #2 2181 01ca A363 str r3, [r4, #56] 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2182 .loc 1 1459 11 is_stmt 1 view .LVU742 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2183 .loc 1 1459 15 is_stmt 0 view .LVU743 2184 01cc E38F ldrh r3, [r4, #62] 2185 01ce 9BB2 uxth r3, r3 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2186 .loc 1 1459 29 view .LVU744 2187 01d0 023B subs r3, r3, #2 2188 01d2 9BB2 uxth r3, r3 2189 01d4 E387 strh r3, [r4, #62] @ movhi 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2190 .loc 1 1468 19 view .LVU745 2191 01d6 0027 movs r7, #0 2192 .LVL112: 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2193 .loc 1 1468 19 view .LVU746 2194 01d8 3DE0 b .L154 2195 .LVL113: 2196 .L155: 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2197 .loc 1 1463 11 is_stmt 1 view .LVU747 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2198 .loc 1 1463 56 is_stmt 0 view .LVU748 2199 01da A26B ldr r2, [r4, #56] 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2200 .loc 1 1463 51 view .LVU749 2201 01dc 1278 ldrb r2, [r2] @ zero_extendqisi2 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 2202 .loc 1 1463 48 view .LVU750 ARM GAS /tmp/ccNym1yT.s page 128 2203 01de 1A73 strb r2, [r3, #12] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2204 .loc 1 1464 11 is_stmt 1 view .LVU751 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2205 .loc 1 1464 15 is_stmt 0 view .LVU752 2206 01e0 A36B ldr r3, [r4, #56] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 2207 .loc 1 1464 27 view .LVU753 2208 01e2 0133 adds r3, r3, #1 2209 01e4 A363 str r3, [r4, #56] 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2210 .loc 1 1465 11 is_stmt 1 view .LVU754 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2211 .loc 1 1465 15 is_stmt 0 view .LVU755 2212 01e6 E38F ldrh r3, [r4, #62] 2213 01e8 9BB2 uxth r3, r3 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2214 .loc 1 1465 28 view .LVU756 2215 01ea 013B subs r3, r3, #1 2216 01ec 9BB2 uxth r3, r3 2217 01ee E387 strh r3, [r4, #62] @ movhi 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2218 .loc 1 1468 19 view .LVU757 2219 01f0 0027 movs r7, #0 2220 .LVL114: 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2221 .loc 1 1468 19 view .LVU758 2222 01f2 30E0 b .L154 2223 .LVL115: 2224 .L176: 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2225 .loc 1 1495 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] 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2230 .loc 1 1505 19 is_stmt 0 view .LVU760 2231 01fe 0127 movs r7, #1 2232 .LVL116: 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2233 .loc 1 1505 19 view .LVU761 2234 0200 0DE0 b .L156 2235 .LVL117: 2236 .L157: 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2237 .loc 1 1500 11 is_stmt 1 view .LVU762 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2238 .loc 1 1500 28 is_stmt 0 view .LVU763 2239 0202 226C ldr r2, [r4, #64] 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2240 .loc 1 1500 44 view .LVU764 2241 0204 1B7B ldrb r3, [r3, #12] @ zero_extendqisi2 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 2242 .loc 1 1500 42 view .LVU765 2243 0206 1370 strb r3, [r2] 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; ARM GAS /tmp/ccNym1yT.s page 129 2244 .loc 1 1501 11 is_stmt 1 view .LVU766 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2245 .loc 1 1501 15 is_stmt 0 view .LVU767 2246 0208 236C ldr r3, [r4, #64] 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 2247 .loc 1 1501 27 view .LVU768 2248 020a 0133 adds r3, r3, #1 2249 020c 2364 str r3, [r4, #64] 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2250 .loc 1 1502 11 is_stmt 1 view .LVU769 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2251 .loc 1 1502 15 is_stmt 0 view .LVU770 2252 020e B4F84630 ldrh r3, [r4, #70] 2253 0212 9BB2 uxth r3, r3 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2254 .loc 1 1502 28 view .LVU771 2255 0214 013B subs r3, r3, #1 2256 0216 9BB2 uxth r3, r3 2257 0218 A4F84630 strh r3, [r4, #70] @ movhi 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2258 .loc 1 1505 19 view .LVU772 2259 021c 0127 movs r7, #1 2260 .LVL118: 2261 .L156: 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2262 .loc 1 1507 7 is_stmt 1 view .LVU773 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2263 .loc 1 1507 14 is_stmt 0 view .LVU774 2264 021e FFF7FEFF bl HAL_GetTick 2265 .LVL119: 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2266 .loc 1 1507 28 discriminator 1 view .LVU775 2267 0222 801B subs r0, r0, r6 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2268 .loc 1 1507 10 discriminator 1 view .LVU776 2269 0224 A842 cmp r0, r5 2270 0226 02D3 bcc .L158 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2271 .loc 1 1507 54 discriminator 1 view .LVU777 2272 0228 B5F1FF3F cmp r5, #-1 2273 022c 36D1 bne .L159 2274 .L158: 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2275 .loc 1 1507 87 discriminator 3 view .LVU778 2276 022e 002D cmp r5, #0 2277 0230 34D0 beq .L159 2278 .LVL120: 2279 .L160: 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2280 .loc 1 1450 37 is_stmt 1 view .LVU779 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2281 .loc 1 1450 17 is_stmt 0 view .LVU780 2282 0232 E38F ldrh r3, [r4, #62] 2283 0234 9BB2 uxth r3, r3 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2284 .loc 1 1450 37 view .LVU781 2285 0236 23B9 cbnz r3, .L161 ARM GAS /tmp/ccNym1yT.s page 130 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2286 .loc 1 1450 45 discriminator 1 view .LVU782 2287 0238 B4F84630 ldrh r3, [r4, #70] 2288 023c 9BB2 uxth r3, r3 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2289 .loc 1 1450 37 discriminator 1 view .LVU783 2290 023e 002B cmp r3, #0 2291 0240 31D0 beq .L150 2292 .L161: 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2293 .loc 1 1453 7 is_stmt 1 view .LVU784 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2294 .loc 1 1453 12 is_stmt 0 view .LVU785 2295 0242 2368 ldr r3, [r4] 2296 0244 9A68 ldr r2, [r3, #8] 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2297 .loc 1 1453 10 view .LVU786 2298 0246 12F0020F tst r2, #2 2299 024a 04D0 beq .L154 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2300 .loc 1 1453 60 discriminator 1 view .LVU787 2301 024c E28F ldrh r2, [r4, #62] 2302 024e 92B2 uxth r2, r2 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2303 .loc 1 1453 52 discriminator 1 view .LVU788 2304 0250 0AB1 cbz r2, .L154 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2305 .loc 1 1453 80 discriminator 2 view .LVU789 2306 0252 002F cmp r7, #0 2307 0254 B0D1 bne .L175 2308 .LVL121: 2309 .L154: 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2310 .loc 1 1485 7 is_stmt 1 view .LVU790 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2311 .loc 1 1485 12 is_stmt 0 view .LVU791 2312 0256 2368 ldr r3, [r4] 2313 0258 9A68 ldr r2, [r3, #8] 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2314 .loc 1 1485 10 view .LVU792 2315 025a 12F0010F tst r2, #1 2316 025e DED0 beq .L156 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2317 .loc 1 1485 61 discriminator 1 view .LVU793 2318 0260 B4F84620 ldrh r2, [r4, #70] 2319 0264 92B2 uxth r2, r2 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2320 .loc 1 1485 53 discriminator 1 view .LVU794 2321 0266 002A cmp r2, #0 2322 0268 D9D0 beq .L156 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2323 .loc 1 1487 9 is_stmt 1 view .LVU795 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2324 .loc 1 1487 17 is_stmt 0 view .LVU796 2325 026a B4F84620 ldrh r2, [r4, #70] 2326 026e 92B2 uxth r2, r2 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 131 2327 .loc 1 1487 12 view .LVU797 2328 0270 012A cmp r2, #1 2329 0272 C6D9 bls .L157 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2330 .loc 1 1489 11 is_stmt 1 view .LVU798 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2331 .loc 1 1489 69 is_stmt 0 view .LVU799 2332 0274 DA68 ldr r2, [r3, #12] 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2333 .loc 1 1489 29 view .LVU800 2334 0276 236C ldr r3, [r4, #64] 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 2335 .loc 1 1489 43 view .LVU801 2336 0278 1A80 strh r2, [r3] @ movhi 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2337 .loc 1 1490 11 is_stmt 1 view .LVU802 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2338 .loc 1 1490 15 is_stmt 0 view .LVU803 2339 027a 236C ldr r3, [r4, #64] 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 2340 .loc 1 1490 28 view .LVU804 2341 027c 0233 adds r3, r3, #2 2342 027e 2364 str r3, [r4, #64] 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2343 .loc 1 1491 11 is_stmt 1 view .LVU805 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2344 .loc 1 1491 15 is_stmt 0 view .LVU806 2345 0280 B4F84630 ldrh r3, [r4, #70] 2346 0284 9BB2 uxth r3, r3 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 2347 .loc 1 1491 29 view .LVU807 2348 0286 023B subs r3, r3, #2 2349 0288 9BB2 uxth r3, r3 2350 028a A4F84630 strh r3, [r4, #70] @ movhi 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2351 .loc 1 1492 11 is_stmt 1 view .LVU808 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2352 .loc 1 1492 19 is_stmt 0 view .LVU809 2353 028e B4F84630 ldrh r3, [r4, #70] 2354 0292 9BB2 uxth r3, r3 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2355 .loc 1 1492 14 view .LVU810 2356 0294 012B cmp r3, #1 2357 0296 ADD9 bls .L176 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2358 .loc 1 1505 19 view .LVU811 2359 0298 0127 movs r7, #1 2360 .LVL122: 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2361 .loc 1 1505 19 view .LVU812 2362 029a C0E7 b .L156 2363 .LVL123: 2364 .L159: 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2365 .loc 1 1509 9 is_stmt 1 view .LVU813 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2366 .loc 1 1510 9 view .LVU814 ARM GAS /tmp/ccNym1yT.s page 132 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2367 .loc 1 1510 21 is_stmt 0 view .LVU815 2368 029c 0123 movs r3, #1 2369 029e 84F85D30 strb r3, [r4, #93] 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2370 .loc 1 1511 9 is_stmt 1 view .LVU816 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2371 .loc 1 1509 19 is_stmt 0 view .LVU817 2372 02a2 0320 movs r0, #3 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2373 .loc 1 1511 9 view .LVU818 2374 02a4 0FE0 b .L137 2375 .LVL124: 2376 .L150: 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2377 .loc 1 1574 3 is_stmt 1 view .LVU819 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2378 .loc 1 1574 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: 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2384 .loc 1 1574 6 discriminator 1 view .LVU821 2385 02b0 10B1 cbz r0, .L162 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2386 .loc 1 1576 5 is_stmt 1 view .LVU822 2387 .LVL126: 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2388 .loc 1 1577 5 view .LVU823 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2389 .loc 1 1577 21 is_stmt 0 view .LVU824 2390 02b2 2023 movs r3, #32 2391 02b4 2366 str r3, [r4, #96] 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2392 .loc 1 1576 15 view .LVU825 2393 02b6 0120 movs r0, #1 2394 .LVL127: 2395 .L162: 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2396 .loc 1 1580 3 is_stmt 1 view .LVU826 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2397 .loc 1 1580 11 is_stmt 0 view .LVU827 2398 02b8 236E ldr r3, [r4, #96] 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2399 .loc 1 1580 6 view .LVU828 2400 02ba 9BB9 cbnz r3, .L171 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2401 .loc 1 1586 5 is_stmt 1 view .LVU829 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2402 .loc 1 1586 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: ARM GAS /tmp/ccNym1yT.s page 133 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: 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2412 .loc 1 1590 3 is_stmt 1 view .LVU832 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2413 .loc 1 1590 3 view .LVU833 2414 02c6 0023 movs r3, #0 2415 02c8 84F85C30 strb r3, [r4, #92] 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2416 .loc 1 1590 3 view .LVU834 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2417 .loc 1 1591 3 view .LVU835 2418 .LVL130: 2419 .L135: 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2420 .loc 1 1592 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: 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: ARM GAS /tmp/ccNym1yT.s page 134 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: 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2459 .loc 1 1582 15 view .LVU847 2460 02e4 0120 movs r0, #1 2461 .LVL142: 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2462 .loc 1 1582 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 .LFE129: 2474 .section .text.HAL_SPI_Receive,"ax",%progbits 2475 .align 1 2476 .global HAL_SPI_Receive 2477 .syntax unified 2478 .thumb 2479 .thumb_func 2481 HAL_SPI_Receive: 2482 .LVL145: 2483 .LFB128: 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; ARM GAS /tmp/ccNym1yT.s page 135 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 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 ARM GAS /tmp/ccNym1yT.s page 136 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 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 **** { ARM GAS /tmp/ccNym1yT.s page 137 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] 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 ARM GAS /tmp/ccNym1yT.s page 138 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 **** } 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 ARM GAS /tmp/ccNym1yT.s page 139 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 **** { 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] ARM GAS /tmp/ccNym1yT.s page 140 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 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 **** { ARM GAS /tmp/ccNym1yT.s page 141 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--; 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 ARM GAS /tmp/ccNym1yT.s page 142 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: 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 ARM GAS /tmp/ccNym1yT.s page 143 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 .LFE128: 2848 .section .text.HAL_SPI_Transmit_IT,"ax",%progbits 2849 .align 1 2850 .global HAL_SPI_Transmit_IT 2851 .syntax unified 2852 .thumb 2853 .thumb_func 2855 HAL_SPI_Transmit_IT: 2856 .LVL166: 2857 .LFB130: 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2858 .loc 1 1603 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. 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2863 .loc 1 1604 3 view .LVU992 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2864 .loc 1 1607 3 view .LVU993 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2865 .loc 1 1610 3 view .LVU994 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2866 .loc 1 1610 6 is_stmt 0 view .LVU995 2867 0000 0029 cmp r1, #0 2868 0002 49D0 beq .L210 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2869 .loc 1 1603 1 view .LVU996 2870 0004 10B4 push {r4} 2871 .cfi_def_cfa_offset 4 2872 .cfi_offset 4, -4 ARM GAS /tmp/ccNym1yT.s page 144 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2873 .loc 1 1610 23 discriminator 1 view .LVU997 2874 0006 002A cmp r2, #0 2875 0008 48D0 beq .L211 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2876 .loc 1 1616 3 is_stmt 1 view .LVU998 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2877 .loc 1 1616 11 is_stmt 0 view .LVU999 2878 000a 90F85D30 ldrb r3, [r0, #93] @ zero_extendqisi2 2879 000e DBB2 uxtb r3, r3 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2880 .loc 1 1616 6 view .LVU1000 2881 0010 012B cmp r3, #1 2882 0012 45D1 bne .L212 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2883 .loc 1 1623 3 is_stmt 1 view .LVU1001 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2884 .loc 1 1623 3 view .LVU1002 2885 0014 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 2886 0018 012B cmp r3, #1 2887 001a 43D0 beq .L213 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2888 .loc 1 1623 3 discriminator 2 view .LVU1003 2889 001c 0123 movs r3, #1 2890 001e 80F85C30 strb r3, [r0, #92] 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2891 .loc 1 1623 3 discriminator 2 view .LVU1004 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2892 .loc 1 1626 3 view .LVU1005 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2893 .loc 1 1626 21 is_stmt 0 view .LVU1006 2894 0022 0323 movs r3, #3 2895 0024 80F85D30 strb r3, [r0, #93] 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2896 .loc 1 1627 3 is_stmt 1 view .LVU1007 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2897 .loc 1 1627 21 is_stmt 0 view .LVU1008 2898 0028 0023 movs r3, #0 2899 002a 0366 str r3, [r0, #96] 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2900 .loc 1 1628 3 is_stmt 1 view .LVU1009 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2901 .loc 1 1628 21 is_stmt 0 view .LVU1010 2902 002c 8163 str r1, [r0, #56] 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2903 .loc 1 1629 3 is_stmt 1 view .LVU1011 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2904 .loc 1 1629 21 is_stmt 0 view .LVU1012 2905 002e 8287 strh r2, [r0, #60] @ movhi 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2906 .loc 1 1630 3 is_stmt 1 view .LVU1013 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2907 .loc 1 1630 21 is_stmt 0 view .LVU1014 2908 0030 C287 strh r2, [r0, #62] @ movhi 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2909 .loc 1 1633 3 is_stmt 1 view .LVU1015 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; ARM GAS /tmp/ccNym1yT.s page 145 2910 .loc 1 1633 21 is_stmt 0 view .LVU1016 2911 0032 0364 str r3, [r0, #64] 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2912 .loc 1 1634 3 is_stmt 1 view .LVU1017 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2913 .loc 1 1634 21 is_stmt 0 view .LVU1018 2914 0034 A0F84430 strh r3, [r0, #68] @ movhi 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2915 .loc 1 1635 3 is_stmt 1 view .LVU1019 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2916 .loc 1 1635 21 is_stmt 0 view .LVU1020 2917 0038 A0F84630 strh r3, [r0, #70] @ movhi 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2918 .loc 1 1636 3 is_stmt 1 view .LVU1021 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2919 .loc 1 1636 21 is_stmt 0 view .LVU1022 2920 003c C364 str r3, [r0, #76] 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2921 .loc 1 1639 3 is_stmt 1 view .LVU1023 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2922 .loc 1 1639 17 is_stmt 0 view .LVU1024 2923 003e C368 ldr r3, [r0, #12] 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2924 .loc 1 1639 6 view .LVU1025 2925 0040 B3F5E06F cmp r3, #1792 2926 0044 1AD9 bls .L206 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2927 .loc 1 1641 5 is_stmt 1 view .LVU1026 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2928 .loc 1 1641 17 is_stmt 0 view .LVU1027 2929 0046 184B ldr r3, .L219 2930 0048 0365 str r3, [r0, #80] 2931 .L207: 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2932 .loc 1 1649 3 is_stmt 1 view .LVU1028 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2933 .loc 1 1649 17 is_stmt 0 view .LVU1029 2934 004a 8368 ldr r3, [r0, #8] 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2935 .loc 1 1649 6 view .LVU1030 2936 004c B3F5004F cmp r3, #32768 2937 0050 17D0 beq .L218 2938 .LVL167: 2939 .L208: 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2940 .loc 1 1665 3 is_stmt 1 view .LVU1031 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2941 .loc 1 1665 12 is_stmt 0 view .LVU1032 2942 0052 0368 ldr r3, [r0] 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2943 .loc 1 1665 22 view .LVU1033 2944 0054 1A68 ldr r2, [r3] 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2945 .loc 1 1665 6 view .LVU1034 2946 0056 12F0400F tst r2, #64 2947 005a 03D1 bne .L209 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 146 2948 .loc 1 1668 5 is_stmt 1 view .LVU1035 2949 005c 1A68 ldr r2, [r3] 2950 005e 42F04002 orr r2, r2, #64 2951 0062 1A60 str r2, [r3] 2952 .L209: 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 2953 .loc 1 1672 3 view .LVU1036 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 2954 .loc 1 1672 3 view .LVU1037 2955 0064 0023 movs r3, #0 2956 0066 80F85C30 strb r3, [r0, #92] 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 2957 .loc 1 1672 3 view .LVU1038 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2958 .loc 1 1674 3 view .LVU1039 2959 006a 0168 ldr r1, [r0] 2960 .LVL168: 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2961 .loc 1 1674 3 is_stmt 0 view .LVU1040 2962 006c 4A68 ldr r2, [r1, #4] 2963 006e 42F0A002 orr r2, r2, #160 2964 0072 4A60 str r2, [r1, #4] 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2965 .loc 1 1604 21 view .LVU1041 2966 0074 1846 mov r0, r3 2967 .LVL169: 2968 .L205: 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2969 .loc 1 1678 1 view .LVU1042 2970 0076 5DF8044B ldr r4, [sp], #4 2971 .cfi_remember_state 2972 .cfi_restore 4 2973 .cfi_def_cfa_offset 0 2974 007a 7047 bx lr 2975 .LVL170: 2976 .L206: 2977 .cfi_restore_state 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2978 .loc 1 1645 5 is_stmt 1 view .LVU1043 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2979 .loc 1 1645 17 is_stmt 0 view .LVU1044 2980 007c 0B4B ldr r3, .L219+4 2981 007e 0365 str r3, [r0, #80] 2982 0080 E3E7 b .L207 2983 .L218: 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2984 .loc 1 1652 5 is_stmt 1 view .LVU1045 2985 0082 0268 ldr r2, [r0] 2986 .LVL171: 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2987 .loc 1 1652 5 is_stmt 0 view .LVU1046 2988 0084 1368 ldr r3, [r2] 2989 0086 23F04003 bic r3, r3, #64 2990 008a 1360 str r3, [r2] 2991 .LVL172: 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2992 .loc 1 1653 5 is_stmt 1 view .LVU1047 ARM GAS /tmp/ccNym1yT.s page 147 2993 008c 0268 ldr r2, [r0] 2994 008e 1368 ldr r3, [r2] 2995 0090 43F48043 orr r3, r3, #16384 2996 0094 1360 str r3, [r2] 2997 0096 DCE7 b .L208 2998 .LVL173: 2999 .L210: 3000 .cfi_def_cfa_offset 0 3001 .cfi_restore 4 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3002 .loc 1 1612 15 is_stmt 0 view .LVU1048 3003 0098 0120 movs r0, #1 3004 .LVL174: 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3005 .loc 1 1678 1 view .LVU1049 3006 009a 7047 bx lr 3007 .LVL175: 3008 .L211: 3009 .cfi_def_cfa_offset 4 3010 .cfi_offset 4, -4 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3011 .loc 1 1612 15 view .LVU1050 3012 009c 0120 movs r0, #1 3013 .LVL176: 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3014 .loc 1 1612 15 view .LVU1051 3015 009e EAE7 b .L205 3016 .LVL177: 3017 .L212: 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3018 .loc 1 1618 15 view .LVU1052 3019 00a0 0220 movs r0, #2 3020 .LVL178: 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3021 .loc 1 1618 15 view .LVU1053 3022 00a2 E8E7 b .L205 3023 .LVL179: 3024 .L213: 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3025 .loc 1 1623 3 discriminator 1 view .LVU1054 3026 00a4 0220 movs r0, #2 3027 .LVL180: 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3028 .loc 1 1623 3 discriminator 1 view .LVU1055 3029 00a6 E6E7 b .L205 3030 .L220: 3031 .align 2 3032 .L219: 3033 00a8 00000000 .word SPI_TxISR_16BIT 3034 00ac 00000000 .word SPI_TxISR_8BIT 3035 .cfi_endproc 3036 .LFE130: 3038 .section .text.HAL_SPI_TransmitReceive_IT,"ax",%progbits 3039 .align 1 3040 .global HAL_SPI_TransmitReceive_IT 3041 .syntax unified 3042 .thumb ARM GAS /tmp/ccNym1yT.s page 148 3043 .thumb_func 3045 HAL_SPI_TransmitReceive_IT: 3046 .LVL181: 3047 .LFB132: 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3048 .loc 1 1798 1 is_stmt 1 view -0 3049 .cfi_startproc 3050 @ args = 0, pretend = 0, frame = 0 3051 @ frame_needed = 0, uses_anonymous_args = 0 3052 @ link register save eliminated. 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3053 .loc 1 1798 1 is_stmt 0 view .LVU1057 3054 0000 10B4 push {r4} 3055 .cfi_def_cfa_offset 4 3056 .cfi_offset 4, -4 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 3057 .loc 1 1799 3 is_stmt 1 view .LVU1058 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3058 .loc 1 1800 3 view .LVU1059 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3059 .loc 1 1801 3 view .LVU1060 3060 .LVL182: 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3061 .loc 1 1804 3 view .LVU1061 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3062 .loc 1 1807 3 view .LVU1062 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3063 .loc 1 1807 23 is_stmt 0 view .LVU1063 3064 0002 90F85DC0 ldrb ip, [r0, #93] @ zero_extendqisi2 3065 0006 5FFA8CFC uxtb ip, ip 3066 .LVL183: 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3067 .loc 1 1808 3 is_stmt 1 view .LVU1064 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3068 .loc 1 1808 23 is_stmt 0 view .LVU1065 3069 000a 4468 ldr r4, [r0, #4] 3070 .LVL184: 1810: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 1810 3 is_stmt 1 view .LVU1066 1810: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 1810 6 is_stmt 0 view .LVU1067 3073 000c BCF1010F cmp ip, #1 3074 0010 08D0 beq .L222 1810: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 1810 7 discriminator 1 view .LVU1068 3076 0012 B4F5827F cmp r4, #260 3077 0016 54D1 bne .L231 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3078 .loc 1 1811 54 view .LVU1069 3079 0018 8468 ldr r4, [r0, #8] 3080 .LVL185: 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3081 .loc 1 1811 40 view .LVU1070 3082 001a 002C cmp r4, #0 3083 001c 55D1 bne .L232 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3084 .loc 1 1811 90 discriminator 1 view .LVU1071 ARM GAS /tmp/ccNym1yT.s page 149 3085 001e BCF1040F cmp ip, #4 3086 0022 54D1 bne .L233 3087 .L222: 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3088 .loc 1 1817 3 is_stmt 1 view .LVU1072 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3089 .loc 1 1817 6 is_stmt 0 view .LVU1073 3090 0024 0029 cmp r1, #0 3091 0026 54D0 beq .L234 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3092 .loc 1 1817 25 discriminator 1 view .LVU1074 3093 0028 002A cmp r2, #0 3094 002a 54D0 beq .L235 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3095 .loc 1 1817 46 discriminator 2 view .LVU1075 3096 002c 002B cmp r3, #0 3097 002e 54D0 beq .L236 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3098 .loc 1 1824 3 is_stmt 1 view .LVU1076 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3099 .loc 1 1824 3 view .LVU1077 3100 0030 90F85C40 ldrb r4, [r0, #92] @ zero_extendqisi2 3101 0034 012C cmp r4, #1 3102 0036 52D0 beq .L237 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3103 .loc 1 1824 3 discriminator 2 view .LVU1078 3104 0038 0124 movs r4, #1 3105 003a 80F85C40 strb r4, [r0, #92] 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3106 .loc 1 1824 3 discriminator 2 view .LVU1079 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3107 .loc 1 1827 3 view .LVU1080 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3108 .loc 1 1827 11 is_stmt 0 view .LVU1081 3109 003e 90F85D40 ldrb r4, [r0, #93] @ zero_extendqisi2 3110 0042 E4B2 uxtb r4, r4 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3111 .loc 1 1827 6 view .LVU1082 3112 0044 042C cmp r4, #4 3113 0046 02D0 beq .L224 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3114 .loc 1 1829 5 is_stmt 1 view .LVU1083 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3115 .loc 1 1829 17 is_stmt 0 view .LVU1084 3116 0048 0524 movs r4, #5 3117 004a 80F85D40 strb r4, [r0, #93] 3118 .L224: 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3119 .loc 1 1833 3 is_stmt 1 view .LVU1085 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3120 .loc 1 1833 21 is_stmt 0 view .LVU1086 3121 004e 0024 movs r4, #0 3122 0050 0466 str r4, [r0, #96] 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3123 .loc 1 1834 3 is_stmt 1 view .LVU1087 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3124 .loc 1 1834 21 is_stmt 0 view .LVU1088 ARM GAS /tmp/ccNym1yT.s page 150 3125 0052 8163 str r1, [r0, #56] 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3126 .loc 1 1835 3 is_stmt 1 view .LVU1089 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3127 .loc 1 1835 21 is_stmt 0 view .LVU1090 3128 0054 8387 strh r3, [r0, #60] @ movhi 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3129 .loc 1 1836 3 is_stmt 1 view .LVU1091 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3130 .loc 1 1836 21 is_stmt 0 view .LVU1092 3131 0056 C387 strh r3, [r0, #62] @ movhi 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3132 .loc 1 1837 3 is_stmt 1 view .LVU1093 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3133 .loc 1 1837 21 is_stmt 0 view .LVU1094 3134 0058 0264 str r2, [r0, #64] 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3135 .loc 1 1838 3 is_stmt 1 view .LVU1095 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3136 .loc 1 1838 21 is_stmt 0 view .LVU1096 3137 005a A0F84430 strh r3, [r0, #68] @ movhi 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3138 .loc 1 1839 3 is_stmt 1 view .LVU1097 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3139 .loc 1 1839 21 is_stmt 0 view .LVU1098 3140 005e A0F84630 strh r3, [r0, #70] @ movhi 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3141 .loc 1 1842 3 is_stmt 1 view .LVU1099 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3142 .loc 1 1842 17 is_stmt 0 view .LVU1100 3143 0062 C268 ldr r2, [r0, #12] 3144 .LVL186: 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3145 .loc 1 1842 6 view .LVU1101 3146 0064 B2F5E06F cmp r2, #1792 3147 0068 20D9 bls .L225 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3148 .loc 1 1844 5 is_stmt 1 view .LVU1102 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3149 .loc 1 1844 21 is_stmt 0 view .LVU1103 3150 006a 1E49 ldr r1, .L239 3151 .LVL187: 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 3152 .loc 1 1844 21 view .LVU1104 3153 006c C164 str r1, [r0, #76] 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3154 .loc 1 1845 5 is_stmt 1 view .LVU1105 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3155 .loc 1 1845 21 is_stmt 0 view .LVU1106 3156 006e 1E49 ldr r1, .L239+4 3157 0070 0165 str r1, [r0, #80] 3158 .L226: 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3159 .loc 1 1871 3 is_stmt 1 view .LVU1107 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3160 .loc 1 1871 6 is_stmt 0 view .LVU1108 3161 0072 B2F5E06F cmp r2, #1792 ARM GAS /tmp/ccNym1yT.s page 151 3162 0076 01D8 bhi .L227 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3163 .loc 1 1871 49 discriminator 1 view .LVU1109 3164 0078 012B cmp r3, #1 3165 007a 1CD9 bls .L228 3166 .L227: 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3167 .loc 1 1874 5 is_stmt 1 view .LVU1110 3168 007c 0268 ldr r2, [r0] 3169 007e 5368 ldr r3, [r2, #4] 3170 .LVL188: 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3171 .loc 1 1874 5 is_stmt 0 view .LVU1111 3172 0080 23F48053 bic r3, r3, #4096 3173 0084 5360 str r3, [r2, #4] 3174 .LVL189: 3175 .L229: 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3176 .loc 1 1884 3 is_stmt 1 view .LVU1112 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3177 .loc 1 1884 12 is_stmt 0 view .LVU1113 3178 0086 0368 ldr r3, [r0] 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3179 .loc 1 1884 22 view .LVU1114 3180 0088 1A68 ldr r2, [r3] 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3181 .loc 1 1884 6 view .LVU1115 3182 008a 12F0400F tst r2, #64 3183 008e 03D1 bne .L230 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3184 .loc 1 1887 5 is_stmt 1 view .LVU1116 3185 0090 1A68 ldr r2, [r3] 3186 0092 42F04002 orr r2, r2, #64 3187 0096 1A60 str r2, [r3] 3188 .L230: 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 3189 .loc 1 1891 3 view .LVU1117 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 3190 .loc 1 1891 3 view .LVU1118 3191 0098 0023 movs r3, #0 3192 009a 80F85C30 strb r3, [r0, #92] 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 3193 .loc 1 1891 3 view .LVU1119 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3194 .loc 1 1893 3 view .LVU1120 3195 009e 0168 ldr r1, [r0] 3196 00a0 4A68 ldr r2, [r1, #4] 3197 00a2 42F0E002 orr r2, r2, #224 3198 00a6 4A60 str r2, [r1, #4] 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3199 .loc 1 1801 24 is_stmt 0 view .LVU1121 3200 00a8 1846 mov r0, r3 3201 .LVL190: 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3202 .loc 1 1801 24 view .LVU1122 3203 00aa 0BE0 b .L223 3204 .LVL191: ARM GAS /tmp/ccNym1yT.s page 152 3205 .L225: 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3206 .loc 1 1849 5 is_stmt 1 view .LVU1123 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3207 .loc 1 1849 21 is_stmt 0 view .LVU1124 3208 00ac 0F49 ldr r1, .L239+8 3209 .LVL192: 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 3210 .loc 1 1849 21 view .LVU1125 3211 00ae C164 str r1, [r0, #76] 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3212 .loc 1 1850 5 is_stmt 1 view .LVU1126 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3213 .loc 1 1850 21 is_stmt 0 view .LVU1127 3214 00b0 0F49 ldr r1, .L239+12 3215 00b2 0165 str r1, [r0, #80] 3216 00b4 DDE7 b .L226 3217 .L228: 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3218 .loc 1 1879 5 is_stmt 1 view .LVU1128 3219 00b6 0268 ldr r2, [r0] 3220 00b8 5368 ldr r3, [r2, #4] 3221 .LVL193: 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3222 .loc 1 1879 5 is_stmt 0 view .LVU1129 3223 00ba 43F48053 orr r3, r3, #4096 3224 00be 5360 str r3, [r2, #4] 3225 .LVL194: 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3226 .loc 1 1879 5 view .LVU1130 3227 00c0 E1E7 b .L229 3228 .LVL195: 3229 .L231: 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3230 .loc 1 1813 15 view .LVU1131 3231 00c2 0220 movs r0, #2 3232 .LVL196: 3233 .L223: 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3234 .loc 1 1897 1 view .LVU1132 3235 00c4 5DF8044B ldr r4, [sp], #4 3236 .cfi_remember_state 3237 .cfi_restore 4 3238 .cfi_def_cfa_offset 0 3239 00c8 7047 bx lr 3240 .LVL197: 3241 .L232: 3242 .cfi_restore_state 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3243 .loc 1 1813 15 view .LVU1133 3244 00ca 0220 movs r0, #2 3245 .LVL198: 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3246 .loc 1 1813 15 view .LVU1134 3247 00cc FAE7 b .L223 3248 .LVL199: 3249 .L233: ARM GAS /tmp/ccNym1yT.s page 153 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3250 .loc 1 1813 15 view .LVU1135 3251 00ce 0220 movs r0, #2 3252 .LVL200: 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3253 .loc 1 1813 15 view .LVU1136 3254 00d0 F8E7 b .L223 3255 .LVL201: 3256 .L234: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3257 .loc 1 1819 15 view .LVU1137 3258 00d2 0120 movs r0, #1 3259 .LVL202: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3260 .loc 1 1819 15 view .LVU1138 3261 00d4 F6E7 b .L223 3262 .LVL203: 3263 .L235: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3264 .loc 1 1819 15 view .LVU1139 3265 00d6 0120 movs r0, #1 3266 .LVL204: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3267 .loc 1 1819 15 view .LVU1140 3268 00d8 F4E7 b .L223 3269 .LVL205: 3270 .L236: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3271 .loc 1 1819 15 view .LVU1141 3272 00da 0120 movs r0, #1 3273 .LVL206: 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3274 .loc 1 1819 15 view .LVU1142 3275 00dc F2E7 b .L223 3276 .LVL207: 3277 .L237: 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3278 .loc 1 1824 3 discriminator 1 view .LVU1143 3279 00de 0220 movs r0, #2 3280 .LVL208: 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3281 .loc 1 1824 3 discriminator 1 view .LVU1144 3282 00e0 F0E7 b .L223 3283 .L240: 3284 00e2 00BF .align 2 3285 .L239: 3286 00e4 00000000 .word SPI_2linesRxISR_16BIT 3287 00e8 00000000 .word SPI_2linesTxISR_16BIT 3288 00ec 00000000 .word SPI_2linesRxISR_8BIT 3289 00f0 00000000 .word SPI_2linesTxISR_8BIT 3290 .cfi_endproc 3291 .LFE132: 3293 .section .text.HAL_SPI_Receive_IT,"ax",%progbits 3294 .align 1 3295 .global HAL_SPI_Receive_IT 3296 .syntax unified 3297 .thumb ARM GAS /tmp/ccNym1yT.s page 154 3298 .thumb_func 3300 HAL_SPI_Receive_IT: 3301 .LVL209: 3302 .LFB131: 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3303 .loc 1 1689 1 is_stmt 1 view -0 3304 .cfi_startproc 3305 @ args = 0, pretend = 0, frame = 0 3306 @ frame_needed = 0, uses_anonymous_args = 0 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3307 .loc 1 1689 1 is_stmt 0 view .LVU1146 3308 0000 8446 mov ip, r0 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3309 .loc 1 1690 3 is_stmt 1 view .LVU1147 3310 .LVL210: 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3311 .loc 1 1693 3 view .LVU1148 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3312 .loc 1 1693 11 is_stmt 0 view .LVU1149 3313 0002 90F85D00 ldrb r0, [r0, #93] @ zero_extendqisi2 3314 .LVL211: 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3315 .loc 1 1693 11 view .LVU1150 3316 0006 C0B2 uxtb r0, r0 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3317 .loc 1 1693 6 view .LVU1151 3318 0008 0128 cmp r0, #1 3319 000a 6ED1 bne .L248 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3320 .loc 1 1689 1 view .LVU1152 3321 000c 08B5 push {r3, lr} 3322 .cfi_def_cfa_offset 8 3323 .cfi_offset 3, -8 3324 .cfi_offset 14, -4 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3325 .loc 1 1699 3 is_stmt 1 view .LVU1153 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3326 .loc 1 1699 18 is_stmt 0 view .LVU1154 3327 000e DCF80830 ldr r3, [ip, #8] 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3328 .loc 1 1699 6 view .LVU1155 3329 0012 23B9 cbnz r3, .L243 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3330 .loc 1 1699 68 discriminator 1 view .LVU1156 3331 0014 DCF80430 ldr r3, [ip, #4] 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3332 .loc 1 1699 54 discriminator 1 view .LVU1157 3333 0018 B3F5827F cmp r3, #260 3334 001c 45D0 beq .L254 3335 .L243: 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3336 .loc 1 1707 3 is_stmt 1 view .LVU1158 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3337 .loc 1 1707 6 is_stmt 0 view .LVU1159 3338 001e 0029 cmp r1, #0 3339 0020 42D0 beq .L242 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 155 3340 .loc 1 1707 23 discriminator 1 view .LVU1160 3341 0022 002A cmp r2, #0 3342 0024 40D0 beq .L242 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3343 .loc 1 1714 3 is_stmt 1 view .LVU1161 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3344 .loc 1 1714 3 view .LVU1162 3345 0026 9CF85C30 ldrb r3, [ip, #92] @ zero_extendqisi2 3346 002a 012B cmp r3, #1 3347 002c 5FD0 beq .L249 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3348 .loc 1 1714 3 discriminator 2 view .LVU1163 3349 002e 0123 movs r3, #1 3350 0030 8CF85C30 strb r3, [ip, #92] 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3351 .loc 1 1714 3 discriminator 2 view .LVU1164 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3352 .loc 1 1717 3 view .LVU1165 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3353 .loc 1 1717 21 is_stmt 0 view .LVU1166 3354 0034 0423 movs r3, #4 3355 0036 8CF85D30 strb r3, [ip, #93] 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3356 .loc 1 1718 3 is_stmt 1 view .LVU1167 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3357 .loc 1 1718 21 is_stmt 0 view .LVU1168 3358 003a 0023 movs r3, #0 3359 003c CCF86030 str r3, [ip, #96] 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3360 .loc 1 1719 3 is_stmt 1 view .LVU1169 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3361 .loc 1 1719 21 is_stmt 0 view .LVU1170 3362 0040 CCF84010 str r1, [ip, #64] 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3363 .loc 1 1720 3 is_stmt 1 view .LVU1171 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3364 .loc 1 1720 21 is_stmt 0 view .LVU1172 3365 0044 ACF84420 strh r2, [ip, #68] @ movhi 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3366 .loc 1 1721 3 is_stmt 1 view .LVU1173 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3367 .loc 1 1721 21 is_stmt 0 view .LVU1174 3368 0048 ACF84620 strh r2, [ip, #70] @ movhi 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3369 .loc 1 1724 3 is_stmt 1 view .LVU1175 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3370 .loc 1 1724 21 is_stmt 0 view .LVU1176 3371 004c CCF83830 str r3, [ip, #56] 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3372 .loc 1 1725 3 is_stmt 1 view .LVU1177 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3373 .loc 1 1725 21 is_stmt 0 view .LVU1178 3374 0050 ACF83C30 strh r3, [ip, #60] @ movhi 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3375 .loc 1 1726 3 is_stmt 1 view .LVU1179 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3376 .loc 1 1726 21 is_stmt 0 view .LVU1180 ARM GAS /tmp/ccNym1yT.s page 156 3377 0054 ACF83E30 strh r3, [ip, #62] @ movhi 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3378 .loc 1 1727 3 is_stmt 1 view .LVU1181 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3379 .loc 1 1727 21 is_stmt 0 view .LVU1182 3380 0058 CCF85030 str r3, [ip, #80] 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3381 .loc 1 1730 3 is_stmt 1 view .LVU1183 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3382 .loc 1 1730 17 is_stmt 0 view .LVU1184 3383 005c DCF80C30 ldr r3, [ip, #12] 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3384 .loc 1 1730 6 view .LVU1185 3385 0060 B3F5E06F cmp r3, #1792 3386 0064 2AD9 bls .L244 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3387 .loc 1 1733 5 is_stmt 1 view .LVU1186 3388 0066 DCF80020 ldr r2, [ip] 3389 .LVL212: 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 3390 .loc 1 1733 5 is_stmt 0 view .LVU1187 3391 006a 5368 ldr r3, [r2, #4] 3392 006c 23F48053 bic r3, r3, #4096 3393 0070 5360 str r3, [r2, #4] 3394 .LVL213: 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3395 .loc 1 1734 5 is_stmt 1 view .LVU1188 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3396 .loc 1 1734 17 is_stmt 0 view .LVU1189 3397 0072 204B ldr r3, .L256 3398 0074 CCF84C30 str r3, [ip, #76] 3399 .L245: 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3400 .loc 1 1744 3 is_stmt 1 view .LVU1190 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3401 .loc 1 1744 17 is_stmt 0 view .LVU1191 3402 0078 DCF80830 ldr r3, [ip, #8] 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3403 .loc 1 1744 6 view .LVU1192 3404 007c B3F5004F cmp r3, #32768 3405 0080 26D0 beq .L255 3406 .L246: 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3407 .loc 1 1773 3 is_stmt 1 view .LVU1193 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3408 .loc 1 1773 12 is_stmt 0 view .LVU1194 3409 0082 DCF80030 ldr r3, [ip] 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3410 .loc 1 1773 22 view .LVU1195 3411 0086 1A68 ldr r2, [r3] 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3412 .loc 1 1773 6 view .LVU1196 3413 0088 12F0400F tst r2, #64 3414 008c 03D1 bne .L247 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3415 .loc 1 1776 5 is_stmt 1 view .LVU1197 3416 008e 1A68 ldr r2, [r3] ARM GAS /tmp/ccNym1yT.s page 157 3417 0090 42F04002 orr r2, r2, #64 3418 0094 1A60 str r2, [r3] 3419 .L247: 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable RXNE and ERR interrupt */ 3420 .loc 1 1780 3 view .LVU1198 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable RXNE and ERR interrupt */ 3421 .loc 1 1780 3 view .LVU1199 3422 0096 0020 movs r0, #0 3423 0098 8CF85C00 strb r0, [ip, #92] 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable RXNE and ERR interrupt */ 3424 .loc 1 1780 3 view .LVU1200 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3425 .loc 1 1782 3 view .LVU1201 3426 009c DCF80020 ldr r2, [ip] 3427 00a0 5368 ldr r3, [r2, #4] 3428 00a2 43F06003 orr r3, r3, #96 3429 00a6 5360 str r3, [r2, #4] 3430 .LVL214: 3431 .L242: 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3432 .loc 1 1786 1 is_stmt 0 view .LVU1202 3433 00a8 08BD pop {r3, pc} 3434 .LVL215: 3435 .L254: 1701: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 3436 .loc 1 1701 5 is_stmt 1 view .LVU1203 1701: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 3437 .loc 1 1701 17 is_stmt 0 view .LVU1204 3438 00aa 0423 movs r3, #4 3439 00ac 8CF85D30 strb r3, [ip, #93] 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3440 .loc 1 1703 5 is_stmt 1 view .LVU1205 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3441 .loc 1 1703 12 is_stmt 0 view .LVU1206 3442 00b0 1346 mov r3, r2 3443 00b2 0A46 mov r2, r1 3444 .LVL216: 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3445 .loc 1 1703 12 view .LVU1207 3446 00b4 6046 mov r0, ip 3447 00b6 FFF7FEFF bl HAL_SPI_TransmitReceive_IT 3448 .LVL217: 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3449 .loc 1 1703 12 view .LVU1208 3450 00ba F5E7 b .L242 3451 .LVL218: 3452 .L244: 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3453 .loc 1 1739 5 is_stmt 1 view .LVU1209 3454 00bc DCF80020 ldr r2, [ip] 3455 .LVL219: 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 3456 .loc 1 1739 5 is_stmt 0 view .LVU1210 3457 00c0 5368 ldr r3, [r2, #4] 3458 00c2 43F48053 orr r3, r3, #4096 3459 00c6 5360 str r3, [r2, #4] 3460 .LVL220: ARM GAS /tmp/ccNym1yT.s page 158 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3461 .loc 1 1740 5 is_stmt 1 view .LVU1211 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3462 .loc 1 1740 17 is_stmt 0 view .LVU1212 3463 00c8 0B4B ldr r3, .L256+4 3464 00ca CCF84C30 str r3, [ip, #76] 3465 00ce D3E7 b .L245 3466 .L255: 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 3467 .loc 1 1747 5 is_stmt 1 view .LVU1213 3468 00d0 DCF80020 ldr r2, [ip] 3469 00d4 1368 ldr r3, [r2] 3470 00d6 23F04003 bic r3, r3, #64 3471 00da 1360 str r3, [r2] 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3472 .loc 1 1748 5 view .LVU1214 3473 00dc DCF80020 ldr r2, [ip] 3474 00e0 1368 ldr r3, [r2] 3475 00e2 23F48043 bic r3, r3, #16384 3476 00e6 1360 str r3, [r2] 3477 00e8 CBE7 b .L246 3478 .LVL221: 3479 .L248: 3480 .cfi_def_cfa_offset 0 3481 .cfi_restore 3 3482 .cfi_restore 14 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3483 .loc 1 1695 15 is_stmt 0 view .LVU1215 3484 00ea 0220 movs r0, #2 3485 .LVL222: 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3486 .loc 1 1786 1 view .LVU1216 3487 00ec 7047 bx lr 3488 .LVL223: 3489 .L249: 3490 .cfi_def_cfa_offset 8 3491 .cfi_offset 3, -8 3492 .cfi_offset 14, -4 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3493 .loc 1 1714 3 discriminator 1 view .LVU1217 3494 00ee 0220 movs r0, #2 3495 00f0 DAE7 b .L242 3496 .L257: 3497 00f2 00BF .align 2 3498 .L256: 3499 00f4 00000000 .word SPI_RxISR_16BIT 3500 00f8 00000000 .word SPI_RxISR_8BIT 3501 .cfi_endproc 3502 .LFE131: 3504 .section .text.HAL_SPI_Transmit_DMA,"ax",%progbits 3505 .align 1 3506 .global HAL_SPI_Transmit_DMA 3507 .syntax unified 3508 .thumb 3509 .thumb_func 3511 HAL_SPI_Transmit_DMA: 3512 .LVL224: ARM GAS /tmp/ccNym1yT.s page 159 3513 .LFB133: 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3514 .loc 1 1908 1 is_stmt 1 view -0 3515 .cfi_startproc 3516 @ args = 0, pretend = 0, frame = 0 3517 @ frame_needed = 0, uses_anonymous_args = 0 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3518 .loc 1 1908 1 is_stmt 0 view .LVU1219 3519 0000 38B5 push {r3, r4, r5, lr} 3520 .cfi_def_cfa_offset 16 3521 .cfi_offset 3, -16 3522 .cfi_offset 4, -12 3523 .cfi_offset 5, -8 3524 .cfi_offset 14, -4 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3525 .loc 1 1909 3 is_stmt 1 view .LVU1220 3526 .LVL225: 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3527 .loc 1 1912 3 view .LVU1221 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3528 .loc 1 1915 3 view .LVU1222 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3529 .loc 1 1918 3 view .LVU1223 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3530 .loc 1 1918 3 view .LVU1224 3531 0002 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 3532 0006 012B cmp r3, #1 3533 0008 00F08980 beq .L266 3534 000c 0446 mov r4, r0 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535 .loc 1 1918 3 discriminator 2 view .LVU1225 3536 000e 0123 movs r3, #1 3537 0010 80F85C30 strb r3, [r0, #92] 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3538 .loc 1 1918 3 discriminator 2 view .LVU1226 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3539 .loc 1 1920 3 view .LVU1227 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3540 .loc 1 1920 11 is_stmt 0 view .LVU1228 3541 0014 90F85D50 ldrb r5, [r0, #93] @ zero_extendqisi2 3542 0018 EDB2 uxtb r5, r5 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3543 .loc 1 1920 6 view .LVU1229 3544 001a 9D42 cmp r5, r3 3545 001c 79D1 bne .L267 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3546 .loc 1 1926 3 is_stmt 1 view .LVU1230 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3547 .loc 1 1926 6 is_stmt 0 view .LVU1231 3548 001e 0029 cmp r1, #0 3549 0020 78D0 beq .L260 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3550 .loc 1 1926 23 discriminator 1 view .LVU1232 3551 0022 002A cmp r2, #0 3552 0024 76D0 beq .L260 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3553 .loc 1 1933 3 is_stmt 1 view .LVU1233 ARM GAS /tmp/ccNym1yT.s page 160 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3554 .loc 1 1933 21 is_stmt 0 view .LVU1234 3555 0026 0323 movs r3, #3 3556 0028 80F85D30 strb r3, [r0, #93] 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3557 .loc 1 1934 3 is_stmt 1 view .LVU1235 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 3558 .loc 1 1934 21 is_stmt 0 view .LVU1236 3559 002c 0023 movs r3, #0 3560 002e 0366 str r3, [r0, #96] 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3561 .loc 1 1935 3 is_stmt 1 view .LVU1237 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3562 .loc 1 1935 21 is_stmt 0 view .LVU1238 3563 0030 8163 str r1, [r0, #56] 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3564 .loc 1 1936 3 is_stmt 1 view .LVU1239 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3565 .loc 1 1936 21 is_stmt 0 view .LVU1240 3566 0032 8287 strh r2, [r0, #60] @ movhi 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3567 .loc 1 1937 3 is_stmt 1 view .LVU1241 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3568 .loc 1 1937 21 is_stmt 0 view .LVU1242 3569 0034 C287 strh r2, [r0, #62] @ movhi 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3570 .loc 1 1940 3 is_stmt 1 view .LVU1243 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3571 .loc 1 1940 21 is_stmt 0 view .LVU1244 3572 0036 0364 str r3, [r0, #64] 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3573 .loc 1 1941 3 is_stmt 1 view .LVU1245 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3574 .loc 1 1941 21 is_stmt 0 view .LVU1246 3575 0038 0365 str r3, [r0, #80] 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3576 .loc 1 1942 3 is_stmt 1 view .LVU1247 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 3577 .loc 1 1942 21 is_stmt 0 view .LVU1248 3578 003a C364 str r3, [r0, #76] 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3579 .loc 1 1943 3 is_stmt 1 view .LVU1249 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 3580 .loc 1 1943 21 is_stmt 0 view .LVU1250 3581 003c A0F84430 strh r3, [r0, #68] @ movhi 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3582 .loc 1 1944 3 is_stmt 1 view .LVU1251 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3583 .loc 1 1944 21 is_stmt 0 view .LVU1252 3584 0040 A0F84630 strh r3, [r0, #70] @ movhi 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3585 .loc 1 1947 3 is_stmt 1 view .LVU1253 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3586 .loc 1 1947 17 is_stmt 0 view .LVU1254 3587 0044 8368 ldr r3, [r0, #8] 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3588 .loc 1 1947 6 view .LVU1255 ARM GAS /tmp/ccNym1yT.s page 161 3589 0046 B3F5004F cmp r3, #32768 3590 004a 39D0 beq .L269 3591 .LVL226: 3592 .L261: 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3593 .loc 1 1963 3 is_stmt 1 view .LVU1256 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3594 .loc 1 1963 7 is_stmt 0 view .LVU1257 3595 004c 636D ldr r3, [r4, #84] 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3596 .loc 1 1963 38 view .LVU1258 3597 004e 354A ldr r2, .L272 3598 0050 DA62 str r2, [r3, #44] 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3599 .loc 1 1966 3 is_stmt 1 view .LVU1259 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3600 .loc 1 1966 7 is_stmt 0 view .LVU1260 3601 0052 636D ldr r3, [r4, #84] 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3602 .loc 1 1966 34 view .LVU1261 3603 0054 344A ldr r2, .L272+4 3604 0056 9A62 str r2, [r3, #40] 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3605 .loc 1 1969 3 is_stmt 1 view .LVU1262 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3606 .loc 1 1969 7 is_stmt 0 view .LVU1263 3607 0058 636D ldr r3, [r4, #84] 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3608 .loc 1 1969 35 view .LVU1264 3609 005a 344A ldr r2, .L272+8 3610 005c 1A63 str r2, [r3, #48] 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3611 .loc 1 1972 3 is_stmt 1 view .LVU1265 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3612 .loc 1 1972 7 is_stmt 0 view .LVU1266 3613 005e 636D ldr r3, [r4, #84] 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3614 .loc 1 1972 35 view .LVU1267 3615 0060 0022 movs r2, #0 3616 0062 5A63 str r2, [r3, #52] 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 3617 .loc 1 1974 3 is_stmt 1 view .LVU1268 3618 0064 2268 ldr r2, [r4] 3619 0066 5368 ldr r3, [r2, #4] 3620 0068 23F48043 bic r3, r3, #16384 3621 006c 5360 str r3, [r2, #4] 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3622 .loc 1 1976 3 view .LVU1269 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3623 .loc 1 1976 18 is_stmt 0 view .LVU1270 3624 006e E368 ldr r3, [r4, #12] 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3625 .loc 1 1976 6 view .LVU1271 3626 0070 B3F5E06F cmp r3, #1792 3627 0074 04D8 bhi .L262 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3628 .loc 1 1976 58 discriminator 1 view .LVU1272 ARM GAS /tmp/ccNym1yT.s page 162 3629 0076 636D ldr r3, [r4, #84] 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3630 .loc 1 1976 72 discriminator 1 view .LVU1273 3631 0078 5B69 ldr r3, [r3, #20] 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3632 .loc 1 1976 50 discriminator 1 view .LVU1274 3633 007a B3F5806F cmp r3, #1024 3634 007e 2AD0 beq .L270 3635 .L262: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3636 .loc 1 1992 3 is_stmt 1 view .LVU1275 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3637 .loc 1 1992 91 is_stmt 0 view .LVU1276 3638 0080 2268 ldr r2, [r4] 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3639 .loc 1 1993 38 view .LVU1277 3640 0082 E38F ldrh r3, [r4, #62] 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3641 .loc 1 1992 17 view .LVU1278 3642 0084 9BB2 uxth r3, r3 3643 0086 0C32 adds r2, r2, #12 3644 0088 A16B ldr r1, [r4, #56] 3645 .LVL227: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3646 .loc 1 1992 17 view .LVU1279 3647 008a 606D ldr r0, [r4, #84] 3648 .LVL228: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3649 .loc 1 1992 17 view .LVU1280 3650 008c FFF7FEFF bl HAL_DMA_Start_IT 3651 .LVL229: 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3652 .loc 1 1992 6 discriminator 1 view .LVU1281 3653 0090 0146 mov r1, r0 3654 0092 0028 cmp r0, #0 3655 0094 38D1 bne .L271 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3656 .loc 1 2003 3 is_stmt 1 view .LVU1282 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3657 .loc 1 2003 12 is_stmt 0 view .LVU1283 3658 0096 2368 ldr r3, [r4] 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3659 .loc 1 2003 22 view .LVU1284 3660 0098 1A68 ldr r2, [r3] 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3661 .loc 1 2003 6 view .LVU1285 3662 009a 12F0400F tst r2, #64 3663 009e 03D1 bne .L265 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3664 .loc 1 2006 5 is_stmt 1 view .LVU1286 3665 00a0 1A68 ldr r2, [r3] 3666 00a2 42F04002 orr r2, r2, #64 3667 00a6 1A60 str r2, [r3] 3668 .L265: 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3669 .loc 1 2010 3 view .LVU1287 3670 00a8 2268 ldr r2, [r4] ARM GAS /tmp/ccNym1yT.s page 163 3671 00aa 5368 ldr r3, [r2, #4] 3672 00ac 43F02003 orr r3, r3, #32 3673 00b0 5360 str r3, [r2, #4] 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3674 .loc 1 2013 3 view .LVU1288 3675 00b2 2268 ldr r2, [r4] 3676 00b4 5368 ldr r3, [r2, #4] 3677 00b6 43F00203 orr r3, r3, #2 3678 00ba 5360 str r3, [r2, #4] 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3679 .loc 1 1909 21 is_stmt 0 view .LVU1289 3680 00bc 0D46 mov r5, r1 3681 00be 29E0 b .L260 3682 .LVL230: 3683 .L269: 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3684 .loc 1 1950 5 is_stmt 1 view .LVU1290 3685 00c0 0268 ldr r2, [r0] 3686 .LVL231: 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 3687 .loc 1 1950 5 is_stmt 0 view .LVU1291 3688 00c2 1368 ldr r3, [r2] 3689 00c4 23F04003 bic r3, r3, #64 3690 00c8 1360 str r3, [r2] 3691 .LVL232: 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3692 .loc 1 1951 5 is_stmt 1 view .LVU1292 3693 00ca 0268 ldr r2, [r0] 3694 00cc 1368 ldr r3, [r2] 3695 00ce 43F48043 orr r3, r3, #16384 3696 00d2 1360 str r3, [r2] 3697 00d4 BAE7 b .L261 3698 .L270: 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3699 .loc 1 1979 5 view .LVU1293 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3700 .loc 1 1979 14 is_stmt 0 view .LVU1294 3701 00d6 E38F ldrh r3, [r4, #62] 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3702 .loc 1 1979 8 view .LVU1295 3703 00d8 13F0010F tst r3, #1 3704 00dc 09D1 bne .L263 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 3705 .loc 1 1981 7 is_stmt 1 view .LVU1296 3706 00de 2268 ldr r2, [r4] 3707 00e0 5368 ldr r3, [r2, #4] 3708 00e2 23F48043 bic r3, r3, #16384 3709 00e6 5360 str r3, [r2, #4] 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3710 .loc 1 1982 7 view .LVU1297 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3711 .loc 1 1982 32 is_stmt 0 view .LVU1298 3712 00e8 E38F ldrh r3, [r4, #62] 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3713 .loc 1 1982 25 view .LVU1299 3714 00ea C3F34E03 ubfx r3, r3, #1, #15 3715 00ee E387 strh r3, [r4, #62] @ movhi ARM GAS /tmp/ccNym1yT.s page 164 3716 00f0 C6E7 b .L262 3717 .L263: 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 3718 .loc 1 1986 7 is_stmt 1 view .LVU1300 3719 00f2 2268 ldr r2, [r4] 3720 00f4 5368 ldr r3, [r2, #4] 3721 00f6 43F48043 orr r3, r3, #16384 3722 00fa 5360 str r3, [r2, #4] 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3723 .loc 1 1987 7 view .LVU1301 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3724 .loc 1 1987 32 is_stmt 0 view .LVU1302 3725 00fc E38F ldrh r3, [r4, #62] 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3726 .loc 1 1987 53 view .LVU1303 3727 00fe C3F34E03 ubfx r3, r3, #1, #15 3728 0102 0133 adds r3, r3, #1 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3729 .loc 1 1987 25 view .LVU1304 3730 0104 E387 strh r3, [r4, #62] @ movhi 3731 0106 BBE7 b .L262 3732 .LVL233: 3733 .L271: 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3734 .loc 1 1996 5 is_stmt 1 view .LVU1305 3735 0108 236E ldr r3, [r4, #96] 3736 010a 43F01003 orr r3, r3, #16 3737 010e 2366 str r3, [r4, #96] 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3738 .loc 1 1997 5 view .LVU1306 3739 .LVL234: 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3740 .loc 1 1999 5 view .LVU1307 3741 0110 00E0 b .L260 3742 .LVL235: 3743 .L267: 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3744 .loc 1 1922 15 is_stmt 0 view .LVU1308 3745 0112 0225 movs r5, #2 3746 .LVL236: 3747 .L260: 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3748 .loc 1 2017 3 is_stmt 1 view .LVU1309 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3749 .loc 1 2017 3 view .LVU1310 3750 0114 0023 movs r3, #0 3751 0116 84F85C30 strb r3, [r4, #92] 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3752 .loc 1 2017 3 view .LVU1311 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3753 .loc 1 2018 3 view .LVU1312 3754 .LVL237: 3755 .L259: 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3756 .loc 1 2019 1 is_stmt 0 view .LVU1313 3757 011a 2846 mov r0, r5 3758 011c 38BD pop {r3, r4, r5, pc} ARM GAS /tmp/ccNym1yT.s page 165 3759 .LVL238: 3760 .L266: 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3761 .loc 1 1918 3 discriminator 1 view .LVU1314 3762 011e 0225 movs r5, #2 3763 0120 FBE7 b .L259 3764 .L273: 3765 0122 00BF .align 2 3766 .L272: 3767 0124 00000000 .word SPI_DMAHalfTransmitCplt 3768 0128 00000000 .word SPI_DMATransmitCplt 3769 012c 00000000 .word SPI_DMAError 3770 .cfi_endproc 3771 .LFE133: 3773 .section .text.HAL_SPI_TransmitReceive_DMA,"ax",%progbits 3774 .align 1 3775 .global HAL_SPI_TransmitReceive_DMA 3776 .syntax unified 3777 .thumb 3778 .thumb_func 3780 HAL_SPI_TransmitReceive_DMA: 3781 .LVL239: 3782 .LFB135: 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3783 .loc 1 2186 1 is_stmt 1 view -0 3784 .cfi_startproc 3785 @ args = 0, pretend = 0, frame = 0 3786 @ frame_needed = 0, uses_anonymous_args = 0 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 3787 .loc 1 2186 1 is_stmt 0 view .LVU1316 3788 0000 38B5 push {r3, r4, r5, lr} 3789 .cfi_def_cfa_offset 16 3790 .cfi_offset 3, -16 3791 .cfi_offset 4, -12 3792 .cfi_offset 5, -8 3793 .cfi_offset 14, -4 3794 0002 0446 mov r4, r0 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 3795 .loc 1 2187 3 is_stmt 1 view .LVU1317 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3796 .loc 1 2188 3 view .LVU1318 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3797 .loc 1 2189 3 view .LVU1319 3798 .LVL240: 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 3799 .loc 1 2192 3 view .LVU1320 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3800 .loc 1 2193 3 view .LVU1321 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3801 .loc 1 2196 3 view .LVU1322 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3802 .loc 1 2199 3 view .LVU1323 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3803 .loc 1 2199 3 view .LVU1324 3804 0004 90F85C00 ldrb r0, [r0, #92] @ zero_extendqisi2 3805 .LVL241: 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 166 3806 .loc 1 2199 3 is_stmt 0 view .LVU1325 3807 0008 0128 cmp r0, #1 3808 000a 00F0F380 beq .L289 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3809 .loc 1 2199 3 is_stmt 1 discriminator 2 view .LVU1326 3810 000e 0120 movs r0, #1 3811 0010 84F85C00 strb r0, [r4, #92] 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3812 .loc 1 2199 3 discriminator 2 view .LVU1327 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3813 .loc 1 2202 3 view .LVU1328 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3814 .loc 1 2202 23 is_stmt 0 view .LVU1329 3815 0014 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3816 0018 C0B2 uxtb r0, r0 3817 .LVL242: 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3818 .loc 1 2203 3 is_stmt 1 view .LVU1330 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3819 .loc 1 2203 23 is_stmt 0 view .LVU1331 3820 001a 6568 ldr r5, [r4, #4] 3821 .LVL243: 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3822 .loc 1 2205 3 is_stmt 1 view .LVU1332 2205: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 2205 6 is_stmt 0 view .LVU1333 3824 001c 0128 cmp r0, #1 3825 001e 0AD0 beq .L276 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3826 .loc 1 2205 7 discriminator 1 view .LVU1334 3827 0020 B5F5827F cmp r5, #260 3828 0024 40F0D780 bne .L290 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3829 .loc 1 2206 54 view .LVU1335 3830 0028 A568 ldr r5, [r4, #8] 3831 .LVL244: 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3832 .loc 1 2206 40 view .LVU1336 3833 002a 002D cmp r5, #0 3834 002c 40F0D880 bne .L291 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3835 .loc 1 2206 90 discriminator 1 view .LVU1337 3836 0030 0428 cmp r0, #4 3837 0032 40F0D780 bne .L292 3838 .L276: 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3839 .loc 1 2212 3 is_stmt 1 view .LVU1338 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3840 .loc 1 2212 6 is_stmt 0 view .LVU1339 3841 0036 0029 cmp r1, #0 3842 0038 00F0D680 beq .L293 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3843 .loc 1 2212 25 discriminator 1 view .LVU1340 3844 003c 002A cmp r2, #0 3845 003e 00F0D580 beq .L294 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3846 .loc 1 2212 46 discriminator 2 view .LVU1341 ARM GAS /tmp/ccNym1yT.s page 167 3847 0042 002B cmp r3, #0 3848 0044 00F0D480 beq .L295 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3849 .loc 1 2219 3 is_stmt 1 view .LVU1342 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3850 .loc 1 2219 11 is_stmt 0 view .LVU1343 3851 0048 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 3852 .LVL245: 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3853 .loc 1 2219 11 view .LVU1344 3854 004c C0B2 uxtb r0, r0 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3855 .loc 1 2219 6 view .LVU1345 3856 004e 0428 cmp r0, #4 3857 0050 02D0 beq .L278 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3858 .loc 1 2221 5 is_stmt 1 view .LVU1346 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3859 .loc 1 2221 17 is_stmt 0 view .LVU1347 3860 0052 0520 movs r0, #5 3861 0054 84F85D00 strb r0, [r4, #93] 3862 .L278: 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3863 .loc 1 2225 3 is_stmt 1 view .LVU1348 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3864 .loc 1 2225 21 is_stmt 0 view .LVU1349 3865 0058 0020 movs r0, #0 3866 005a 2066 str r0, [r4, #96] 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3867 .loc 1 2226 3 is_stmt 1 view .LVU1350 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3868 .loc 1 2226 21 is_stmt 0 view .LVU1351 3869 005c A163 str r1, [r4, #56] 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3870 .loc 1 2227 3 is_stmt 1 view .LVU1352 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3871 .loc 1 2227 21 is_stmt 0 view .LVU1353 3872 005e A387 strh r3, [r4, #60] @ movhi 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3873 .loc 1 2228 3 is_stmt 1 view .LVU1354 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3874 .loc 1 2228 21 is_stmt 0 view .LVU1355 3875 0060 E387 strh r3, [r4, #62] @ movhi 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3876 .loc 1 2229 3 is_stmt 1 view .LVU1356 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3877 .loc 1 2229 21 is_stmt 0 view .LVU1357 3878 0062 2264 str r2, [r4, #64] 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3879 .loc 1 2230 3 is_stmt 1 view .LVU1358 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3880 .loc 1 2230 21 is_stmt 0 view .LVU1359 3881 0064 A4F84430 strh r3, [r4, #68] @ movhi 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3882 .loc 1 2231 3 is_stmt 1 view .LVU1360 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3883 .loc 1 2231 21 is_stmt 0 view .LVU1361 ARM GAS /tmp/ccNym1yT.s page 168 3884 0068 A4F84630 strh r3, [r4, #70] @ movhi 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3885 .loc 1 2234 3 is_stmt 1 view .LVU1362 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3886 .loc 1 2234 21 is_stmt 0 view .LVU1363 3887 006c E064 str r0, [r4, #76] 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3888 .loc 1 2235 3 is_stmt 1 view .LVU1364 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3889 .loc 1 2235 21 is_stmt 0 view .LVU1365 3890 006e 2065 str r0, [r4, #80] 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3891 .loc 1 2256 3 is_stmt 1 view .LVU1366 3892 0070 2268 ldr r2, [r4] 3893 .LVL246: 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3894 .loc 1 2256 3 is_stmt 0 view .LVU1367 3895 0072 5368 ldr r3, [r2, #4] 3896 .LVL247: 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3897 .loc 1 2256 3 view .LVU1368 3898 0074 23F4C043 bic r3, r3, #24576 3899 0078 5360 str r3, [r2, #4] 3900 .LVL248: 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3901 .loc 1 2259 3 is_stmt 1 view .LVU1369 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3902 .loc 1 2259 17 is_stmt 0 view .LVU1370 3903 007a E368 ldr r3, [r4, #12] 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3904 .loc 1 2259 6 view .LVU1371 3905 007c B3F5E06F cmp r3, #1792 3906 0080 26D9 bls .L279 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3907 .loc 1 2262 5 is_stmt 1 view .LVU1372 3908 0082 2268 ldr r2, [r4] 3909 0084 5368 ldr r3, [r2, #4] 3910 0086 23F48053 bic r3, r3, #4096 3911 008a 5360 str r3, [r2, #4] 3912 .L280: 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3913 .loc 1 2302 3 view .LVU1373 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3914 .loc 1 2302 11 is_stmt 0 view .LVU1374 3915 008c 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 3916 0090 DBB2 uxtb r3, r3 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3917 .loc 1 2302 6 view .LVU1375 3918 0092 042B cmp r3, #4 3919 0094 67D0 beq .L297 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3920 .loc 1 2311 5 is_stmt 1 view .LVU1376 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3921 .loc 1 2311 9 is_stmt 0 view .LVU1377 3922 0096 A36D ldr r3, [r4, #88] 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3923 .loc 1 2311 40 view .LVU1378 ARM GAS /tmp/ccNym1yT.s page 169 3924 0098 574A ldr r2, .L300 3925 009a DA62 str r2, [r3, #44] 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3926 .loc 1 2312 5 is_stmt 1 view .LVU1379 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3927 .loc 1 2312 9 is_stmt 0 view .LVU1380 3928 009c A36D ldr r3, [r4, #88] 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3929 .loc 1 2312 40 view .LVU1381 3930 009e 574A ldr r2, .L300+4 3931 00a0 9A62 str r2, [r3, #40] 3932 .L285: 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3933 .loc 1 2316 3 is_stmt 1 view .LVU1382 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3934 .loc 1 2316 7 is_stmt 0 view .LVU1383 3935 00a2 A36D ldr r3, [r4, #88] 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3936 .loc 1 2316 35 view .LVU1384 3937 00a4 564A ldr r2, .L300+8 3938 00a6 1A63 str r2, [r3, #48] 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3939 .loc 1 2319 3 is_stmt 1 view .LVU1385 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3940 .loc 1 2319 7 is_stmt 0 view .LVU1386 3941 00a8 A36D ldr r3, [r4, #88] 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3942 .loc 1 2319 35 view .LVU1387 3943 00aa 0022 movs r2, #0 3944 00ac 5A63 str r2, [r3, #52] 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3945 .loc 1 2322 3 is_stmt 1 view .LVU1388 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3946 .loc 1 2322 63 is_stmt 0 view .LVU1389 3947 00ae 2168 ldr r1, [r4] 3948 .LVL249: 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3949 .loc 1 2323 38 view .LVU1390 3950 00b0 B4F84630 ldrh r3, [r4, #70] 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3951 .loc 1 2322 17 view .LVU1391 3952 00b4 9BB2 uxth r3, r3 3953 00b6 226C ldr r2, [r4, #64] 3954 00b8 0C31 adds r1, r1, #12 3955 00ba A06D ldr r0, [r4, #88] 3956 00bc FFF7FEFF bl HAL_DMA_Start_IT 3957 .LVL250: 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3958 .loc 1 2322 6 discriminator 1 view .LVU1392 3959 00c0 0028 cmp r0, #0 3960 00c2 57D0 beq .L286 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3961 .loc 1 2326 5 is_stmt 1 view .LVU1393 3962 00c4 236E ldr r3, [r4, #96] 3963 00c6 43F01003 orr r3, r3, #16 3964 00ca 2366 str r3, [r4, #96] 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 170 3965 .loc 1 2327 5 view .LVU1394 3966 .LVL251: 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3967 .loc 1 2329 5 view .LVU1395 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3968 .loc 1 2327 15 is_stmt 0 view .LVU1396 3969 00cc 0120 movs r0, #1 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3970 .loc 1 2329 5 view .LVU1397 3971 00ce 83E0 b .L277 3972 .LVL252: 3973 .L279: 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3974 .loc 1 2267 5 is_stmt 1 view .LVU1398 3975 00d0 2268 ldr r2, [r4] 3976 00d2 5368 ldr r3, [r2, #4] 3977 00d4 43F48053 orr r3, r3, #4096 3978 00d8 5360 str r3, [r2, #4] 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3979 .loc 1 2269 5 view .LVU1399 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3980 .loc 1 2269 13 is_stmt 0 view .LVU1400 3981 00da 636D ldr r3, [r4, #84] 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3982 .loc 1 2269 27 view .LVU1401 3983 00dc 5B69 ldr r3, [r3, #20] 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3984 .loc 1 2269 8 view .LVU1402 3985 00de B3F5806F cmp r3, #1024 3986 00e2 1AD0 beq .L298 3987 .L281: 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3988 .loc 1 2283 5 is_stmt 1 view .LVU1403 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3989 .loc 1 2283 13 is_stmt 0 view .LVU1404 3990 00e4 A36D ldr r3, [r4, #88] 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3991 .loc 1 2283 27 view .LVU1405 3992 00e6 5B69 ldr r3, [r3, #20] 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3993 .loc 1 2283 8 view .LVU1406 3994 00e8 B3F5806F cmp r3, #1024 3995 00ec CED1 bne .L280 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3996 .loc 1 2286 7 is_stmt 1 view .LVU1407 3997 00ee 2268 ldr r2, [r4] 3998 00f0 5368 ldr r3, [r2, #4] 3999 00f2 23F48053 bic r3, r3, #4096 4000 00f6 5360 str r3, [r2, #4] 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4001 .loc 1 2288 7 view .LVU1408 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4002 .loc 1 2288 16 is_stmt 0 view .LVU1409 4003 00f8 B4F84630 ldrh r3, [r4, #70] 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4004 .loc 1 2288 10 view .LVU1410 4005 00fc 13F0010F tst r3, #1 ARM GAS /tmp/ccNym1yT.s page 171 4006 0100 24D1 bne .L283 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 4007 .loc 1 2290 9 is_stmt 1 view .LVU1411 4008 0102 2268 ldr r2, [r4] 4009 0104 5368 ldr r3, [r2, #4] 4010 0106 23F40053 bic r3, r3, #8192 4011 010a 5360 str r3, [r2, #4] 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4012 .loc 1 2291 9 view .LVU1412 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4013 .loc 1 2291 33 is_stmt 0 view .LVU1413 4014 010c B4F84630 ldrh r3, [r4, #70] 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4015 .loc 1 2291 27 view .LVU1414 4016 0110 C3F34E03 ubfx r3, r3, #1, #15 4017 0114 A4F84630 strh r3, [r4, #70] @ movhi 4018 0118 B8E7 b .L280 4019 .L298: 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4020 .loc 1 2271 7 is_stmt 1 view .LVU1415 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4021 .loc 1 2271 16 is_stmt 0 view .LVU1416 4022 011a A38F ldrh r3, [r4, #60] 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4023 .loc 1 2271 10 view .LVU1417 4024 011c 13F0010F tst r3, #1 4025 0120 09D1 bne .L282 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 4026 .loc 1 2273 9 is_stmt 1 view .LVU1418 4027 0122 2268 ldr r2, [r4] 4028 0124 5368 ldr r3, [r2, #4] 4029 0126 23F48043 bic r3, r3, #16384 4030 012a 5360 str r3, [r2, #4] 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4031 .loc 1 2274 9 view .LVU1419 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4032 .loc 1 2274 33 is_stmt 0 view .LVU1420 4033 012c E38F ldrh r3, [r4, #62] 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4034 .loc 1 2274 27 view .LVU1421 4035 012e C3F34E03 ubfx r3, r3, #1, #15 4036 0132 E387 strh r3, [r4, #62] @ movhi 4037 0134 D6E7 b .L281 4038 .L282: 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 4039 .loc 1 2278 9 is_stmt 1 view .LVU1422 4040 0136 2268 ldr r2, [r4] 4041 0138 5368 ldr r3, [r2, #4] 4042 013a 43F48043 orr r3, r3, #16384 4043 013e 5360 str r3, [r2, #4] 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4044 .loc 1 2279 9 view .LVU1423 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4045 .loc 1 2279 34 is_stmt 0 view .LVU1424 4046 0140 E38F ldrh r3, [r4, #62] 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4047 .loc 1 2279 55 view .LVU1425 ARM GAS /tmp/ccNym1yT.s page 172 4048 0142 C3F34E03 ubfx r3, r3, #1, #15 4049 0146 0133 adds r3, r3, #1 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4050 .loc 1 2279 27 view .LVU1426 4051 0148 E387 strh r3, [r4, #62] @ movhi 4052 014a CBE7 b .L281 4053 .L283: 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4054 .loc 1 2295 9 is_stmt 1 view .LVU1427 4055 014c 2268 ldr r2, [r4] 4056 014e 5368 ldr r3, [r2, #4] 4057 0150 43F40053 orr r3, r3, #8192 4058 0154 5360 str r3, [r2, #4] 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4059 .loc 1 2296 9 view .LVU1428 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4060 .loc 1 2296 34 is_stmt 0 view .LVU1429 4061 0156 B4F84630 ldrh r3, [r4, #70] 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4062 .loc 1 2296 55 view .LVU1430 4063 015a C3F34E03 ubfx r3, r3, #1, #15 4064 015e 0133 adds r3, r3, #1 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4065 .loc 1 2296 27 view .LVU1431 4066 0160 A4F84630 strh r3, [r4, #70] @ movhi 4067 0164 92E7 b .L280 4068 .L297: 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4069 .loc 1 2305 5 is_stmt 1 view .LVU1432 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4070 .loc 1 2305 9 is_stmt 0 view .LVU1433 4071 0166 A36D ldr r3, [r4, #88] 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 4072 .loc 1 2305 40 view .LVU1434 4073 0168 264A ldr r2, .L300+12 4074 016a DA62 str r2, [r3, #44] 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4075 .loc 1 2306 5 is_stmt 1 view .LVU1435 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4076 .loc 1 2306 9 is_stmt 0 view .LVU1436 4077 016c A36D ldr r3, [r4, #88] 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4078 .loc 1 2306 40 view .LVU1437 4079 016e 264A ldr r2, .L300+16 4080 0170 9A62 str r2, [r3, #40] 4081 0172 96E7 b .L285 4082 .LVL253: 4083 .L286: 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4084 .loc 1 2333 3 is_stmt 1 view .LVU1438 4085 0174 2268 ldr r2, [r4] 4086 0176 5368 ldr r3, [r2, #4] 4087 0178 43F00103 orr r3, r3, #1 4088 017c 5360 str r3, [r2, #4] 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4089 .loc 1 2337 3 view .LVU1439 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; ARM GAS /tmp/ccNym1yT.s page 173 4090 .loc 1 2337 7 is_stmt 0 view .LVU1440 4091 017e 626D ldr r2, [r4, #84] 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 4092 .loc 1 2337 38 view .LVU1441 4093 0180 0023 movs r3, #0 4094 0182 D362 str r3, [r2, #44] 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4095 .loc 1 2338 3 is_stmt 1 view .LVU1442 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4096 .loc 1 2338 7 is_stmt 0 view .LVU1443 4097 0184 626D ldr r2, [r4, #84] 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 4098 .loc 1 2338 38 view .LVU1444 4099 0186 9362 str r3, [r2, #40] 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4100 .loc 1 2339 3 is_stmt 1 view .LVU1445 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4101 .loc 1 2339 7 is_stmt 0 view .LVU1446 4102 0188 626D ldr r2, [r4, #84] 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4103 .loc 1 2339 38 view .LVU1447 4104 018a 1363 str r3, [r2, #48] 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4105 .loc 1 2340 3 is_stmt 1 view .LVU1448 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4106 .loc 1 2340 7 is_stmt 0 view .LVU1449 4107 018c 626D ldr r2, [r4, #84] 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4108 .loc 1 2340 38 view .LVU1450 4109 018e 5363 str r3, [r2, #52] 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4110 .loc 1 2343 3 is_stmt 1 view .LVU1451 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4111 .loc 1 2343 91 is_stmt 0 view .LVU1452 4112 0190 2268 ldr r2, [r4] 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4113 .loc 1 2344 38 view .LVU1453 4114 0192 E38F ldrh r3, [r4, #62] 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4115 .loc 1 2343 17 view .LVU1454 4116 0194 9BB2 uxth r3, r3 4117 0196 0C32 adds r2, r2, #12 4118 0198 A16B ldr r1, [r4, #56] 4119 019a 606D ldr r0, [r4, #84] 4120 019c FFF7FEFF bl HAL_DMA_Start_IT 4121 .LVL254: 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 4122 .loc 1 2343 6 discriminator 1 view .LVU1455 4123 01a0 98B9 cbnz r0, .L299 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4124 .loc 1 2354 3 is_stmt 1 view .LVU1456 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4125 .loc 1 2354 12 is_stmt 0 view .LVU1457 4126 01a2 2368 ldr r3, [r4] 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4127 .loc 1 2354 22 view .LVU1458 4128 01a4 1A68 ldr r2, [r3] ARM GAS /tmp/ccNym1yT.s page 174 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4129 .loc 1 2354 6 view .LVU1459 4130 01a6 12F0400F tst r2, #64 4131 01aa 03D1 bne .L288 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4132 .loc 1 2357 5 is_stmt 1 view .LVU1460 4133 01ac 1A68 ldr r2, [r3] 4134 01ae 42F04002 orr r2, r2, #64 4135 01b2 1A60 str r2, [r3] 4136 .L288: 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4137 .loc 1 2360 3 view .LVU1461 4138 01b4 2268 ldr r2, [r4] 4139 01b6 5368 ldr r3, [r2, #4] 4140 01b8 43F02003 orr r3, r3, #32 4141 01bc 5360 str r3, [r2, #4] 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4142 .loc 1 2363 3 view .LVU1462 4143 01be 2268 ldr r2, [r4] 4144 01c0 5368 ldr r3, [r2, #4] 4145 01c2 43F00203 orr r3, r3, #2 4146 01c6 5360 str r3, [r2, #4] 4147 01c8 06E0 b .L277 4148 .L299: 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4149 .loc 1 2347 5 view .LVU1463 4150 01ca 236E ldr r3, [r4, #96] 4151 01cc 43F01003 orr r3, r3, #16 4152 01d0 2366 str r3, [r4, #96] 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4153 .loc 1 2348 5 view .LVU1464 4154 .LVL255: 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4155 .loc 1 2350 5 view .LVU1465 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4156 .loc 1 2348 15 is_stmt 0 view .LVU1466 4157 01d2 0120 movs r0, #1 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4158 .loc 1 2350 5 view .LVU1467 4159 01d4 00E0 b .L277 4160 .LVL256: 4161 .L290: 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4162 .loc 1 2208 15 view .LVU1468 4163 01d6 0220 movs r0, #2 4164 .LVL257: 4165 .L277: 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4166 .loc 1 2367 3 is_stmt 1 view .LVU1469 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4167 .loc 1 2367 3 view .LVU1470 4168 01d8 0023 movs r3, #0 4169 01da 84F85C30 strb r3, [r4, #92] 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4170 .loc 1 2367 3 view .LVU1471 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4171 .loc 1 2368 3 view .LVU1472 ARM GAS /tmp/ccNym1yT.s page 175 4172 .LVL258: 4173 .L275: 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4174 .loc 1 2369 1 is_stmt 0 view .LVU1473 4175 01de 38BD pop {r3, r4, r5, pc} 4176 .LVL259: 4177 .L291: 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4178 .loc 1 2208 15 view .LVU1474 4179 01e0 0220 movs r0, #2 4180 .LVL260: 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4181 .loc 1 2208 15 view .LVU1475 4182 01e2 F9E7 b .L277 4183 .LVL261: 4184 .L292: 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4185 .loc 1 2208 15 view .LVU1476 4186 01e4 0220 movs r0, #2 4187 .LVL262: 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4188 .loc 1 2208 15 view .LVU1477 4189 01e6 F7E7 b .L277 4190 .LVL263: 4191 .L293: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4192 .loc 1 2214 15 view .LVU1478 4193 01e8 0120 movs r0, #1 4194 .LVL264: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4195 .loc 1 2214 15 view .LVU1479 4196 01ea F5E7 b .L277 4197 .LVL265: 4198 .L294: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4199 .loc 1 2214 15 view .LVU1480 4200 01ec 0120 movs r0, #1 4201 .LVL266: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4202 .loc 1 2214 15 view .LVU1481 4203 01ee F3E7 b .L277 4204 .LVL267: 4205 .L295: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4206 .loc 1 2214 15 view .LVU1482 4207 01f0 0120 movs r0, #1 4208 .LVL268: 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4209 .loc 1 2214 15 view .LVU1483 4210 01f2 F1E7 b .L277 4211 .LVL269: 4212 .L289: 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4213 .loc 1 2199 3 discriminator 1 view .LVU1484 4214 01f4 0220 movs r0, #2 4215 01f6 F2E7 b .L275 4216 .L301: ARM GAS /tmp/ccNym1yT.s page 176 4217 .align 2 4218 .L300: 4219 01f8 00000000 .word SPI_DMAHalfTransmitReceiveCplt 4220 01fc 00000000 .word SPI_DMATransmitReceiveCplt 4221 0200 00000000 .word SPI_DMAError 4222 0204 00000000 .word SPI_DMAHalfReceiveCplt 4223 0208 00000000 .word SPI_DMAReceiveCplt 4224 .cfi_endproc 4225 .LFE135: 4227 .section .text.HAL_SPI_Receive_DMA,"ax",%progbits 4228 .align 1 4229 .global HAL_SPI_Receive_DMA 4230 .syntax unified 4231 .thumb 4232 .thumb_func 4234 HAL_SPI_Receive_DMA: 4235 .LVL270: 4236 .LFB134: 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4237 .loc 1 2032 1 is_stmt 1 view -0 4238 .cfi_startproc 4239 @ args = 0, pretend = 0, frame = 0 4240 @ frame_needed = 0, uses_anonymous_args = 0 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4241 .loc 1 2032 1 is_stmt 0 view .LVU1486 4242 0000 38B5 push {r3, r4, r5, lr} 4243 .cfi_def_cfa_offset 16 4244 .cfi_offset 3, -16 4245 .cfi_offset 4, -12 4246 .cfi_offset 5, -8 4247 .cfi_offset 14, -4 4248 0002 0446 mov r4, r0 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4249 .loc 1 2033 3 is_stmt 1 view .LVU1487 4250 .LVL271: 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4251 .loc 1 2036 3 view .LVU1488 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4252 .loc 1 2038 3 view .LVU1489 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4253 .loc 1 2038 11 is_stmt 0 view .LVU1490 4254 0004 90F85D50 ldrb r5, [r0, #93] @ zero_extendqisi2 4255 0008 EDB2 uxtb r5, r5 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4256 .loc 1 2038 6 view .LVU1491 4257 000a 012D cmp r5, #1 4258 000c 40F0A780 bne .L312 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4259 .loc 1 2044 3 is_stmt 1 view .LVU1492 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4260 .loc 1 2044 18 is_stmt 0 view .LVU1493 4261 0010 8068 ldr r0, [r0, #8] 4262 .LVL272: 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4263 .loc 1 2044 6 view .LVU1494 4264 0012 18B9 cbnz r0, .L304 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 177 4265 .loc 1 2044 68 discriminator 1 view .LVU1495 4266 0014 6368 ldr r3, [r4, #4] 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4267 .loc 1 2044 54 discriminator 1 view .LVU1496 4268 0016 B3F5827F cmp r3, #260 4269 001a 59D0 beq .L315 4270 .L304: 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4271 .loc 1 2056 3 is_stmt 1 view .LVU1497 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4272 .loc 1 2056 3 view .LVU1498 4273 001c 94F85C30 ldrb r3, [r4, #92] @ zero_extendqisi2 4274 0020 012B cmp r3, #1 4275 0022 00F0A280 beq .L313 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4276 .loc 1 2056 3 discriminator 2 view .LVU1499 4277 0026 0123 movs r3, #1 4278 0028 84F85C30 strb r3, [r4, #92] 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4279 .loc 1 2056 3 discriminator 2 view .LVU1500 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4280 .loc 1 2058 3 view .LVU1501 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4281 .loc 1 2058 6 is_stmt 0 view .LVU1502 4282 002c 0029 cmp r1, #0 4283 002e 00F09780 beq .L303 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4284 .loc 1 2058 23 discriminator 1 view .LVU1503 4285 0032 002A cmp r2, #0 4286 0034 00F09480 beq .L303 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4287 .loc 1 2065 3 is_stmt 1 view .LVU1504 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4288 .loc 1 2065 21 is_stmt 0 view .LVU1505 4289 0038 0423 movs r3, #4 4290 003a 84F85D30 strb r3, [r4, #93] 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4291 .loc 1 2066 3 is_stmt 1 view .LVU1506 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 4292 .loc 1 2066 21 is_stmt 0 view .LVU1507 4293 003e 0023 movs r3, #0 4294 0040 2366 str r3, [r4, #96] 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4295 .loc 1 2067 3 is_stmt 1 view .LVU1508 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 4296 .loc 1 2067 21 is_stmt 0 view .LVU1509 4297 0042 2164 str r1, [r4, #64] 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4298 .loc 1 2068 3 is_stmt 1 view .LVU1510 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 4299 .loc 1 2068 21 is_stmt 0 view .LVU1511 4300 0044 A4F84420 strh r2, [r4, #68] @ movhi 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4301 .loc 1 2069 3 is_stmt 1 view .LVU1512 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4302 .loc 1 2069 21 is_stmt 0 view .LVU1513 4303 0048 A4F84620 strh r2, [r4, #70] @ movhi ARM GAS /tmp/ccNym1yT.s page 178 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4304 .loc 1 2072 3 is_stmt 1 view .LVU1514 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 4305 .loc 1 2072 21 is_stmt 0 view .LVU1515 4306 004c E364 str r3, [r4, #76] 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 4307 .loc 1 2073 3 is_stmt 1 view .LVU1516 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 4308 .loc 1 2073 21 is_stmt 0 view .LVU1517 4309 004e 2365 str r3, [r4, #80] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4310 .loc 1 2074 3 is_stmt 1 view .LVU1518 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4311 .loc 1 2074 21 is_stmt 0 view .LVU1519 4312 0050 A387 strh r3, [r4, #60] @ movhi 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4313 .loc 1 2075 3 is_stmt 1 view .LVU1520 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4314 .loc 1 2075 21 is_stmt 0 view .LVU1521 4315 0052 E387 strh r3, [r4, #62] @ movhi 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4316 .loc 1 2078 3 is_stmt 1 view .LVU1522 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4317 .loc 1 2078 6 is_stmt 0 view .LVU1523 4318 0054 B0F5004F cmp r0, #32768 4319 0058 44D0 beq .L316 4320 .LVL273: 4321 .L306: 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 4322 .loc 1 2103 3 is_stmt 1 view .LVU1524 4323 005a 2268 ldr r2, [r4] 4324 005c 5368 ldr r3, [r2, #4] 4325 005e 23F40053 bic r3, r3, #8192 4326 0062 5360 str r3, [r2, #4] 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4327 .loc 1 2104 3 view .LVU1525 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4328 .loc 1 2104 17 is_stmt 0 view .LVU1526 4329 0064 E368 ldr r3, [r4, #12] 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4330 .loc 1 2104 6 view .LVU1527 4331 0066 B3F5E06F cmp r3, #1792 4332 006a 46D9 bls .L307 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4333 .loc 1 2107 5 is_stmt 1 view .LVU1528 4334 006c 2268 ldr r2, [r4] 4335 006e 5368 ldr r3, [r2, #4] 4336 0070 23F48053 bic r3, r3, #4096 4337 0074 5360 str r3, [r2, #4] 4338 .L308: 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4339 .loc 1 2133 3 view .LVU1529 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4340 .loc 1 2133 7 is_stmt 0 view .LVU1530 4341 0076 A36D ldr r3, [r4, #88] 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4342 .loc 1 2133 38 view .LVU1531 ARM GAS /tmp/ccNym1yT.s page 179 4343 0078 3D4A ldr r2, .L318 4344 007a DA62 str r2, [r3, #44] 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4345 .loc 1 2136 3 is_stmt 1 view .LVU1532 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4346 .loc 1 2136 7 is_stmt 0 view .LVU1533 4347 007c A36D ldr r3, [r4, #88] 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4348 .loc 1 2136 34 view .LVU1534 4349 007e 3D4A ldr r2, .L318+4 4350 0080 9A62 str r2, [r3, #40] 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4351 .loc 1 2139 3 is_stmt 1 view .LVU1535 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4352 .loc 1 2139 7 is_stmt 0 view .LVU1536 4353 0082 A36D ldr r3, [r4, #88] 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4354 .loc 1 2139 35 view .LVU1537 4355 0084 3C4A ldr r2, .L318+8 4356 0086 1A63 str r2, [r3, #48] 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4357 .loc 1 2142 3 is_stmt 1 view .LVU1538 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4358 .loc 1 2142 7 is_stmt 0 view .LVU1539 4359 0088 A36D ldr r3, [r4, #88] 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4360 .loc 1 2142 35 view .LVU1540 4361 008a 0022 movs r2, #0 4362 008c 5A63 str r2, [r3, #52] 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4363 .loc 1 2145 3 is_stmt 1 view .LVU1541 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4364 .loc 1 2145 63 is_stmt 0 view .LVU1542 4365 008e 2168 ldr r1, [r4] 4366 .LVL274: 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4367 .loc 1 2146 38 view .LVU1543 4368 0090 B4F84630 ldrh r3, [r4, #70] 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4369 .loc 1 2145 17 view .LVU1544 4370 0094 9BB2 uxth r3, r3 4371 0096 226C ldr r2, [r4, #64] 4372 0098 0C31 adds r1, r1, #12 4373 009a A06D ldr r0, [r4, #88] 4374 009c FFF7FEFF bl HAL_DMA_Start_IT 4375 .LVL275: 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 4376 .loc 1 2145 6 discriminator 1 view .LVU1545 4377 00a0 0146 mov r1, r0 4378 00a2 0028 cmp r0, #0 4379 00a4 56D1 bne .L317 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4380 .loc 1 2156 3 is_stmt 1 view .LVU1546 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4381 .loc 1 2156 12 is_stmt 0 view .LVU1547 4382 00a6 2368 ldr r3, [r4] 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 180 4383 .loc 1 2156 22 view .LVU1548 4384 00a8 1A68 ldr r2, [r3] 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4385 .loc 1 2156 6 view .LVU1549 4386 00aa 12F0400F tst r2, #64 4387 00ae 03D1 bne .L311 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4388 .loc 1 2159 5 is_stmt 1 view .LVU1550 4389 00b0 1A68 ldr r2, [r3] 4390 00b2 42F04002 orr r2, r2, #64 4391 00b6 1A60 str r2, [r3] 4392 .L311: 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4393 .loc 1 2163 3 view .LVU1551 4394 00b8 2268 ldr r2, [r4] 4395 00ba 5368 ldr r3, [r2, #4] 4396 00bc 43F02003 orr r3, r3, #32 4397 00c0 5360 str r3, [r2, #4] 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4398 .loc 1 2166 3 view .LVU1552 4399 00c2 2268 ldr r2, [r4] 4400 00c4 5368 ldr r3, [r2, #4] 4401 00c6 43F00103 orr r3, r3, #1 4402 00ca 5360 str r3, [r2, #4] 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4403 .loc 1 2033 21 is_stmt 0 view .LVU1553 4404 00cc 0D46 mov r5, r1 4405 00ce 47E0 b .L303 4406 .LVL276: 4407 .L315: 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4408 .loc 1 2046 5 is_stmt 1 view .LVU1554 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4409 .loc 1 2046 17 is_stmt 0 view .LVU1555 4410 00d0 0423 movs r3, #4 4411 00d2 84F85D30 strb r3, [r4, #93] 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4412 .loc 1 2049 5 is_stmt 1 view .LVU1556 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4413 .loc 1 2052 5 view .LVU1557 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4414 .loc 1 2052 12 is_stmt 0 view .LVU1558 4415 00d6 1346 mov r3, r2 4416 00d8 0A46 mov r2, r1 4417 .LVL277: 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4418 .loc 1 2052 12 view .LVU1559 4419 00da 2046 mov r0, r4 4420 00dc FFF7FEFF bl HAL_SPI_TransmitReceive_DMA 4421 .LVL278: 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4422 .loc 1 2052 12 view .LVU1560 4423 00e0 0546 mov r5, r0 4424 00e2 40E0 b .L305 4425 .LVL279: 4426 .L316: 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); ARM GAS /tmp/ccNym1yT.s page 181 4427 .loc 1 2081 5 is_stmt 1 view .LVU1561 4428 00e4 2268 ldr r2, [r4] 4429 .LVL280: 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 4430 .loc 1 2081 5 is_stmt 0 view .LVU1562 4431 00e6 1368 ldr r3, [r2] 4432 00e8 23F04003 bic r3, r3, #64 4433 00ec 1360 str r3, [r2] 4434 .LVL281: 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4435 .loc 1 2082 5 is_stmt 1 view .LVU1563 4436 00ee 2268 ldr r2, [r4] 4437 00f0 1368 ldr r3, [r2] 4438 00f2 23F48043 bic r3, r3, #16384 4439 00f6 1360 str r3, [r2] 4440 00f8 AFE7 b .L306 4441 .L307: 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4442 .loc 1 2112 5 view .LVU1564 4443 00fa 2268 ldr r2, [r4] 4444 00fc 5368 ldr r3, [r2, #4] 4445 00fe 43F48053 orr r3, r3, #4096 4446 0102 5360 str r3, [r2, #4] 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4447 .loc 1 2114 5 view .LVU1565 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4448 .loc 1 2114 13 is_stmt 0 view .LVU1566 4449 0104 A36D ldr r3, [r4, #88] 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4450 .loc 1 2114 27 view .LVU1567 4451 0106 5B69 ldr r3, [r3, #20] 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4452 .loc 1 2114 8 view .LVU1568 4453 0108 B3F5806F cmp r3, #1024 4454 010c B3D1 bne .L308 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4455 .loc 1 2117 7 is_stmt 1 view .LVU1569 4456 010e 2268 ldr r2, [r4] 4457 0110 5368 ldr r3, [r2, #4] 4458 0112 23F48053 bic r3, r3, #4096 4459 0116 5360 str r3, [r2, #4] 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4460 .loc 1 2119 7 view .LVU1570 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4461 .loc 1 2119 16 is_stmt 0 view .LVU1571 4462 0118 B4F84630 ldrh r3, [r4, #70] 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4463 .loc 1 2119 10 view .LVU1572 4464 011c 13F0010F tst r3, #1 4465 0120 0BD1 bne .L309 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 4466 .loc 1 2121 9 is_stmt 1 view .LVU1573 4467 0122 2268 ldr r2, [r4] 4468 0124 5368 ldr r3, [r2, #4] 4469 0126 23F40053 bic r3, r3, #8192 4470 012a 5360 str r3, [r2, #4] 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 182 4471 .loc 1 2122 9 view .LVU1574 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4472 .loc 1 2122 33 is_stmt 0 view .LVU1575 4473 012c B4F84630 ldrh r3, [r4, #70] 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4474 .loc 1 2122 27 view .LVU1576 4475 0130 C3F34E03 ubfx r3, r3, #1, #15 4476 0134 A4F84630 strh r3, [r4, #70] @ movhi 4477 0138 9DE7 b .L308 4478 .L309: 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 4479 .loc 1 2126 9 is_stmt 1 view .LVU1577 4480 013a 2268 ldr r2, [r4] 4481 013c 5368 ldr r3, [r2, #4] 4482 013e 43F40053 orr r3, r3, #8192 4483 0142 5360 str r3, [r2, #4] 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4484 .loc 1 2127 9 view .LVU1578 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4485 .loc 1 2127 34 is_stmt 0 view .LVU1579 4486 0144 B4F84630 ldrh r3, [r4, #70] 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4487 .loc 1 2127 55 view .LVU1580 4488 0148 C3F34E03 ubfx r3, r3, #1, #15 4489 014c 0133 adds r3, r3, #1 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4490 .loc 1 2127 27 view .LVU1581 4491 014e A4F84630 strh r3, [r4, #70] @ movhi 4492 0152 90E7 b .L308 4493 .LVL282: 4494 .L317: 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4495 .loc 1 2149 5 is_stmt 1 view .LVU1582 4496 0154 236E ldr r3, [r4, #96] 4497 0156 43F01003 orr r3, r3, #16 4498 015a 2366 str r3, [r4, #96] 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4499 .loc 1 2150 5 view .LVU1583 4500 .LVL283: 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4501 .loc 1 2152 5 view .LVU1584 4502 015c 00E0 b .L303 4503 .LVL284: 4504 .L312: 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 4505 .loc 1 2040 15 is_stmt 0 view .LVU1585 4506 015e 0225 movs r5, #2 4507 .LVL285: 4508 .L303: 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4509 .loc 1 2170 3 is_stmt 1 view .LVU1586 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4510 .loc 1 2170 3 view .LVU1587 4511 0160 0023 movs r3, #0 4512 0162 84F85C30 strb r3, [r4, #92] 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4513 .loc 1 2170 3 view .LVU1588 ARM GAS /tmp/ccNym1yT.s page 183 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4514 .loc 1 2171 3 view .LVU1589 4515 .LVL286: 4516 .L305: 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4517 .loc 1 2172 1 is_stmt 0 view .LVU1590 4518 0166 2846 mov r0, r5 4519 0168 38BD pop {r3, r4, r5, pc} 4520 .LVL287: 4521 .L313: 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4522 .loc 1 2056 3 discriminator 1 view .LVU1591 4523 016a 0225 movs r5, #2 4524 016c FBE7 b .L305 4525 .L319: 4526 016e 00BF .align 2 4527 .L318: 4528 0170 00000000 .word SPI_DMAHalfReceiveCplt 4529 0174 00000000 .word SPI_DMAReceiveCplt 4530 0178 00000000 .word SPI_DMAError 4531 .cfi_endproc 4532 .LFE134: 4534 .section .text.HAL_SPI_Abort,"ax",%progbits 4535 .align 1 4536 .global HAL_SPI_Abort 4537 .syntax unified 4538 .thumb 4539 .thumb_func 4541 HAL_SPI_Abort: 4542 .LVL288: 4543 .LFB136: 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4544 .loc 1 2385 1 is_stmt 1 view -0 4545 .cfi_startproc 4546 @ args = 0, pretend = 0, frame = 16 4547 @ frame_needed = 0, uses_anonymous_args = 0 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 4548 .loc 1 2385 1 is_stmt 0 view .LVU1593 4549 0000 10B5 push {r4, lr} 4550 .cfi_def_cfa_offset 8 4551 .cfi_offset 4, -8 4552 .cfi_offset 14, -4 4553 0002 86B0 sub sp, sp, #24 4554 .cfi_def_cfa_offset 32 4555 0004 0446 mov r4, r0 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4556 .loc 1 2386 3 is_stmt 1 view .LVU1594 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 4557 .loc 1 2387 3 view .LVU1595 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4558 .loc 1 2388 3 view .LVU1596 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 4559 .loc 1 2391 3 view .LVU1597 4560 .LVL289: 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4561 .loc 1 2392 3 view .LVU1598 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; ARM GAS /tmp/ccNym1yT.s page 184 4562 .loc 1 2392 61 is_stmt 0 view .LVU1599 4563 0006 5E4B ldr r3, .L341 4564 0008 1B68 ldr r3, [r3] 4565 000a 5E4A ldr r2, .L341+4 4566 000c A2FB0323 umull r2, r3, r2, r3 4567 0010 5B0A lsrs r3, r3, #9 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4568 .loc 1 2392 36 view .LVU1600 4569 0012 6422 movs r2, #100 4570 0014 02FB03F3 mul r3, r2, r3 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4571 .loc 1 2392 14 view .LVU1601 4572 0018 0493 str r3, [sp, #16] 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4573 .loc 1 2393 3 is_stmt 1 view .LVU1602 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4574 .loc 1 2393 9 is_stmt 0 view .LVU1603 4575 001a 049B ldr r3, [sp, #16] 4576 001c 0593 str r3, [sp, #20] 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4577 .loc 1 2396 3 is_stmt 1 view .LVU1604 4578 001e 0268 ldr r2, [r0] 4579 0020 5368 ldr r3, [r2, #4] 4580 0022 23F02003 bic r3, r3, #32 4581 0026 5360 str r3, [r2, #4] 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4582 .loc 1 2399 3 view .LVU1605 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4583 .loc 1 2399 7 is_stmt 0 view .LVU1606 4584 0028 0268 ldr r2, [r0] 4585 002a 5368 ldr r3, [r2, #4] 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4586 .loc 1 2399 6 view .LVU1607 4587 002c 13F0800F tst r3, #128 4588 0030 12D0 beq .L321 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4589 .loc 1 2401 5 is_stmt 1 view .LVU1608 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4590 .loc 1 2401 17 is_stmt 0 view .LVU1609 4591 0032 554B ldr r3, .L341+8 4592 0034 0365 str r3, [r0, #80] 4593 .L324: 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4594 .loc 1 2403 5 is_stmt 1 view .LVU1610 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4595 .loc 1 2405 7 view .LVU1611 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4596 .loc 1 2405 17 is_stmt 0 view .LVU1612 4597 0036 059B ldr r3, [sp, #20] 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4598 .loc 1 2405 10 view .LVU1613 4599 0038 43B1 cbz r3, .L339 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4600 .loc 1 2410 7 is_stmt 1 view .LVU1614 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4601 .loc 1 2410 12 is_stmt 0 view .LVU1615 4602 003a 059B ldr r3, [sp, #20] ARM GAS /tmp/ccNym1yT.s page 185 4603 003c 013B subs r3, r3, #1 4604 003e 0593 str r3, [sp, #20] 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4605 .loc 1 2411 26 is_stmt 1 view .LVU1616 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4606 .loc 1 2411 18 is_stmt 0 view .LVU1617 4607 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4608 0044 DBB2 uxtb r3, r3 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4609 .loc 1 2411 26 view .LVU1618 4610 0046 072B cmp r3, #7 4611 0048 F5D1 bne .L324 4612 004a 03E0 b .L323 4613 .L339: 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4614 .loc 1 2407 9 is_stmt 1 view .LVU1619 4615 004c 236E ldr r3, [r4, #96] 4616 004e 43F04003 orr r3, r3, #64 4617 0052 2366 str r3, [r4, #96] 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4618 .loc 1 2408 9 view .LVU1620 4619 .L323: 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4620 .loc 1 2413 5 view .LVU1621 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4621 .loc 1 2413 11 is_stmt 0 view .LVU1622 4622 0054 049B ldr r3, [sp, #16] 4623 0056 0593 str r3, [sp, #20] 4624 .L321: 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4625 .loc 1 2416 3 is_stmt 1 view .LVU1623 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4626 .loc 1 2416 7 is_stmt 0 view .LVU1624 4627 0058 5368 ldr r3, [r2, #4] 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4628 .loc 1 2416 6 view .LVU1625 4629 005a 13F0400F tst r3, #64 4630 005e 12D0 beq .L325 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4631 .loc 1 2418 5 is_stmt 1 view .LVU1626 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 4632 .loc 1 2418 17 is_stmt 0 view .LVU1627 4633 0060 4A4B ldr r3, .L341+12 4634 0062 E364 str r3, [r4, #76] 4635 .L328: 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4636 .loc 1 2420 5 is_stmt 1 view .LVU1628 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4637 .loc 1 2422 7 view .LVU1629 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4638 .loc 1 2422 17 is_stmt 0 view .LVU1630 4639 0064 059B ldr r3, [sp, #20] 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4640 .loc 1 2422 10 view .LVU1631 4641 0066 43B1 cbz r3, .L340 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4642 .loc 1 2427 7 is_stmt 1 view .LVU1632 ARM GAS /tmp/ccNym1yT.s page 186 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4643 .loc 1 2427 12 is_stmt 0 view .LVU1633 4644 0068 059B ldr r3, [sp, #20] 4645 006a 013B subs r3, r3, #1 4646 006c 0593 str r3, [sp, #20] 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4647 .loc 1 2428 26 is_stmt 1 view .LVU1634 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4648 .loc 1 2428 18 is_stmt 0 view .LVU1635 4649 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 4650 0072 DBB2 uxtb r3, r3 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 4651 .loc 1 2428 26 view .LVU1636 4652 0074 072B cmp r3, #7 4653 0076 F5D1 bne .L328 4654 0078 03E0 b .L327 4655 .L340: 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4656 .loc 1 2424 9 is_stmt 1 view .LVU1637 4657 007a 236E ldr r3, [r4, #96] 4658 007c 43F04003 orr r3, r3, #64 4659 0080 2366 str r3, [r4, #96] 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4660 .loc 1 2425 9 view .LVU1638 4661 .L327: 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4662 .loc 1 2430 5 view .LVU1639 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4663 .loc 1 2430 11 is_stmt 0 view .LVU1640 4664 0082 049B ldr r3, [sp, #16] 4665 0084 0593 str r3, [sp, #20] 4666 .L325: 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4667 .loc 1 2434 3 is_stmt 1 view .LVU1641 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4668 .loc 1 2434 7 is_stmt 0 view .LVU1642 4669 0086 5368 ldr r3, [r2, #4] 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4670 .loc 1 2434 6 view .LVU1643 4671 0088 13F0020F tst r3, #2 4672 008c 2AD0 beq .L329 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4673 .loc 1 2437 5 is_stmt 1 view .LVU1644 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4674 .loc 1 2437 13 is_stmt 0 view .LVU1645 4675 008e 636D ldr r3, [r4, #84] 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4676 .loc 1 2437 8 view .LVU1646 4677 0090 43B3 cbz r3, .L329 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4678 .loc 1 2441 7 is_stmt 1 view .LVU1647 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4679 .loc 1 2441 39 is_stmt 0 view .LVU1648 4680 0092 0022 movs r2, #0 4681 0094 5A63 str r2, [r3, #52] 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4682 .loc 1 2444 7 is_stmt 1 view .LVU1649 ARM GAS /tmp/ccNym1yT.s page 187 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4683 .loc 1 2444 11 is_stmt 0 view .LVU1650 4684 0096 606D ldr r0, [r4, #84] 4685 .LVL290: 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4686 .loc 1 2444 11 view .LVU1651 4687 0098 FFF7FEFF bl HAL_DMA_Abort 4688 .LVL291: 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4689 .loc 1 2444 10 discriminator 1 view .LVU1652 4690 009c 08B1 cbz r0, .L330 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4691 .loc 1 2446 9 is_stmt 1 view .LVU1653 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4692 .loc 1 2446 25 is_stmt 0 view .LVU1654 4693 009e 4023 movs r3, #64 4694 00a0 2366 str r3, [r4, #96] 4695 .L330: 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4696 .loc 1 2450 7 is_stmt 1 view .LVU1655 4697 00a2 2268 ldr r2, [r4] 4698 00a4 5368 ldr r3, [r2, #4] 4699 00a6 23F00203 bic r3, r3, #2 4700 00aa 5360 str r3, [r2, #4] 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4701 .loc 1 2452 7 view .LVU1656 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4702 .loc 1 2452 11 is_stmt 0 view .LVU1657 4703 00ac FFF7FEFF bl HAL_GetTick 4704 .LVL292: 4705 00b0 0246 mov r2, r0 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4706 .loc 1 2452 11 discriminator 1 view .LVU1658 4707 00b2 6421 movs r1, #100 4708 00b4 2046 mov r0, r4 4709 00b6 FFF7FEFF bl SPI_EndRxTxTransaction 4710 .LVL293: 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4711 .loc 1 2452 10 discriminator 2 view .LVU1659 4712 00ba 08B1 cbz r0, .L331 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4713 .loc 1 2454 9 is_stmt 1 view .LVU1660 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4714 .loc 1 2454 25 is_stmt 0 view .LVU1661 4715 00bc 4023 movs r3, #64 4716 00be 2366 str r3, [r4, #96] 4717 .L331: 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4718 .loc 1 2458 7 is_stmt 1 view .LVU1662 4719 00c0 2268 ldr r2, [r4] 4720 00c2 1368 ldr r3, [r2] 4721 00c4 23F04003 bic r3, r3, #64 4722 00c8 1360 str r3, [r2] 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4723 .loc 1 2461 7 view .LVU1663 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4724 .loc 1 2461 11 is_stmt 0 view .LVU1664 ARM GAS /tmp/ccNym1yT.s page 188 4725 00ca FFF7FEFF bl HAL_GetTick 4726 .LVL294: 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4727 .loc 1 2461 11 discriminator 1 view .LVU1665 4728 00ce 0090 str r0, [sp] 4729 00d0 6423 movs r3, #100 4730 00d2 0022 movs r2, #0 4731 00d4 4FF4C061 mov r1, #1536 4732 00d8 2046 mov r0, r4 4733 00da FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4734 .LVL295: 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4735 .loc 1 2461 10 discriminator 2 view .LVU1666 4736 00de 08B1 cbz r0, .L329 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4737 .loc 1 2463 9 is_stmt 1 view .LVU1667 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4738 .loc 1 2463 25 is_stmt 0 view .LVU1668 4739 00e0 4023 movs r3, #64 4740 00e2 2366 str r3, [r4, #96] 4741 .L329: 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4742 .loc 1 2469 3 is_stmt 1 view .LVU1669 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4743 .loc 1 2469 7 is_stmt 0 view .LVU1670 4744 00e4 2368 ldr r3, [r4] 4745 00e6 5B68 ldr r3, [r3, #4] 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4746 .loc 1 2469 6 view .LVU1671 4747 00e8 13F0010F tst r3, #1 4748 00ec 2CD0 beq .L332 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4749 .loc 1 2472 5 is_stmt 1 view .LVU1672 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4750 .loc 1 2472 13 is_stmt 0 view .LVU1673 4751 00ee A36D ldr r3, [r4, #88] 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4752 .loc 1 2472 8 view .LVU1674 4753 00f0 53B3 cbz r3, .L332 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4754 .loc 1 2476 7 is_stmt 1 view .LVU1675 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4755 .loc 1 2476 39 is_stmt 0 view .LVU1676 4756 00f2 0022 movs r2, #0 4757 00f4 5A63 str r2, [r3, #52] 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4758 .loc 1 2479 7 is_stmt 1 view .LVU1677 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4759 .loc 1 2479 11 is_stmt 0 view .LVU1678 4760 00f6 A06D ldr r0, [r4, #88] 4761 00f8 FFF7FEFF bl HAL_DMA_Abort 4762 .LVL296: 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4763 .loc 1 2479 10 discriminator 1 view .LVU1679 4764 00fc 08B1 cbz r0, .L333 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4765 .loc 1 2481 9 is_stmt 1 view .LVU1680 ARM GAS /tmp/ccNym1yT.s page 189 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4766 .loc 1 2481 25 is_stmt 0 view .LVU1681 4767 00fe 4023 movs r3, #64 4768 0100 2366 str r3, [r4, #96] 4769 .L333: 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4770 .loc 1 2485 7 is_stmt 1 view .LVU1682 4771 0102 2268 ldr r2, [r4] 4772 0104 1368 ldr r3, [r2] 4773 0106 23F04003 bic r3, r3, #64 4774 010a 1360 str r3, [r2] 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4775 .loc 1 2488 7 view .LVU1683 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4776 .loc 1 2488 11 is_stmt 0 view .LVU1684 4777 010c FFF7FEFF bl HAL_GetTick 4778 .LVL297: 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4779 .loc 1 2488 11 discriminator 1 view .LVU1685 4780 0110 0090 str r0, [sp] 4781 0112 6423 movs r3, #100 4782 0114 0022 movs r2, #0 4783 0116 8021 movs r1, #128 4784 0118 2046 mov r0, r4 4785 011a FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 4786 .LVL298: 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4787 .loc 1 2488 10 discriminator 2 view .LVU1686 4788 011e 08B1 cbz r0, .L334 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4789 .loc 1 2490 9 is_stmt 1 view .LVU1687 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4790 .loc 1 2490 25 is_stmt 0 view .LVU1688 4791 0120 4023 movs r3, #64 4792 0122 2366 str r3, [r4, #96] 4793 .L334: 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4794 .loc 1 2494 7 is_stmt 1 view .LVU1689 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4795 .loc 1 2494 11 is_stmt 0 view .LVU1690 4796 0124 FFF7FEFF bl HAL_GetTick 4797 .LVL299: 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4798 .loc 1 2494 11 discriminator 1 view .LVU1691 4799 0128 0090 str r0, [sp] 4800 012a 6423 movs r3, #100 4801 012c 0022 movs r2, #0 4802 012e 4FF4C061 mov r1, #1536 4803 0132 2046 mov r0, r4 4804 0134 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4805 .LVL300: 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4806 .loc 1 2494 10 discriminator 2 view .LVU1692 4807 0138 08B1 cbz r0, .L335 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4808 .loc 1 2496 9 is_stmt 1 view .LVU1693 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 190 4809 .loc 1 2496 25 is_stmt 0 view .LVU1694 4810 013a 4023 movs r3, #64 4811 013c 2366 str r3, [r4, #96] 4812 .L335: 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4813 .loc 1 2500 7 is_stmt 1 view .LVU1695 4814 013e 2268 ldr r2, [r4] 4815 0140 5368 ldr r3, [r2, #4] 4816 0142 23F00103 bic r3, r3, #1 4817 0146 5360 str r3, [r2, #4] 4818 .L332: 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4819 .loc 1 2504 3 view .LVU1696 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4820 .loc 1 2504 21 is_stmt 0 view .LVU1697 4821 0148 0023 movs r3, #0 4822 014a A4F84630 strh r3, [r4, #70] @ movhi 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4823 .loc 1 2505 3 is_stmt 1 view .LVU1698 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4824 .loc 1 2505 21 is_stmt 0 view .LVU1699 4825 014e E387 strh r3, [r4, #62] @ movhi 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4826 .loc 1 2508 3 is_stmt 1 view .LVU1700 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4827 .loc 1 2508 11 is_stmt 0 view .LVU1701 4828 0150 236E ldr r3, [r4, #96] 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4829 .loc 1 2508 6 view .LVU1702 4830 0152 402B cmp r3, #64 4831 0154 12D0 beq .L337 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4832 .loc 1 2516 5 is_stmt 1 view .LVU1703 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4833 .loc 1 2516 21 is_stmt 0 view .LVU1704 4834 0156 0020 movs r0, #0 4835 0158 2066 str r0, [r4, #96] 4836 .L336: 4837 .LVL301: 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4838 .loc 1 2520 3 is_stmt 1 view .LVU1705 4839 .LBB3: 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4840 .loc 1 2520 3 view .LVU1706 4841 015a 0022 movs r2, #0 4842 015c 0292 str r2, [sp, #8] 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4843 .loc 1 2520 3 view .LVU1707 4844 015e 2368 ldr r3, [r4] 4845 0160 D968 ldr r1, [r3, #12] 4846 0162 0291 str r1, [sp, #8] 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4847 .loc 1 2520 3 view .LVU1708 4848 0164 9968 ldr r1, [r3, #8] 4849 0166 0291 str r1, [sp, #8] 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4850 .loc 1 2520 3 view .LVU1709 ARM GAS /tmp/ccNym1yT.s page 191 4851 0168 0299 ldr r1, [sp, #8] 4852 .LBE3: 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4853 .loc 1 2520 3 view .LVU1710 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4854 .loc 1 2521 3 view .LVU1711 4855 .LBB4: 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4856 .loc 1 2521 3 view .LVU1712 4857 016a 0392 str r2, [sp, #12] 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4858 .loc 1 2521 3 view .LVU1713 4859 016c 9B68 ldr r3, [r3, #8] 4860 016e 0393 str r3, [sp, #12] 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4861 .loc 1 2521 3 view .LVU1714 4862 0170 039B ldr r3, [sp, #12] 4863 .LBE4: 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4864 .loc 1 2521 3 view .LVU1715 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4865 .loc 1 2524 3 view .LVU1716 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4866 .loc 1 2524 15 is_stmt 0 view .LVU1717 4867 0172 0123 movs r3, #1 4868 0174 84F85D30 strb r3, [r4, #93] 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4869 .loc 1 2526 3 is_stmt 1 view .LVU1718 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4870 .loc 1 2527 1 is_stmt 0 view .LVU1719 4871 0178 06B0 add sp, sp, #24 4872 .cfi_remember_state 4873 .cfi_def_cfa_offset 8 4874 @ sp needed 4875 017a 10BD pop {r4, pc} 4876 .LVL302: 4877 .L337: 4878 .cfi_restore_state 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4879 .loc 1 2511 15 view .LVU1720 4880 017c 0120 movs r0, #1 4881 017e ECE7 b .L336 4882 .L342: 4883 .align 2 4884 .L341: 4885 0180 00000000 .word SystemCoreClock 4886 0184 F1197605 .word 91625969 4887 0188 00000000 .word SPI_AbortTx_ISR 4888 018c 00000000 .word SPI_AbortRx_ISR 4889 .cfi_endproc 4890 .LFE136: 4892 .section .text.HAL_SPI_DMAPause,"ax",%progbits 4893 .align 1 4894 .global HAL_SPI_DMAPause 4895 .syntax unified 4896 .thumb 4897 .thumb_func ARM GAS /tmp/ccNym1yT.s page 192 4899 HAL_SPI_DMAPause: 4900 .LVL303: 4901 .LFB138: 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4902 .loc 1 2706 1 is_stmt 1 view -0 4903 .cfi_startproc 4904 @ args = 0, pretend = 0, frame = 0 4905 @ frame_needed = 0, uses_anonymous_args = 0 4906 @ link register save eliminated. 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4907 .loc 1 2708 3 view .LVU1722 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4908 .loc 1 2708 3 view .LVU1723 4909 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4910 0004 012B cmp r3, #1 4911 0006 0CD0 beq .L345 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4912 .loc 1 2708 3 discriminator 2 view .LVU1724 4913 0008 0123 movs r3, #1 4914 000a 80F85C30 strb r3, [r0, #92] 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4915 .loc 1 2708 3 discriminator 2 view .LVU1725 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4916 .loc 1 2711 3 view .LVU1726 4917 000e 0268 ldr r2, [r0] 4918 0010 5368 ldr r3, [r2, #4] 4919 0012 23F00303 bic r3, r3, #3 4920 0016 5360 str r3, [r2, #4] 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4921 .loc 1 2714 3 view .LVU1727 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4922 .loc 1 2714 3 view .LVU1728 4923 0018 0023 movs r3, #0 4924 001a 80F85C30 strb r3, [r0, #92] 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4925 .loc 1 2714 3 view .LVU1729 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4926 .loc 1 2716 3 view .LVU1730 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4927 .loc 1 2716 10 is_stmt 0 view .LVU1731 4928 001e 1846 mov r0, r3 4929 .LVL304: 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4930 .loc 1 2716 10 view .LVU1732 4931 0020 7047 bx lr 4932 .LVL305: 4933 .L345: 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4934 .loc 1 2708 3 discriminator 1 view .LVU1733 4935 0022 0220 movs r0, #2 4936 .LVL306: 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4937 .loc 1 2717 1 view .LVU1734 4938 0024 7047 bx lr 4939 .cfi_endproc 4940 .LFE138: 4942 .section .text.HAL_SPI_DMAResume,"ax",%progbits ARM GAS /tmp/ccNym1yT.s page 193 4943 .align 1 4944 .global HAL_SPI_DMAResume 4945 .syntax unified 4946 .thumb 4947 .thumb_func 4949 HAL_SPI_DMAResume: 4950 .LVL307: 4951 .LFB139: 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 4952 .loc 1 2726 1 is_stmt 1 view -0 4953 .cfi_startproc 4954 @ args = 0, pretend = 0, frame = 0 4955 @ frame_needed = 0, uses_anonymous_args = 0 4956 @ link register save eliminated. 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4957 .loc 1 2728 3 view .LVU1736 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4958 .loc 1 2728 3 view .LVU1737 4959 0000 90F85C30 ldrb r3, [r0, #92] @ zero_extendqisi2 4960 0004 012B cmp r3, #1 4961 0006 0CD0 beq .L348 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4962 .loc 1 2728 3 discriminator 2 view .LVU1738 4963 0008 0123 movs r3, #1 4964 000a 80F85C30 strb r3, [r0, #92] 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4965 .loc 1 2728 3 discriminator 2 view .LVU1739 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4966 .loc 1 2731 3 view .LVU1740 4967 000e 0268 ldr r2, [r0] 4968 0010 5368 ldr r3, [r2, #4] 4969 0012 43F00303 orr r3, r3, #3 4970 0016 5360 str r3, [r2, #4] 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4971 .loc 1 2734 3 view .LVU1741 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4972 .loc 1 2734 3 view .LVU1742 4973 0018 0023 movs r3, #0 4974 001a 80F85C30 strb r3, [r0, #92] 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4975 .loc 1 2734 3 view .LVU1743 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4976 .loc 1 2736 3 view .LVU1744 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4977 .loc 1 2736 10 is_stmt 0 view .LVU1745 4978 001e 1846 mov r0, r3 4979 .LVL308: 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4980 .loc 1 2736 10 view .LVU1746 4981 0020 7047 bx lr 4982 .LVL309: 4983 .L348: 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4984 .loc 1 2728 3 discriminator 1 view .LVU1747 4985 0022 0220 movs r0, #2 4986 .LVL310: 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 194 4987 .loc 1 2737 1 view .LVU1748 4988 0024 7047 bx lr 4989 .cfi_endproc 4990 .LFE139: 4992 .section .text.HAL_SPI_DMAStop,"ax",%progbits 4993 .align 1 4994 .global HAL_SPI_DMAStop 4995 .syntax unified 4996 .thumb 4997 .thumb_func 4999 HAL_SPI_DMAStop: 5000 .LVL311: 5001 .LFB140: 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 5002 .loc 1 2746 1 is_stmt 1 view -0 5003 .cfi_startproc 5004 @ args = 0, pretend = 0, frame = 0 5005 @ frame_needed = 0, uses_anonymous_args = 0 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 5006 .loc 1 2746 1 is_stmt 0 view .LVU1750 5007 0000 38B5 push {r3, r4, r5, lr} 5008 .cfi_def_cfa_offset 16 5009 .cfi_offset 3, -16 5010 .cfi_offset 4, -12 5011 .cfi_offset 5, -8 5012 .cfi_offset 14, -4 5013 0002 0446 mov r4, r0 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5014 .loc 1 2747 3 is_stmt 1 view .LVU1751 5015 .LVL312: 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5016 .loc 1 2755 3 view .LVU1752 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5017 .loc 1 2755 11 is_stmt 0 view .LVU1753 5018 0004 406D ldr r0, [r0, #84] 5019 .LVL313: 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5020 .loc 1 2755 6 view .LVU1754 5021 0006 48B1 cbz r0, .L352 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5022 .loc 1 2757 5 is_stmt 1 view .LVU1755 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5023 .loc 1 2757 19 is_stmt 0 view .LVU1756 5024 0008 FFF7FEFF bl HAL_DMA_Abort 5025 .LVL314: 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5026 .loc 1 2757 8 discriminator 1 view .LVU1757 5027 000c 0546 mov r5, r0 5028 000e 30B1 cbz r0, .L350 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5029 .loc 1 2759 7 is_stmt 1 view .LVU1758 5030 0010 236E ldr r3, [r4, #96] 5031 0012 43F01003 orr r3, r3, #16 5032 0016 2366 str r3, [r4, #96] 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5033 .loc 1 2760 7 view .LVU1759 5034 .LVL315: ARM GAS /tmp/ccNym1yT.s page 195 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5035 .loc 1 2760 17 is_stmt 0 view .LVU1760 5036 0018 0125 movs r5, #1 5037 001a 00E0 b .L350 5038 .LVL316: 5039 .L352: 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 5040 .loc 1 2747 21 view .LVU1761 5041 001c 0025 movs r5, #0 5042 .LVL317: 5043 .L350: 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5044 .loc 1 2764 3 is_stmt 1 view .LVU1762 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5045 .loc 1 2764 11 is_stmt 0 view .LVU1763 5046 001e A06D ldr r0, [r4, #88] 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5047 .loc 1 2764 6 view .LVU1764 5048 0020 38B1 cbz r0, .L351 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5049 .loc 1 2766 5 is_stmt 1 view .LVU1765 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5050 .loc 1 2766 19 is_stmt 0 view .LVU1766 5051 0022 FFF7FEFF bl HAL_DMA_Abort 5052 .LVL318: 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5053 .loc 1 2766 8 discriminator 1 view .LVU1767 5054 0026 20B1 cbz r0, .L351 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 5055 .loc 1 2768 7 is_stmt 1 view .LVU1768 5056 0028 236E ldr r3, [r4, #96] 5057 002a 43F01003 orr r3, r3, #16 5058 002e 2366 str r3, [r4, #96] 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5059 .loc 1 2769 7 view .LVU1769 5060 .LVL319: 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5061 .loc 1 2769 17 is_stmt 0 view .LVU1770 5062 0030 0125 movs r5, #1 5063 .LVL320: 5064 .L351: 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5065 .loc 1 2774 3 is_stmt 1 view .LVU1771 5066 0032 2268 ldr r2, [r4] 5067 0034 5368 ldr r3, [r2, #4] 5068 0036 23F00303 bic r3, r3, #3 5069 003a 5360 str r3, [r2, #4] 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5070 .loc 1 2775 3 view .LVU1772 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 5071 .loc 1 2775 15 is_stmt 0 view .LVU1773 5072 003c 0123 movs r3, #1 5073 003e 84F85D30 strb r3, [r4, #93] 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5074 .loc 1 2776 3 is_stmt 1 view .LVU1774 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5075 .loc 1 2777 1 is_stmt 0 view .LVU1775 ARM GAS /tmp/ccNym1yT.s page 196 5076 0042 2846 mov r0, r5 5077 0044 38BD pop {r3, r4, r5, pc} 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5078 .loc 1 2777 1 view .LVU1776 5079 .cfi_endproc 5080 .LFE140: 5082 .section .text.HAL_SPI_TxCpltCallback,"ax",%progbits 5083 .align 1 5084 .weak HAL_SPI_TxCpltCallback 5085 .syntax unified 5086 .thumb 5087 .thumb_func 5089 HAL_SPI_TxCpltCallback: 5090 .LVL321: 5091 .LFB142: 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5092 .loc 1 2893 1 is_stmt 1 view -0 5093 .cfi_startproc 5094 @ args = 0, pretend = 0, frame = 0 5095 @ frame_needed = 0, uses_anonymous_args = 0 5096 @ link register save eliminated. 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5097 .loc 1 2895 3 view .LVU1778 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5098 .loc 1 2900 1 is_stmt 0 view .LVU1779 5099 0000 7047 bx lr 5100 .cfi_endproc 5101 .LFE142: 5103 .section .text.HAL_SPI_RxCpltCallback,"ax",%progbits 5104 .align 1 5105 .weak HAL_SPI_RxCpltCallback 5106 .syntax unified 5107 .thumb 5108 .thumb_func 5110 HAL_SPI_RxCpltCallback: 5111 .LVL322: 5112 .LFB143: 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5113 .loc 1 2909 1 is_stmt 1 view -0 5114 .cfi_startproc 5115 @ args = 0, pretend = 0, frame = 0 5116 @ frame_needed = 0, uses_anonymous_args = 0 5117 @ link register save eliminated. 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5118 .loc 1 2911 3 view .LVU1781 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5119 .loc 1 2916 1 is_stmt 0 view .LVU1782 5120 0000 7047 bx lr 5121 .cfi_endproc 5122 .LFE143: 5124 .section .text.HAL_SPI_TxRxCpltCallback,"ax",%progbits 5125 .align 1 5126 .weak HAL_SPI_TxRxCpltCallback 5127 .syntax unified 5128 .thumb 5129 .thumb_func 5131 HAL_SPI_TxRxCpltCallback: ARM GAS /tmp/ccNym1yT.s page 197 5132 .LVL323: 5133 .LFB144: 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5134 .loc 1 2925 1 is_stmt 1 view -0 5135 .cfi_startproc 5136 @ args = 0, pretend = 0, frame = 0 5137 @ frame_needed = 0, uses_anonymous_args = 0 5138 @ link register save eliminated. 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5139 .loc 1 2927 3 view .LVU1784 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5140 .loc 1 2932 1 is_stmt 0 view .LVU1785 5141 0000 7047 bx lr 5142 .cfi_endproc 5143 .LFE144: 5145 .section .text.HAL_SPI_TxHalfCpltCallback,"ax",%progbits 5146 .align 1 5147 .weak HAL_SPI_TxHalfCpltCallback 5148 .syntax unified 5149 .thumb 5150 .thumb_func 5152 HAL_SPI_TxHalfCpltCallback: 5153 .LVL324: 5154 .LFB145: 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5155 .loc 1 2941 1 is_stmt 1 view -0 5156 .cfi_startproc 5157 @ args = 0, pretend = 0, frame = 0 5158 @ frame_needed = 0, uses_anonymous_args = 0 5159 @ link register save eliminated. 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5160 .loc 1 2943 3 view .LVU1787 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5161 .loc 1 2948 1 is_stmt 0 view .LVU1788 5162 0000 7047 bx lr 5163 .cfi_endproc 5164 .LFE145: 5166 .section .text.SPI_DMAHalfTransmitCplt,"ax",%progbits 5167 .align 1 5168 .syntax unified 5169 .thumb 5170 .thumb_func 5172 SPI_DMAHalfTransmitCplt: 5173 .LVL325: 5174 .LFB155: 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5175 .loc 1 3353 1 is_stmt 1 view -0 5176 .cfi_startproc 5177 @ args = 0, pretend = 0, frame = 0 5178 @ frame_needed = 0, uses_anonymous_args = 0 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5179 .loc 1 3353 1 is_stmt 0 view .LVU1790 5180 0000 08B5 push {r3, lr} 5181 .cfi_def_cfa_offset 8 5182 .cfi_offset 3, -8 5183 .cfi_offset 14, -4 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 198 5184 .loc 1 3354 3 is_stmt 1 view .LVU1791 5185 .LVL326: 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5186 .loc 1 3360 3 view .LVU1792 5187 0002 406A ldr r0, [r0, #36] 5188 .LVL327: 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5189 .loc 1 3360 3 is_stmt 0 view .LVU1793 5190 0004 FFF7FEFF bl HAL_SPI_TxHalfCpltCallback 5191 .LVL328: 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5192 .loc 1 3362 1 view .LVU1794 5193 0008 08BD pop {r3, pc} 5194 .cfi_endproc 5195 .LFE155: 5197 .section .text.HAL_SPI_RxHalfCpltCallback,"ax",%progbits 5198 .align 1 5199 .weak HAL_SPI_RxHalfCpltCallback 5200 .syntax unified 5201 .thumb 5202 .thumb_func 5204 HAL_SPI_RxHalfCpltCallback: 5205 .LVL329: 5206 .LFB146: 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5207 .loc 1 2957 1 is_stmt 1 view -0 5208 .cfi_startproc 5209 @ args = 0, pretend = 0, frame = 0 5210 @ frame_needed = 0, uses_anonymous_args = 0 5211 @ link register save eliminated. 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5212 .loc 1 2959 3 view .LVU1796 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5213 .loc 1 2964 1 is_stmt 0 view .LVU1797 5214 0000 7047 bx lr 5215 .cfi_endproc 5216 .LFE146: 5218 .section .text.SPI_DMAHalfReceiveCplt,"ax",%progbits 5219 .align 1 5220 .syntax unified 5221 .thumb 5222 .thumb_func 5224 SPI_DMAHalfReceiveCplt: 5225 .LVL330: 5226 .LFB156: 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5227 .loc 1 3371 1 is_stmt 1 view -0 5228 .cfi_startproc 5229 @ args = 0, pretend = 0, frame = 0 5230 @ frame_needed = 0, uses_anonymous_args = 0 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5231 .loc 1 3371 1 is_stmt 0 view .LVU1799 5232 0000 08B5 push {r3, lr} 5233 .cfi_def_cfa_offset 8 5234 .cfi_offset 3, -8 5235 .cfi_offset 14, -4 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 199 5236 .loc 1 3372 3 is_stmt 1 view .LVU1800 5237 .LVL331: 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5238 .loc 1 3378 3 view .LVU1801 5239 0002 406A ldr r0, [r0, #36] 5240 .LVL332: 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5241 .loc 1 3378 3 is_stmt 0 view .LVU1802 5242 0004 FFF7FEFF bl HAL_SPI_RxHalfCpltCallback 5243 .LVL333: 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5244 .loc 1 3380 1 view .LVU1803 5245 0008 08BD pop {r3, pc} 5246 .cfi_endproc 5247 .LFE156: 5249 .section .text.HAL_SPI_TxRxHalfCpltCallback,"ax",%progbits 5250 .align 1 5251 .weak HAL_SPI_TxRxHalfCpltCallback 5252 .syntax unified 5253 .thumb 5254 .thumb_func 5256 HAL_SPI_TxRxHalfCpltCallback: 5257 .LVL334: 5258 .LFB147: 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5259 .loc 1 2973 1 is_stmt 1 view -0 5260 .cfi_startproc 5261 @ args = 0, pretend = 0, frame = 0 5262 @ frame_needed = 0, uses_anonymous_args = 0 5263 @ link register save eliminated. 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5264 .loc 1 2975 3 view .LVU1805 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5265 .loc 1 2980 1 is_stmt 0 view .LVU1806 5266 0000 7047 bx lr 5267 .cfi_endproc 5268 .LFE147: 5270 .section .text.SPI_DMAHalfTransmitReceiveCplt,"ax",%progbits 5271 .align 1 5272 .syntax unified 5273 .thumb 5274 .thumb_func 5276 SPI_DMAHalfTransmitReceiveCplt: 5277 .LVL335: 5278 .LFB157: 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5279 .loc 1 3389 1 is_stmt 1 view -0 5280 .cfi_startproc 5281 @ args = 0, pretend = 0, frame = 0 5282 @ frame_needed = 0, uses_anonymous_args = 0 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5283 .loc 1 3389 1 is_stmt 0 view .LVU1808 5284 0000 08B5 push {r3, lr} 5285 .cfi_def_cfa_offset 8 5286 .cfi_offset 3, -8 5287 .cfi_offset 14, -4 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 200 5288 .loc 1 3390 3 is_stmt 1 view .LVU1809 5289 .LVL336: 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5290 .loc 1 3396 3 view .LVU1810 5291 0002 406A ldr r0, [r0, #36] 5292 .LVL337: 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5293 .loc 1 3396 3 is_stmt 0 view .LVU1811 5294 0004 FFF7FEFF bl HAL_SPI_TxRxHalfCpltCallback 5295 .LVL338: 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5296 .loc 1 3398 1 view .LVU1812 5297 0008 08BD pop {r3, pc} 5298 .cfi_endproc 5299 .LFE157: 5301 .section .text.HAL_SPI_ErrorCallback,"ax",%progbits 5302 .align 1 5303 .weak HAL_SPI_ErrorCallback 5304 .syntax unified 5305 .thumb 5306 .thumb_func 5308 HAL_SPI_ErrorCallback: 5309 .LVL339: 5310 .LFB148: 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 5311 .loc 1 2989 1 is_stmt 1 view -0 5312 .cfi_startproc 5313 @ args = 0, pretend = 0, frame = 0 5314 @ frame_needed = 0, uses_anonymous_args = 0 5315 @ link register save eliminated. 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5316 .loc 1 2991 3 view .LVU1814 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5317 .loc 1 2999 1 is_stmt 0 view .LVU1815 5318 0000 7047 bx lr 5319 .cfi_endproc 5320 .LFE148: 5322 .section .text.SPI_CloseTx_ISR,"ax",%progbits 5323 .align 1 5324 .syntax unified 5325 .thumb 5326 .thumb_func 5328 SPI_CloseTx_ISR: 5329 .LVL340: 5330 .LFB176: 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5331 .loc 1 4331 1 is_stmt 1 view -0 5332 .cfi_startproc 5333 @ args = 0, pretend = 0, frame = 8 5334 @ frame_needed = 0, uses_anonymous_args = 0 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5335 .loc 1 4331 1 is_stmt 0 view .LVU1817 5336 0000 10B5 push {r4, lr} 5337 .cfi_def_cfa_offset 8 5338 .cfi_offset 4, -8 5339 .cfi_offset 14, -4 5340 0002 82B0 sub sp, sp, #8 ARM GAS /tmp/ccNym1yT.s page 201 5341 .cfi_def_cfa_offset 16 5342 0004 0446 mov r4, r0 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5343 .loc 1 4332 3 is_stmt 1 view .LVU1818 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5344 .loc 1 4335 3 view .LVU1819 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5345 .loc 1 4335 15 is_stmt 0 view .LVU1820 5346 0006 FFF7FEFF bl HAL_GetTick 5347 .LVL341: 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5348 .loc 1 4335 15 view .LVU1821 5349 000a 0246 mov r2, r0 5350 .LVL342: 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5351 .loc 1 4338 3 is_stmt 1 view .LVU1822 5352 000c 2168 ldr r1, [r4] 5353 000e 4B68 ldr r3, [r1, #4] 5354 0010 23F0A003 bic r3, r3, #160 5355 0014 4B60 str r3, [r1, #4] 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5356 .loc 1 4341 3 view .LVU1823 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5357 .loc 1 4341 7 is_stmt 0 view .LVU1824 5358 0016 6421 movs r1, #100 5359 0018 2046 mov r0, r4 5360 .LVL343: 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5361 .loc 1 4341 7 view .LVU1825 5362 001a FFF7FEFF bl SPI_EndRxTxTransaction 5363 .LVL344: 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5364 .loc 1 4341 6 discriminator 1 view .LVU1826 5365 001e 18B1 cbz r0, .L368 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5366 .loc 1 4343 5 is_stmt 1 view .LVU1827 5367 0020 236E ldr r3, [r4, #96] 5368 0022 43F02003 orr r3, r3, #32 5369 0026 2366 str r3, [r4, #96] 5370 .L368: 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5371 .loc 1 4347 3 view .LVU1828 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5372 .loc 1 4347 17 is_stmt 0 view .LVU1829 5373 0028 A368 ldr r3, [r4, #8] 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5374 .loc 1 4347 6 view .LVU1830 5375 002a 33B9 cbnz r3, .L369 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5376 .loc 1 4349 5 is_stmt 1 view .LVU1831 5377 .LBB5: 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5378 .loc 1 4349 5 view .LVU1832 5379 002c 0193 str r3, [sp, #4] 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5380 .loc 1 4349 5 view .LVU1833 5381 002e 2368 ldr r3, [r4] ARM GAS /tmp/ccNym1yT.s page 202 5382 0030 DA68 ldr r2, [r3, #12] 5383 0032 0192 str r2, [sp, #4] 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5384 .loc 1 4349 5 view .LVU1834 5385 0034 9B68 ldr r3, [r3, #8] 5386 0036 0193 str r3, [sp, #4] 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5387 .loc 1 4349 5 view .LVU1835 5388 0038 019B ldr r3, [sp, #4] 5389 .L369: 5390 .LBE5: 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5391 .loc 1 4349 5 discriminator 1 view .LVU1836 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5392 .loc 1 4352 3 view .LVU1837 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5393 .loc 1 4352 15 is_stmt 0 view .LVU1838 5394 003a 0123 movs r3, #1 5395 003c 84F85D30 strb r3, [r4, #93] 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5396 .loc 1 4353 3 is_stmt 1 view .LVU1839 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5397 .loc 1 4353 11 is_stmt 0 view .LVU1840 5398 0040 236E ldr r3, [r4, #96] 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5399 .loc 1 4353 6 view .LVU1841 5400 0042 23B1 cbz r3, .L370 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5401 .loc 1 4359 5 is_stmt 1 view .LVU1842 5402 0044 2046 mov r0, r4 5403 0046 FFF7FEFF bl HAL_SPI_ErrorCallback 5404 .LVL345: 5405 .L367: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5406 .loc 1 4371 1 is_stmt 0 view .LVU1843 5407 004a 02B0 add sp, sp, #8 5408 .cfi_remember_state 5409 .cfi_def_cfa_offset 8 5410 @ sp needed 5411 004c 10BD pop {r4, pc} 5412 .LVL346: 5413 .L370: 5414 .cfi_restore_state 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5415 .loc 1 4368 5 is_stmt 1 view .LVU1844 5416 004e 2046 mov r0, r4 5417 0050 FFF7FEFF bl HAL_SPI_TxCpltCallback 5418 .LVL347: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5419 .loc 1 4371 1 is_stmt 0 view .LVU1845 5420 0054 F9E7 b .L367 5421 .cfi_endproc 5422 .LFE176: 5424 .section .text.SPI_TxISR_8BIT,"ax",%progbits 5425 .align 1 5426 .syntax unified 5427 .thumb ARM GAS /tmp/ccNym1yT.s page 203 5428 .thumb_func 5430 SPI_TxISR_8BIT: 5431 .LVL348: 5432 .LFB168: 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5433 .loc 1 3925 1 is_stmt 1 view -0 5434 .cfi_startproc 5435 @ args = 0, pretend = 0, frame = 0 5436 @ frame_needed = 0, uses_anonymous_args = 0 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 5437 .loc 1 3925 1 is_stmt 0 view .LVU1847 5438 0000 08B5 push {r3, lr} 5439 .cfi_def_cfa_offset 8 5440 .cfi_offset 3, -8 5441 .cfi_offset 14, -4 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5442 .loc 1 3926 3 is_stmt 1 view .LVU1848 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5443 .loc 1 3926 48 is_stmt 0 view .LVU1849 5444 0002 826B ldr r2, [r0, #56] 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5445 .loc 1 3926 25 view .LVU1850 5446 0004 0368 ldr r3, [r0] 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5447 .loc 1 3926 43 view .LVU1851 5448 0006 1278 ldrb r2, [r2] @ zero_extendqisi2 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5449 .loc 1 3926 40 view .LVU1852 5450 0008 1A73 strb r2, [r3, #12] 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5451 .loc 1 3927 3 is_stmt 1 view .LVU1853 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5452 .loc 1 3927 7 is_stmt 0 view .LVU1854 5453 000a 836B ldr r3, [r0, #56] 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5454 .loc 1 3927 19 view .LVU1855 5455 000c 0133 adds r3, r3, #1 5456 000e 8363 str r3, [r0, #56] 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5457 .loc 1 3928 3 is_stmt 1 view .LVU1856 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5458 .loc 1 3928 7 is_stmt 0 view .LVU1857 5459 0010 C38F ldrh r3, [r0, #62] 5460 0012 9BB2 uxth r3, r3 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5461 .loc 1 3928 20 view .LVU1858 5462 0014 013B subs r3, r3, #1 5463 0016 9BB2 uxth r3, r3 5464 0018 C387 strh r3, [r0, #62] @ movhi 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5465 .loc 1 3930 3 is_stmt 1 view .LVU1859 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5466 .loc 1 3930 11 is_stmt 0 view .LVU1860 5467 001a C38F ldrh r3, [r0, #62] 5468 001c 9BB2 uxth r3, r3 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5469 .loc 1 3930 6 view .LVU1861 ARM GAS /tmp/ccNym1yT.s page 204 5470 001e 03B1 cbz r3, .L376 5471 .LVL349: 5472 .L373: 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5473 .loc 1 3941 1 view .LVU1862 5474 0020 08BD pop {r3, pc} 5475 .LVL350: 5476 .L376: 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5477 .loc 1 3939 5 is_stmt 1 view .LVU1863 5478 0022 FFF7FEFF bl SPI_CloseTx_ISR 5479 .LVL351: 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5480 .loc 1 3941 1 is_stmt 0 view .LVU1864 5481 0026 FBE7 b .L373 5482 .cfi_endproc 5483 .LFE168: 5485 .section .text.SPI_TxISR_16BIT,"ax",%progbits 5486 .align 1 5487 .syntax unified 5488 .thumb 5489 .thumb_func 5491 SPI_TxISR_16BIT: 5492 .LVL352: 5493 .LFB169: 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5494 .loc 1 3950 1 is_stmt 1 view -0 5495 .cfi_startproc 5496 @ args = 0, pretend = 0, frame = 0 5497 @ frame_needed = 0, uses_anonymous_args = 0 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 5498 .loc 1 3950 1 is_stmt 0 view .LVU1866 5499 0000 08B5 push {r3, lr} 5500 .cfi_def_cfa_offset 8 5501 .cfi_offset 3, -8 5502 .cfi_offset 14, -4 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5503 .loc 1 3952 3 is_stmt 1 view .LVU1867 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5504 .loc 1 3952 42 is_stmt 0 view .LVU1868 5505 0002 826B ldr r2, [r0, #56] 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5506 .loc 1 3952 7 view .LVU1869 5507 0004 0368 ldr r3, [r0] 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5508 .loc 1 3952 24 view .LVU1870 5509 0006 1288 ldrh r2, [r2] 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5510 .loc 1 3952 22 view .LVU1871 5511 0008 DA60 str r2, [r3, #12] 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5512 .loc 1 3953 3 is_stmt 1 view .LVU1872 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5513 .loc 1 3953 7 is_stmt 0 view .LVU1873 5514 000a 836B ldr r3, [r0, #56] 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5515 .loc 1 3953 20 view .LVU1874 ARM GAS /tmp/ccNym1yT.s page 205 5516 000c 0233 adds r3, r3, #2 5517 000e 8363 str r3, [r0, #56] 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5518 .loc 1 3954 3 is_stmt 1 view .LVU1875 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5519 .loc 1 3954 7 is_stmt 0 view .LVU1876 5520 0010 C38F ldrh r3, [r0, #62] 5521 0012 9BB2 uxth r3, r3 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5522 .loc 1 3954 20 view .LVU1877 5523 0014 013B subs r3, r3, #1 5524 0016 9BB2 uxth r3, r3 5525 0018 C387 strh r3, [r0, #62] @ movhi 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5526 .loc 1 3956 3 is_stmt 1 view .LVU1878 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5527 .loc 1 3956 11 is_stmt 0 view .LVU1879 5528 001a C38F ldrh r3, [r0, #62] 5529 001c 9BB2 uxth r3, r3 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5530 .loc 1 3956 6 view .LVU1880 5531 001e 03B1 cbz r3, .L380 5532 .LVL353: 5533 .L377: 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5534 .loc 1 3967 1 view .LVU1881 5535 0020 08BD pop {r3, pc} 5536 .LVL354: 5537 .L380: 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5538 .loc 1 3965 5 is_stmt 1 view .LVU1882 5539 0022 FFF7FEFF bl SPI_CloseTx_ISR 5540 .LVL355: 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5541 .loc 1 3967 1 is_stmt 0 view .LVU1883 5542 0026 FBE7 b .L377 5543 .cfi_endproc 5544 .LFE169: 5546 .section .text.SPI_CloseRx_ISR,"ax",%progbits 5547 .align 1 5548 .syntax unified 5549 .thumb 5550 .thumb_func 5552 SPI_CloseRx_ISR: 5553 .LVL356: 5554 .LFB175: 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5555 .loc 1 4274 1 is_stmt 1 view -0 5556 .cfi_startproc 5557 @ args = 0, pretend = 0, frame = 0 5558 @ frame_needed = 0, uses_anonymous_args = 0 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 5559 .loc 1 4274 1 is_stmt 0 view .LVU1885 5560 0000 10B5 push {r4, lr} 5561 .cfi_def_cfa_offset 8 5562 .cfi_offset 4, -8 5563 .cfi_offset 14, -4 ARM GAS /tmp/ccNym1yT.s page 206 5564 0002 0446 mov r4, r0 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5565 .loc 1 4276 3 is_stmt 1 view .LVU1886 5566 0004 0268 ldr r2, [r0] 5567 0006 5368 ldr r3, [r2, #4] 5568 0008 23F06003 bic r3, r3, #96 5569 000c 5360 str r3, [r2, #4] 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5570 .loc 1 4279 3 view .LVU1887 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5571 .loc 1 4279 7 is_stmt 0 view .LVU1888 5572 000e FFF7FEFF bl HAL_GetTick 5573 .LVL357: 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5574 .loc 1 4279 7 view .LVU1889 5575 0012 0246 mov r2, r0 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5576 .loc 1 4279 7 discriminator 1 view .LVU1890 5577 0014 6421 movs r1, #100 5578 0016 2046 mov r0, r4 5579 0018 FFF7FEFF bl SPI_EndRxTransaction 5580 .LVL358: 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5581 .loc 1 4279 6 discriminator 2 view .LVU1891 5582 001c 18B1 cbz r0, .L382 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5583 .loc 1 4281 5 is_stmt 1 view .LVU1892 5584 001e 236E ldr r3, [r4, #96] 5585 0020 43F02003 orr r3, r3, #32 5586 0024 2366 str r3, [r4, #96] 5587 .L382: 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5588 .loc 1 4283 3 view .LVU1893 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5589 .loc 1 4283 15 is_stmt 0 view .LVU1894 5590 0026 0123 movs r3, #1 5591 0028 84F85D30 strb r3, [r4, #93] 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5592 .loc 1 4301 5 is_stmt 1 view .LVU1895 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5593 .loc 1 4301 13 is_stmt 0 view .LVU1896 5594 002c 236E ldr r3, [r4, #96] 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5595 .loc 1 4301 8 view .LVU1897 5596 002e 1BB9 cbnz r3, .L383 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5597 .loc 1 4307 7 is_stmt 1 view .LVU1898 5598 0030 2046 mov r0, r4 5599 0032 FFF7FEFF bl HAL_SPI_RxCpltCallback 5600 .LVL359: 5601 .L381: 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5602 .loc 1 4322 1 is_stmt 0 view .LVU1899 5603 0036 10BD pop {r4, pc} 5604 .LVL360: 5605 .L383: 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ ARM GAS /tmp/ccNym1yT.s page 207 5606 .loc 1 4316 7 is_stmt 1 view .LVU1900 5607 0038 2046 mov r0, r4 5608 003a FFF7FEFF bl HAL_SPI_ErrorCallback 5609 .LVL361: 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5610 .loc 1 4322 1 is_stmt 0 view .LVU1901 5611 003e FAE7 b .L381 5612 .cfi_endproc 5613 .LFE175: 5615 .section .text.SPI_RxISR_8BIT,"ax",%progbits 5616 .align 1 5617 .syntax unified 5618 .thumb 5619 .thumb_func 5621 SPI_RxISR_8BIT: 5622 .LVL362: 5623 .LFB166: 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 5624 .loc 1 3836 1 is_stmt 1 view -0 5625 .cfi_startproc 5626 @ args = 0, pretend = 0, frame = 0 5627 @ frame_needed = 0, uses_anonymous_args = 0 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 5628 .loc 1 3836 1 is_stmt 0 view .LVU1903 5629 0000 08B5 push {r3, lr} 5630 .cfi_def_cfa_offset 8 5631 .cfi_offset 3, -8 5632 .cfi_offset 14, -4 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5633 .loc 1 3837 3 is_stmt 1 view .LVU1904 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5634 .loc 1 3837 46 is_stmt 0 view .LVU1905 5635 0002 0268 ldr r2, [r0] 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5636 .loc 1 3837 8 view .LVU1906 5637 0004 036C ldr r3, [r0, #64] 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5638 .loc 1 3837 24 view .LVU1907 5639 0006 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5640 .loc 1 3837 21 view .LVU1908 5641 0008 1A70 strb r2, [r3] 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5642 .loc 1 3838 3 is_stmt 1 view .LVU1909 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5643 .loc 1 3838 7 is_stmt 0 view .LVU1910 5644 000a 036C ldr r3, [r0, #64] 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5645 .loc 1 3838 19 view .LVU1911 5646 000c 0133 adds r3, r3, #1 5647 000e 0364 str r3, [r0, #64] 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5648 .loc 1 3839 3 is_stmt 1 view .LVU1912 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5649 .loc 1 3839 7 is_stmt 0 view .LVU1913 5650 0010 B0F84630 ldrh r3, [r0, #70] 5651 0014 9BB2 uxth r3, r3 ARM GAS /tmp/ccNym1yT.s page 208 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5652 .loc 1 3839 20 view .LVU1914 5653 0016 013B subs r3, r3, #1 5654 0018 9BB2 uxth r3, r3 5655 001a A0F84630 strh r3, [r0, #70] @ movhi 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5656 .loc 1 3849 3 is_stmt 1 view .LVU1915 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5657 .loc 1 3849 11 is_stmt 0 view .LVU1916 5658 001e B0F84630 ldrh r3, [r0, #70] 5659 0022 9BB2 uxth r3, r3 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5660 .loc 1 3849 6 view .LVU1917 5661 0024 03B1 cbz r3, .L389 5662 .LVL363: 5663 .L386: 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5664 .loc 1 3860 1 view .LVU1918 5665 0026 08BD pop {r3, pc} 5666 .LVL364: 5667 .L389: 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5668 .loc 1 3858 5 is_stmt 1 view .LVU1919 5669 0028 FFF7FEFF bl SPI_CloseRx_ISR 5670 .LVL365: 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5671 .loc 1 3860 1 is_stmt 0 view .LVU1920 5672 002c FBE7 b .L386 5673 .cfi_endproc 5674 .LFE166: 5676 .section .text.SPI_RxISR_16BIT,"ax",%progbits 5677 .align 1 5678 .syntax unified 5679 .thumb 5680 .thumb_func 5682 SPI_RxISR_16BIT: 5683 .LVL366: 5684 .LFB167: 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5685 .loc 1 3892 1 is_stmt 1 view -0 5686 .cfi_startproc 5687 @ args = 0, pretend = 0, frame = 0 5688 @ frame_needed = 0, uses_anonymous_args = 0 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 5689 .loc 1 3892 1 is_stmt 0 view .LVU1922 5690 0000 08B5 push {r3, lr} 5691 .cfi_def_cfa_offset 8 5692 .cfi_offset 3, -8 5693 .cfi_offset 14, -4 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5694 .loc 1 3893 3 is_stmt 1 view .LVU1923 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5695 .loc 1 3893 52 is_stmt 0 view .LVU1924 5696 0002 0368 ldr r3, [r0] 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5697 .loc 1 3893 62 view .LVU1925 5698 0004 DA68 ldr r2, [r3, #12] ARM GAS /tmp/ccNym1yT.s page 209 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5699 .loc 1 3893 21 view .LVU1926 5700 0006 036C ldr r3, [r0, #64] 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5701 .loc 1 3893 35 view .LVU1927 5702 0008 1A80 strh r2, [r3] @ movhi 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5703 .loc 1 3894 3 is_stmt 1 view .LVU1928 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5704 .loc 1 3894 7 is_stmt 0 view .LVU1929 5705 000a 036C ldr r3, [r0, #64] 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 5706 .loc 1 3894 20 view .LVU1930 5707 000c 0233 adds r3, r3, #2 5708 000e 0364 str r3, [r0, #64] 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5709 .loc 1 3895 3 is_stmt 1 view .LVU1931 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5710 .loc 1 3895 7 is_stmt 0 view .LVU1932 5711 0010 B0F84630 ldrh r3, [r0, #70] 5712 0014 9BB2 uxth r3, r3 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5713 .loc 1 3895 20 view .LVU1933 5714 0016 013B subs r3, r3, #1 5715 0018 9BB2 uxth r3, r3 5716 001a A0F84630 strh r3, [r0, #70] @ movhi 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5717 .loc 1 3905 3 is_stmt 1 view .LVU1934 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5718 .loc 1 3905 11 is_stmt 0 view .LVU1935 5719 001e B0F84630 ldrh r3, [r0, #70] 5720 0022 9BB2 uxth r3, r3 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5721 .loc 1 3905 6 view .LVU1936 5722 0024 03B1 cbz r3, .L393 5723 .LVL367: 5724 .L390: 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5725 .loc 1 3916 1 view .LVU1937 5726 0026 08BD pop {r3, pc} 5727 .LVL368: 5728 .L393: 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5729 .loc 1 3914 5 is_stmt 1 view .LVU1938 5730 0028 FFF7FEFF bl SPI_CloseRx_ISR 5731 .LVL369: 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5732 .loc 1 3916 1 is_stmt 0 view .LVU1939 5733 002c FBE7 b .L390 5734 .cfi_endproc 5735 .LFE167: 5737 .section .text.SPI_CloseRxTx_ISR,"ax",%progbits 5738 .align 1 5739 .syntax unified 5740 .thumb 5741 .thumb_func 5743 SPI_CloseRxTx_ISR: ARM GAS /tmp/ccNym1yT.s page 210 5744 .LVL370: 5745 .LFB174: 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5746 .loc 1 4197 1 is_stmt 1 view -0 5747 .cfi_startproc 5748 @ args = 0, pretend = 0, frame = 0 5749 @ frame_needed = 0, uses_anonymous_args = 0 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 5750 .loc 1 4197 1 is_stmt 0 view .LVU1941 5751 0000 10B5 push {r4, lr} 5752 .cfi_def_cfa_offset 8 5753 .cfi_offset 4, -8 5754 .cfi_offset 14, -4 5755 0002 0446 mov r4, r0 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5756 .loc 1 4198 3 is_stmt 1 view .LVU1942 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5757 .loc 1 4201 3 view .LVU1943 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5758 .loc 1 4201 15 is_stmt 0 view .LVU1944 5759 0004 FFF7FEFF bl HAL_GetTick 5760 .LVL371: 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5761 .loc 1 4201 15 view .LVU1945 5762 0008 0246 mov r2, r0 5763 .LVL372: 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5764 .loc 1 4204 3 is_stmt 1 view .LVU1946 5765 000a 2168 ldr r1, [r4] 5766 000c 4B68 ldr r3, [r1, #4] 5767 000e 23F02003 bic r3, r3, #32 5768 0012 4B60 str r3, [r1, #4] 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5769 .loc 1 4207 3 view .LVU1947 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5770 .loc 1 4207 7 is_stmt 0 view .LVU1948 5771 0014 6421 movs r1, #100 5772 0016 2046 mov r0, r4 5773 .LVL373: 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5774 .loc 1 4207 7 view .LVU1949 5775 0018 FFF7FEFF bl SPI_EndRxTxTransaction 5776 .LVL374: 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5777 .loc 1 4207 6 discriminator 1 view .LVU1950 5778 001c 18B1 cbz r0, .L395 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5779 .loc 1 4209 5 is_stmt 1 view .LVU1951 5780 001e 236E ldr r3, [r4, #96] 5781 0020 43F02003 orr r3, r3, #32 5782 0024 2366 str r3, [r4, #96] 5783 .L395: 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5784 .loc 1 4229 5 view .LVU1952 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5785 .loc 1 4229 13 is_stmt 0 view .LVU1953 5786 0026 236E ldr r3, [r4, #96] ARM GAS /tmp/ccNym1yT.s page 211 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5787 .loc 1 4229 8 view .LVU1954 5788 0028 93B9 cbnz r3, .L396 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5789 .loc 1 4231 7 is_stmt 1 view .LVU1955 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5790 .loc 1 4231 15 is_stmt 0 view .LVU1956 5791 002a 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 5792 002e DBB2 uxtb r3, r3 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5793 .loc 1 4231 10 view .LVU1957 5794 0030 042B cmp r3, #4 5795 0032 06D0 beq .L400 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5796 .loc 1 4243 9 is_stmt 1 view .LVU1958 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 5797 .loc 1 4243 21 is_stmt 0 view .LVU1959 5798 0034 0123 movs r3, #1 5799 0036 84F85D30 strb r3, [r4, #93] 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5800 .loc 1 4248 9 is_stmt 1 view .LVU1960 5801 003a 2046 mov r0, r4 5802 003c FFF7FEFF bl HAL_SPI_TxRxCpltCallback 5803 .LVL375: 5804 .L394: 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5805 .loc 1 4265 1 is_stmt 0 view .LVU1961 5806 0040 10BD pop {r4, pc} 5807 .LVL376: 5808 .L400: 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5809 .loc 1 4233 9 is_stmt 1 view .LVU1962 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 5810 .loc 1 4233 21 is_stmt 0 view .LVU1963 5811 0042 0123 movs r3, #1 5812 0044 84F85D30 strb r3, [r4, #93] 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5813 .loc 1 4238 9 is_stmt 1 view .LVU1964 5814 0048 2046 mov r0, r4 5815 004a FFF7FEFF bl HAL_SPI_RxCpltCallback 5816 .LVL377: 5817 004e F7E7 b .L394 5818 .L396: 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5819 .loc 1 4254 7 view .LVU1965 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 5820 .loc 1 4254 19 is_stmt 0 view .LVU1966 5821 0050 0123 movs r3, #1 5822 0052 84F85D30 strb r3, [r4, #93] 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 5823 .loc 1 4259 7 is_stmt 1 view .LVU1967 5824 0056 2046 mov r0, r4 5825 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 5826 .LVL378: 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5827 .loc 1 4265 1 is_stmt 0 view .LVU1968 5828 005c F0E7 b .L394 ARM GAS /tmp/ccNym1yT.s page 212 5829 .cfi_endproc 5830 .LFE174: 5832 .section .text.SPI_2linesTxISR_8BIT,"ax",%progbits 5833 .align 1 5834 .syntax unified 5835 .thumb 5836 .thumb_func 5838 SPI_2linesTxISR_8BIT: 5839 .LVL379: 5840 .LFB163: 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5841 .loc 1 3668 1 is_stmt 1 view -0 5842 .cfi_startproc 5843 @ args = 0, pretend = 0, frame = 0 5844 @ frame_needed = 0, uses_anonymous_args = 0 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 5845 .loc 1 3668 1 is_stmt 0 view .LVU1970 5846 0000 08B5 push {r3, lr} 5847 .cfi_def_cfa_offset 8 5848 .cfi_offset 3, -8 5849 .cfi_offset 14, -4 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5850 .loc 1 3670 3 is_stmt 1 view .LVU1971 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5851 .loc 1 3670 11 is_stmt 0 view .LVU1972 5852 0002 C38F ldrh r3, [r0, #62] 5853 0004 9BB2 uxth r3, r3 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5854 .loc 1 3670 6 view .LVU1973 5855 0006 012B cmp r3, #1 5856 0008 18D9 bls .L402 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5857 .loc 1 3672 5 is_stmt 1 view .LVU1974 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5858 .loc 1 3672 44 is_stmt 0 view .LVU1975 5859 000a 826B ldr r2, [r0, #56] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5860 .loc 1 3672 9 view .LVU1976 5861 000c 0368 ldr r3, [r0] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5862 .loc 1 3672 26 view .LVU1977 5863 000e 1288 ldrh r2, [r2] 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 5864 .loc 1 3672 24 view .LVU1978 5865 0010 DA60 str r2, [r3, #12] 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5866 .loc 1 3673 5 is_stmt 1 view .LVU1979 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5867 .loc 1 3673 9 is_stmt 0 view .LVU1980 5868 0012 836B ldr r3, [r0, #56] 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 5869 .loc 1 3673 22 view .LVU1981 5870 0014 0233 adds r3, r3, #2 5871 0016 8363 str r3, [r0, #56] 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5872 .loc 1 3674 5 is_stmt 1 view .LVU1982 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 213 5873 .loc 1 3674 9 is_stmt 0 view .LVU1983 5874 0018 C38F ldrh r3, [r0, #62] 5875 001a 9BB2 uxth r3, r3 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5876 .loc 1 3674 23 view .LVU1984 5877 001c 023B subs r3, r3, #2 5878 001e 9BB2 uxth r3, r3 5879 0020 C387 strh r3, [r0, #62] @ movhi 5880 .L403: 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5881 .loc 1 3685 3 is_stmt 1 view .LVU1985 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5882 .loc 1 3685 11 is_stmt 0 view .LVU1986 5883 0022 C38F ldrh r3, [r0, #62] 5884 0024 9BB2 uxth r3, r3 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5885 .loc 1 3685 6 view .LVU1987 5886 0026 43B9 cbnz r3, .L401 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5887 .loc 1 3699 5 is_stmt 1 view .LVU1988 5888 0028 0268 ldr r2, [r0] 5889 002a 5368 ldr r3, [r2, #4] 5890 002c 23F08003 bic r3, r3, #128 5891 0030 5360 str r3, [r2, #4] 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5892 .loc 1 3701 5 view .LVU1989 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5893 .loc 1 3701 13 is_stmt 0 view .LVU1990 5894 0032 B0F84630 ldrh r3, [r0, #70] 5895 0036 9BB2 uxth r3, r3 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5896 .loc 1 3701 8 view .LVU1991 5897 0038 6BB1 cbz r3, .L406 5898 .LVL380: 5899 .L401: 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5900 .loc 1 3706 1 view .LVU1992 5901 003a 08BD pop {r3, pc} 5902 .LVL381: 5903 .L402: 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5904 .loc 1 3679 5 is_stmt 1 view .LVU1993 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5905 .loc 1 3679 50 is_stmt 0 view .LVU1994 5906 003c 826B ldr r2, [r0, #56] 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5907 .loc 1 3679 27 view .LVU1995 5908 003e 0368 ldr r3, [r0] 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5909 .loc 1 3679 45 view .LVU1996 5910 0040 1278 ldrb r2, [r2] @ zero_extendqisi2 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 5911 .loc 1 3679 42 view .LVU1997 5912 0042 1A73 strb r2, [r3, #12] 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5913 .loc 1 3680 5 is_stmt 1 view .LVU1998 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; ARM GAS /tmp/ccNym1yT.s page 214 5914 .loc 1 3680 9 is_stmt 0 view .LVU1999 5915 0044 836B ldr r3, [r0, #56] 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 5916 .loc 1 3680 21 view .LVU2000 5917 0046 0133 adds r3, r3, #1 5918 0048 8363 str r3, [r0, #56] 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5919 .loc 1 3681 5 is_stmt 1 view .LVU2001 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5920 .loc 1 3681 9 is_stmt 0 view .LVU2002 5921 004a C38F ldrh r3, [r0, #62] 5922 004c 9BB2 uxth r3, r3 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5923 .loc 1 3681 22 view .LVU2003 5924 004e 013B subs r3, r3, #1 5925 0050 9BB2 uxth r3, r3 5926 0052 C387 strh r3, [r0, #62] @ movhi 5927 0054 E5E7 b .L403 5928 .L406: 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5929 .loc 1 3703 7 is_stmt 1 view .LVU2004 5930 0056 FFF7FEFF bl SPI_CloseRxTx_ISR 5931 .LVL382: 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 5932 .loc 1 3706 1 is_stmt 0 view .LVU2005 5933 005a EEE7 b .L401 5934 .cfi_endproc 5935 .LFE163: 5937 .section .text.SPI_2linesRxISR_8BIT,"ax",%progbits 5938 .align 1 5939 .syntax unified 5940 .thumb 5941 .thumb_func 5943 SPI_2linesRxISR_8BIT: 5944 .LVL383: 5945 .LFB162: 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5946 .loc 1 3583 1 is_stmt 1 view -0 5947 .cfi_startproc 5948 @ args = 0, pretend = 0, frame = 0 5949 @ frame_needed = 0, uses_anonymous_args = 0 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 5950 .loc 1 3583 1 is_stmt 0 view .LVU2007 5951 0000 08B5 push {r3, lr} 5952 .cfi_def_cfa_offset 8 5953 .cfi_offset 3, -8 5954 .cfi_offset 14, -4 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5955 .loc 1 3585 3 is_stmt 1 view .LVU2008 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5956 .loc 1 3585 11 is_stmt 0 view .LVU2009 5957 0002 B0F84630 ldrh r3, [r0, #70] 5958 0006 9BB2 uxth r3, r3 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5959 .loc 1 3585 6 view .LVU2010 5960 0008 012B cmp r3, #1 5961 000a 18D9 bls .L408 ARM GAS /tmp/ccNym1yT.s page 215 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5962 .loc 1 3587 5 is_stmt 1 view .LVU2011 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5963 .loc 1 3587 54 is_stmt 0 view .LVU2012 5964 000c 0368 ldr r3, [r0] 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5965 .loc 1 3587 64 view .LVU2013 5966 000e DA68 ldr r2, [r3, #12] 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5967 .loc 1 3587 23 view .LVU2014 5968 0010 036C ldr r3, [r0, #64] 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 5969 .loc 1 3587 37 view .LVU2015 5970 0012 1A80 strh r2, [r3] @ movhi 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5971 .loc 1 3588 5 is_stmt 1 view .LVU2016 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5972 .loc 1 3588 9 is_stmt 0 view .LVU2017 5973 0014 036C ldr r3, [r0, #64] 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 5974 .loc 1 3588 22 view .LVU2018 5975 0016 0233 adds r3, r3, #2 5976 0018 0364 str r3, [r0, #64] 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5977 .loc 1 3589 5 is_stmt 1 view .LVU2019 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5978 .loc 1 3589 9 is_stmt 0 view .LVU2020 5979 001a B0F84630 ldrh r3, [r0, #70] 5980 001e 9BB2 uxth r3, r3 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 5981 .loc 1 3589 23 view .LVU2021 5982 0020 023B subs r3, r3, #2 5983 0022 9BB2 uxth r3, r3 5984 0024 A0F84630 strh r3, [r0, #70] @ movhi 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5985 .loc 1 3590 5 is_stmt 1 view .LVU2022 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5986 .loc 1 3590 13 is_stmt 0 view .LVU2023 5987 0028 B0F84630 ldrh r3, [r0, #70] 5988 002c 9BB2 uxth r3, r3 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5989 .loc 1 3590 8 view .LVU2024 5990 002e 012B cmp r3, #1 5991 0030 13D1 bne .L409 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5992 .loc 1 3593 7 is_stmt 1 view .LVU2025 5993 0032 0268 ldr r2, [r0] 5994 0034 5368 ldr r3, [r2, #4] 5995 0036 43F48053 orr r3, r3, #4096 5996 003a 5360 str r3, [r2, #4] 5997 003c 0DE0 b .L409 5998 .L408: 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 5999 .loc 1 3599 5 view .LVU2026 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6000 .loc 1 3599 48 is_stmt 0 view .LVU2027 6001 003e 0268 ldr r2, [r0] ARM GAS /tmp/ccNym1yT.s page 216 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6002 .loc 1 3599 10 view .LVU2028 6003 0040 036C ldr r3, [r0, #64] 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6004 .loc 1 3599 25 view .LVU2029 6005 0042 127B ldrb r2, [r2, #12] @ zero_extendqisi2 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 6006 .loc 1 3599 23 view .LVU2030 6007 0044 1A70 strb r2, [r3] 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6008 .loc 1 3600 5 is_stmt 1 view .LVU2031 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6009 .loc 1 3600 9 is_stmt 0 view .LVU2032 6010 0046 036C ldr r3, [r0, #64] 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6011 .loc 1 3600 21 view .LVU2033 6012 0048 0133 adds r3, r3, #1 6013 004a 0364 str r3, [r0, #64] 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6014 .loc 1 3601 5 is_stmt 1 view .LVU2034 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6015 .loc 1 3601 9 is_stmt 0 view .LVU2035 6016 004c B0F84630 ldrh r3, [r0, #70] 6017 0050 9BB2 uxth r3, r3 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6018 .loc 1 3601 22 view .LVU2036 6019 0052 013B subs r3, r3, #1 6020 0054 9BB2 uxth r3, r3 6021 0056 A0F84630 strh r3, [r0, #70] @ movhi 6022 .L409: 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6023 .loc 1 3605 3 is_stmt 1 view .LVU2037 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6024 .loc 1 3605 11 is_stmt 0 view .LVU2038 6025 005a B0F84630 ldrh r3, [r0, #70] 6026 005e 9BB2 uxth r3, r3 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6027 .loc 1 3605 6 view .LVU2039 6028 0060 3BB9 cbnz r3, .L407 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6029 .loc 1 3617 5 is_stmt 1 view .LVU2040 6030 0062 0268 ldr r2, [r0] 6031 0064 5368 ldr r3, [r2, #4] 6032 0066 23F06003 bic r3, r3, #96 6033 006a 5360 str r3, [r2, #4] 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6034 .loc 1 3619 5 view .LVU2041 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6035 .loc 1 3619 13 is_stmt 0 view .LVU2042 6036 006c C38F ldrh r3, [r0, #62] 6037 006e 9BB2 uxth r3, r3 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6038 .loc 1 3619 8 view .LVU2043 6039 0070 03B1 cbz r3, .L412 6040 .LVL384: 6041 .L407: 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccNym1yT.s page 217 6042 .loc 1 3624 1 view .LVU2044 6043 0072 08BD pop {r3, pc} 6044 .LVL385: 6045 .L412: 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6046 .loc 1 3621 7 is_stmt 1 view .LVU2045 6047 0074 FFF7FEFF bl SPI_CloseRxTx_ISR 6048 .LVL386: 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6049 .loc 1 3624 1 is_stmt 0 view .LVU2046 6050 0078 FBE7 b .L407 6051 .cfi_endproc 6052 .LFE162: 6054 .section .text.SPI_2linesTxISR_16BIT,"ax",%progbits 6055 .align 1 6056 .syntax unified 6057 .thumb 6058 .thumb_func 6060 SPI_2linesTxISR_16BIT: 6061 .LVL387: 6062 .LFB165: 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6063 .loc 1 3771 1 is_stmt 1 view -0 6064 .cfi_startproc 6065 @ args = 0, pretend = 0, frame = 0 6066 @ frame_needed = 0, uses_anonymous_args = 0 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 6067 .loc 1 3771 1 is_stmt 0 view .LVU2048 6068 0000 08B5 push {r3, lr} 6069 .cfi_def_cfa_offset 8 6070 .cfi_offset 3, -8 6071 .cfi_offset 14, -4 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6072 .loc 1 3773 3 is_stmt 1 view .LVU2049 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6073 .loc 1 3773 42 is_stmt 0 view .LVU2050 6074 0002 826B ldr r2, [r0, #56] 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6075 .loc 1 3773 7 view .LVU2051 6076 0004 0368 ldr r3, [r0] 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6077 .loc 1 3773 24 view .LVU2052 6078 0006 1288 ldrh r2, [r2] 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6079 .loc 1 3773 22 view .LVU2053 6080 0008 DA60 str r2, [r3, #12] 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6081 .loc 1 3774 3 is_stmt 1 view .LVU2054 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6082 .loc 1 3774 7 is_stmt 0 view .LVU2055 6083 000a 836B ldr r3, [r0, #56] 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6084 .loc 1 3774 20 view .LVU2056 6085 000c 0233 adds r3, r3, #2 6086 000e 8363 str r3, [r0, #56] 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6087 .loc 1 3775 3 is_stmt 1 view .LVU2057 ARM GAS /tmp/ccNym1yT.s page 218 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6088 .loc 1 3775 7 is_stmt 0 view .LVU2058 6089 0010 C38F ldrh r3, [r0, #62] 6090 0012 9BB2 uxth r3, r3 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6091 .loc 1 3775 20 view .LVU2059 6092 0014 013B subs r3, r3, #1 6093 0016 9BB2 uxth r3, r3 6094 0018 C387 strh r3, [r0, #62] @ movhi 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6095 .loc 1 3778 3 is_stmt 1 view .LVU2060 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6096 .loc 1 3778 11 is_stmt 0 view .LVU2061 6097 001a C38F ldrh r3, [r0, #62] 6098 001c 9BB2 uxth r3, r3 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6099 .loc 1 3778 6 view .LVU2062 6100 001e 43B9 cbnz r3, .L413 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6101 .loc 1 3792 5 is_stmt 1 view .LVU2063 6102 0020 0268 ldr r2, [r0] 6103 0022 5368 ldr r3, [r2, #4] 6104 0024 23F08003 bic r3, r3, #128 6105 0028 5360 str r3, [r2, #4] 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6106 .loc 1 3794 5 view .LVU2064 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6107 .loc 1 3794 13 is_stmt 0 view .LVU2065 6108 002a B0F84630 ldrh r3, [r0, #70] 6109 002e 9BB2 uxth r3, r3 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6110 .loc 1 3794 8 view .LVU2066 6111 0030 03B1 cbz r3, .L416 6112 .LVL388: 6113 .L413: 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6114 .loc 1 3799 1 view .LVU2067 6115 0032 08BD pop {r3, pc} 6116 .LVL389: 6117 .L416: 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6118 .loc 1 3796 7 is_stmt 1 view .LVU2068 6119 0034 FFF7FEFF bl SPI_CloseRxTx_ISR 6120 .LVL390: 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6121 .loc 1 3799 1 is_stmt 0 view .LVU2069 6122 0038 FBE7 b .L413 6123 .cfi_endproc 6124 .LFE165: 6126 .section .text.SPI_2linesRxISR_16BIT,"ax",%progbits 6127 .align 1 6128 .syntax unified 6129 .thumb 6130 .thumb_func 6132 SPI_2linesRxISR_16BIT: 6133 .LVL391: 6134 .LFB164: ARM GAS /tmp/ccNym1yT.s page 219 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6135 .loc 1 3715 1 is_stmt 1 view -0 6136 .cfi_startproc 6137 @ args = 0, pretend = 0, frame = 0 6138 @ frame_needed = 0, uses_anonymous_args = 0 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 6139 .loc 1 3715 1 is_stmt 0 view .LVU2071 6140 0000 08B5 push {r3, lr} 6141 .cfi_def_cfa_offset 8 6142 .cfi_offset 3, -8 6143 .cfi_offset 14, -4 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6144 .loc 1 3717 3 is_stmt 1 view .LVU2072 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6145 .loc 1 3717 52 is_stmt 0 view .LVU2073 6146 0002 0368 ldr r3, [r0] 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6147 .loc 1 3717 62 view .LVU2074 6148 0004 DA68 ldr r2, [r3, #12] 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6149 .loc 1 3717 21 view .LVU2075 6150 0006 036C ldr r3, [r0, #64] 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6151 .loc 1 3717 35 view .LVU2076 6152 0008 1A80 strh r2, [r3] @ movhi 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6153 .loc 1 3718 3 is_stmt 1 view .LVU2077 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6154 .loc 1 3718 7 is_stmt 0 view .LVU2078 6155 000a 036C ldr r3, [r0, #64] 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6156 .loc 1 3718 20 view .LVU2079 6157 000c 0233 adds r3, r3, #2 6158 000e 0364 str r3, [r0, #64] 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6159 .loc 1 3719 3 is_stmt 1 view .LVU2080 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6160 .loc 1 3719 7 is_stmt 0 view .LVU2081 6161 0010 B0F84630 ldrh r3, [r0, #70] 6162 0014 9BB2 uxth r3, r3 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6163 .loc 1 3719 20 view .LVU2082 6164 0016 013B subs r3, r3, #1 6165 0018 9BB2 uxth r3, r3 6166 001a A0F84630 strh r3, [r0, #70] @ movhi 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6167 .loc 1 3721 3 is_stmt 1 view .LVU2083 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6168 .loc 1 3721 11 is_stmt 0 view .LVU2084 6169 001e B0F84630 ldrh r3, [r0, #70] 6170 0022 9BB2 uxth r3, r3 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6171 .loc 1 3721 6 view .LVU2085 6172 0024 3BB9 cbnz r3, .L417 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6173 .loc 1 3732 5 is_stmt 1 view .LVU2086 6174 0026 0268 ldr r2, [r0] ARM GAS /tmp/ccNym1yT.s page 220 6175 0028 5368 ldr r3, [r2, #4] 6176 002a 23F04003 bic r3, r3, #64 6177 002e 5360 str r3, [r2, #4] 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6178 .loc 1 3734 5 view .LVU2087 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6179 .loc 1 3734 13 is_stmt 0 view .LVU2088 6180 0030 C38F ldrh r3, [r0, #62] 6181 0032 9BB2 uxth r3, r3 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6182 .loc 1 3734 8 view .LVU2089 6183 0034 03B1 cbz r3, .L420 6184 .LVL392: 6185 .L417: 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6186 .loc 1 3739 1 view .LVU2090 6187 0036 08BD pop {r3, pc} 6188 .LVL393: 6189 .L420: 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6190 .loc 1 3736 7 is_stmt 1 view .LVU2091 6191 0038 FFF7FEFF bl SPI_CloseRxTx_ISR 6192 .LVL394: 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6193 .loc 1 3739 1 is_stmt 0 view .LVU2092 6194 003c FBE7 b .L417 6195 .cfi_endproc 6196 .LFE164: 6198 .section .text.SPI_DMAError,"ax",%progbits 6199 .align 1 6200 .syntax unified 6201 .thumb 6202 .thumb_func 6204 SPI_DMAError: 6205 .LVL395: 6206 .LFB158: 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6207 .loc 1 3407 1 is_stmt 1 view -0 6208 .cfi_startproc 6209 @ args = 0, pretend = 0, frame = 0 6210 @ frame_needed = 0, uses_anonymous_args = 0 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6211 .loc 1 3407 1 is_stmt 0 view .LVU2094 6212 0000 08B5 push {r3, lr} 6213 .cfi_def_cfa_offset 8 6214 .cfi_offset 3, -8 6215 .cfi_offset 14, -4 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6216 .loc 1 3408 3 is_stmt 1 view .LVU2095 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6217 .loc 1 3408 22 is_stmt 0 view .LVU2096 6218 0002 406A ldr r0, [r0, #36] 6219 .LVL396: 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6220 .loc 1 3411 3 is_stmt 1 view .LVU2097 6221 0004 0268 ldr r2, [r0] 6222 0006 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccNym1yT.s page 221 6223 0008 23F00303 bic r3, r3, #3 6224 000c 5360 str r3, [r2, #4] 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6225 .loc 1 3413 3 view .LVU2098 6226 000e 036E ldr r3, [r0, #96] 6227 0010 43F01003 orr r3, r3, #16 6228 0014 0366 str r3, [r0, #96] 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6229 .loc 1 3414 3 view .LVU2099 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 6230 .loc 1 3414 15 is_stmt 0 view .LVU2100 6231 0016 0123 movs r3, #1 6232 0018 80F85D30 strb r3, [r0, #93] 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6233 .loc 1 3419 3 is_stmt 1 view .LVU2101 6234 001c FFF7FEFF bl HAL_SPI_ErrorCallback 6235 .LVL397: 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6236 .loc 1 3421 1 is_stmt 0 view .LVU2102 6237 0020 08BD pop {r3, pc} 6238 .cfi_endproc 6239 .LFE158: 6241 .section .text.SPI_DMATransmitCplt,"ax",%progbits 6242 .align 1 6243 .syntax unified 6244 .thumb 6245 .thumb_func 6247 SPI_DMATransmitCplt: 6248 .LVL398: 6249 .LFB152: 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6250 .loc 1 3079 1 is_stmt 1 view -0 6251 .cfi_startproc 6252 @ args = 0, pretend = 0, frame = 8 6253 @ frame_needed = 0, uses_anonymous_args = 0 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6254 .loc 1 3079 1 is_stmt 0 view .LVU2104 6255 0000 30B5 push {r4, r5, lr} 6256 .cfi_def_cfa_offset 12 6257 .cfi_offset 4, -12 6258 .cfi_offset 5, -8 6259 .cfi_offset 14, -4 6260 0002 83B0 sub sp, sp, #12 6261 .cfi_def_cfa_offset 24 6262 0004 0546 mov r5, r0 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6263 .loc 1 3080 3 is_stmt 1 view .LVU2105 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6264 .loc 1 3080 22 is_stmt 0 view .LVU2106 6265 0006 446A ldr r4, [r0, #36] 6266 .LVL399: 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6267 .loc 1 3081 3 is_stmt 1 view .LVU2107 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6268 .loc 1 3084 3 view .LVU2108 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6269 .loc 1 3084 15 is_stmt 0 view .LVU2109 ARM GAS /tmp/ccNym1yT.s page 222 6270 0008 FFF7FEFF bl HAL_GetTick 6271 .LVL400: 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6272 .loc 1 3087 3 is_stmt 1 view .LVU2110 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6273 .loc 1 3087 12 is_stmt 0 view .LVU2111 6274 000c 2B68 ldr r3, [r5] 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6275 .loc 1 3087 22 view .LVU2112 6276 000e 1B68 ldr r3, [r3] 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6277 .loc 1 3087 6 view .LVU2113 6278 0010 13F0200F tst r3, #32 6279 0014 23D1 bne .L424 6280 0016 0246 mov r2, r0 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6281 .loc 1 3090 5 is_stmt 1 view .LVU2114 6282 0018 2168 ldr r1, [r4] 6283 001a 4B68 ldr r3, [r1, #4] 6284 001c 23F02003 bic r3, r3, #32 6285 0020 4B60 str r3, [r1, #4] 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6286 .loc 1 3093 5 view .LVU2115 6287 0022 2168 ldr r1, [r4] 6288 0024 4B68 ldr r3, [r1, #4] 6289 0026 23F00203 bic r3, r3, #2 6290 002a 4B60 str r3, [r1, #4] 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6291 .loc 1 3096 5 view .LVU2116 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6292 .loc 1 3096 9 is_stmt 0 view .LVU2117 6293 002c 6421 movs r1, #100 6294 002e 2046 mov r0, r4 6295 .LVL401: 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6296 .loc 1 3096 9 view .LVU2118 6297 0030 FFF7FEFF bl SPI_EndRxTxTransaction 6298 .LVL402: 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6299 .loc 1 3096 8 discriminator 1 view .LVU2119 6300 0034 18B1 cbz r0, .L425 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6301 .loc 1 3098 7 is_stmt 1 view .LVU2120 6302 0036 236E ldr r3, [r4, #96] 6303 0038 43F02003 orr r3, r3, #32 6304 003c 2366 str r3, [r4, #96] 6305 .L425: 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6306 .loc 1 3102 5 view .LVU2121 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6307 .loc 1 3102 19 is_stmt 0 view .LVU2122 6308 003e A368 ldr r3, [r4, #8] 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6309 .loc 1 3102 8 view .LVU2123 6310 0040 33B9 cbnz r3, .L426 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6311 .loc 1 3104 7 is_stmt 1 view .LVU2124 ARM GAS /tmp/ccNym1yT.s page 223 6312 .LBB6: 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6313 .loc 1 3104 7 view .LVU2125 6314 0042 0193 str r3, [sp, #4] 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6315 .loc 1 3104 7 view .LVU2126 6316 0044 2368 ldr r3, [r4] 6317 0046 DA68 ldr r2, [r3, #12] 6318 0048 0192 str r2, [sp, #4] 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6319 .loc 1 3104 7 view .LVU2127 6320 004a 9B68 ldr r3, [r3, #8] 6321 004c 0193 str r3, [sp, #4] 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6322 .loc 1 3104 7 view .LVU2128 6323 004e 019B ldr r3, [sp, #4] 6324 .L426: 6325 .LBE6: 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6326 .loc 1 3104 7 discriminator 1 view .LVU2129 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6327 .loc 1 3107 5 view .LVU2130 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6328 .loc 1 3107 23 is_stmt 0 view .LVU2131 6329 0050 0023 movs r3, #0 6330 0052 E387 strh r3, [r4, #62] @ movhi 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6331 .loc 1 3108 5 is_stmt 1 view .LVU2132 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6332 .loc 1 3108 17 is_stmt 0 view .LVU2133 6333 0054 0123 movs r3, #1 6334 0056 84F85D30 strb r3, [r4, #93] 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6335 .loc 1 3110 5 is_stmt 1 view .LVU2134 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6336 .loc 1 3110 13 is_stmt 0 view .LVU2135 6337 005a 236E ldr r3, [r4, #96] 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6338 .loc 1 3110 8 view .LVU2136 6339 005c 23B9 cbnz r3, .L429 6340 .L424: 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6341 .loc 1 3125 3 is_stmt 1 view .LVU2137 6342 005e 2046 mov r0, r4 6343 0060 FFF7FEFF bl HAL_SPI_TxCpltCallback 6344 .LVL403: 6345 .L423: 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6346 .loc 1 3127 1 is_stmt 0 view .LVU2138 6347 0064 03B0 add sp, sp, #12 6348 .cfi_remember_state 6349 .cfi_def_cfa_offset 12 6350 @ sp needed 6351 0066 30BD pop {r4, r5, pc} 6352 .LVL404: 6353 .L429: 6354 .cfi_restore_state ARM GAS /tmp/ccNym1yT.s page 224 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6355 .loc 1 3116 7 is_stmt 1 view .LVU2139 6356 0068 2046 mov r0, r4 6357 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6358 .LVL405: 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6359 .loc 1 3118 7 view .LVU2140 6360 006e F9E7 b .L423 6361 .cfi_endproc 6362 .LFE152: 6364 .section .text.SPI_DMAReceiveCplt,"ax",%progbits 6365 .align 1 6366 .syntax unified 6367 .thumb 6368 .thumb_func 6370 SPI_DMAReceiveCplt: 6371 .LVL406: 6372 .LFB153: 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6373 .loc 1 3136 1 view -0 6374 .cfi_startproc 6375 @ args = 0, pretend = 0, frame = 0 6376 @ frame_needed = 0, uses_anonymous_args = 0 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6377 .loc 1 3136 1 is_stmt 0 view .LVU2142 6378 0000 38B5 push {r3, r4, r5, lr} 6379 .cfi_def_cfa_offset 16 6380 .cfi_offset 3, -16 6381 .cfi_offset 4, -12 6382 .cfi_offset 5, -8 6383 .cfi_offset 14, -4 6384 0002 0546 mov r5, r0 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6385 .loc 1 3137 3 is_stmt 1 view .LVU2143 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6386 .loc 1 3137 22 is_stmt 0 view .LVU2144 6387 0004 446A ldr r4, [r0, #36] 6388 .LVL407: 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 6389 .loc 1 3138 3 is_stmt 1 view .LVU2145 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6390 .loc 1 3146 3 view .LVU2146 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6391 .loc 1 3146 15 is_stmt 0 view .LVU2147 6392 0006 FFF7FEFF bl HAL_GetTick 6393 .LVL408: 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6394 .loc 1 3149 3 is_stmt 1 view .LVU2148 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6395 .loc 1 3149 12 is_stmt 0 view .LVU2149 6396 000a 2B68 ldr r3, [r5] 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6397 .loc 1 3149 22 view .LVU2150 6398 000c 1B68 ldr r3, [r3] 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6399 .loc 1 3149 6 view .LVU2151 6400 000e 13F0200F tst r3, #32 ARM GAS /tmp/ccNym1yT.s page 225 6401 0012 1FD1 bne .L431 6402 0014 0246 mov r2, r0 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6403 .loc 1 3152 5 is_stmt 1 view .LVU2152 6404 0016 2168 ldr r1, [r4] 6405 0018 4B68 ldr r3, [r1, #4] 6406 001a 23F02003 bic r3, r3, #32 6407 001e 4B60 str r3, [r1, #4] 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6408 .loc 1 3198 5 view .LVU2153 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6409 .loc 1 3198 20 is_stmt 0 view .LVU2154 6410 0020 A368 ldr r3, [r4, #8] 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6411 .loc 1 3198 8 view .LVU2155 6412 0022 1BB9 cbnz r3, .L432 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6413 .loc 1 3198 70 discriminator 1 view .LVU2156 6414 0024 6368 ldr r3, [r4, #4] 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6415 .loc 1 3198 56 discriminator 1 view .LVU2157 6416 0026 B3F5827F cmp r3, #260 6417 002a 17D0 beq .L437 6418 .L432: 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6419 .loc 1 3206 7 is_stmt 1 view .LVU2158 6420 002c 2168 ldr r1, [r4] 6421 002e 4B68 ldr r3, [r1, #4] 6422 0030 23F00103 bic r3, r3, #1 6423 0034 4B60 str r3, [r1, #4] 6424 .L433: 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6425 .loc 1 3210 5 view .LVU2159 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6426 .loc 1 3210 9 is_stmt 0 view .LVU2160 6427 0036 6421 movs r1, #100 6428 0038 2046 mov r0, r4 6429 .LVL409: 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6430 .loc 1 3210 9 view .LVU2161 6431 003a FFF7FEFF bl SPI_EndRxTransaction 6432 .LVL410: 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6433 .loc 1 3210 8 discriminator 1 view .LVU2162 6434 003e 08B1 cbz r0, .L434 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6435 .loc 1 3212 7 is_stmt 1 view .LVU2163 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6436 .loc 1 3212 23 is_stmt 0 view .LVU2164 6437 0040 2023 movs r3, #32 6438 0042 2366 str r3, [r4, #96] 6439 .L434: 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6440 .loc 1 3215 5 is_stmt 1 view .LVU2165 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6441 .loc 1 3215 23 is_stmt 0 view .LVU2166 6442 0044 0023 movs r3, #0 ARM GAS /tmp/ccNym1yT.s page 226 6443 0046 A4F84630 strh r3, [r4, #70] @ movhi 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6444 .loc 1 3216 5 is_stmt 1 view .LVU2167 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6445 .loc 1 3216 17 is_stmt 0 view .LVU2168 6446 004a 0123 movs r3, #1 6447 004c 84F85D30 strb r3, [r4, #93] 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6448 .loc 1 3227 5 is_stmt 1 view .LVU2169 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6449 .loc 1 3227 13 is_stmt 0 view .LVU2170 6450 0050 236E ldr r3, [r4, #96] 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6451 .loc 1 3227 8 view .LVU2171 6452 0052 4BB9 cbnz r3, .L438 6453 .L431: 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6454 .loc 1 3242 3 is_stmt 1 view .LVU2172 6455 0054 2046 mov r0, r4 6456 0056 FFF7FEFF bl HAL_SPI_RxCpltCallback 6457 .LVL411: 6458 .L430: 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6459 .loc 1 3244 1 is_stmt 0 view .LVU2173 6460 005a 38BD pop {r3, r4, r5, pc} 6461 .LVL412: 6462 .L437: 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6463 .loc 1 3201 7 is_stmt 1 view .LVU2174 6464 005c 2168 ldr r1, [r4] 6465 005e 4B68 ldr r3, [r1, #4] 6466 0060 23F00303 bic r3, r3, #3 6467 0064 4B60 str r3, [r1, #4] 6468 0066 E6E7 b .L433 6469 .LVL413: 6470 .L438: 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6471 .loc 1 3233 7 view .LVU2175 6472 0068 2046 mov r0, r4 6473 006a FFF7FEFF bl HAL_SPI_ErrorCallback 6474 .LVL414: 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6475 .loc 1 3235 7 view .LVU2176 6476 006e F4E7 b .L430 6477 .cfi_endproc 6478 .LFE153: 6480 .section .text.SPI_DMATransmitReceiveCplt,"ax",%progbits 6481 .align 1 6482 .syntax unified 6483 .thumb 6484 .thumb_func 6486 SPI_DMATransmitReceiveCplt: 6487 .LVL415: 6488 .LFB154: 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6489 .loc 1 3253 1 view -0 6490 .cfi_startproc ARM GAS /tmp/ccNym1yT.s page 227 6491 @ args = 0, pretend = 0, frame = 0 6492 @ frame_needed = 0, uses_anonymous_args = 0 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6493 .loc 1 3253 1 is_stmt 0 view .LVU2178 6494 0000 38B5 push {r3, r4, r5, lr} 6495 .cfi_def_cfa_offset 16 6496 .cfi_offset 3, -16 6497 .cfi_offset 4, -12 6498 .cfi_offset 5, -8 6499 .cfi_offset 14, -4 6500 0002 0546 mov r5, r0 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6501 .loc 1 3254 3 is_stmt 1 view .LVU2179 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 6502 .loc 1 3254 22 is_stmt 0 view .LVU2180 6503 0004 446A ldr r4, [r0, #36] 6504 .LVL416: 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 6505 .loc 1 3255 3 is_stmt 1 view .LVU2181 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6506 .loc 1 3263 3 view .LVU2182 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6507 .loc 1 3263 15 is_stmt 0 view .LVU2183 6508 0006 FFF7FEFF bl HAL_GetTick 6509 .LVL417: 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6510 .loc 1 3266 3 is_stmt 1 view .LVU2184 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6511 .loc 1 3266 12 is_stmt 0 view .LVU2185 6512 000a 2B68 ldr r3, [r5] 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6513 .loc 1 3266 22 view .LVU2186 6514 000c 1B68 ldr r3, [r3] 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6515 .loc 1 3266 6 view .LVU2187 6516 000e 13F0200F tst r3, #32 6517 0012 1CD1 bne .L440 6518 0014 0246 mov r2, r0 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6519 .loc 1 3269 5 is_stmt 1 view .LVU2188 6520 0016 2168 ldr r1, [r4] 6521 0018 4B68 ldr r3, [r1, #4] 6522 001a 23F02003 bic r3, r3, #32 6523 001e 4B60 str r3, [r1, #4] 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6524 .loc 1 3306 5 view .LVU2189 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6525 .loc 1 3306 9 is_stmt 0 view .LVU2190 6526 0020 6421 movs r1, #100 6527 0022 2046 mov r0, r4 6528 .LVL418: 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6529 .loc 1 3306 9 view .LVU2191 6530 0024 FFF7FEFF bl SPI_EndRxTxTransaction 6531 .LVL419: 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6532 .loc 1 3306 8 discriminator 1 view .LVU2192 ARM GAS /tmp/ccNym1yT.s page 228 6533 0028 18B1 cbz r0, .L441 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6534 .loc 1 3308 7 is_stmt 1 view .LVU2193 6535 002a 236E ldr r3, [r4, #96] 6536 002c 43F02003 orr r3, r3, #32 6537 0030 2366 str r3, [r4, #96] 6538 .L441: 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6539 .loc 1 3312 5 view .LVU2194 6540 0032 2268 ldr r2, [r4] 6541 0034 5368 ldr r3, [r2, #4] 6542 0036 23F00303 bic r3, r3, #3 6543 003a 5360 str r3, [r2, #4] 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6544 .loc 1 3314 5 view .LVU2195 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6545 .loc 1 3314 23 is_stmt 0 view .LVU2196 6546 003c 0023 movs r3, #0 6547 003e E387 strh r3, [r4, #62] @ movhi 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6548 .loc 1 3315 5 is_stmt 1 view .LVU2197 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6549 .loc 1 3315 23 is_stmt 0 view .LVU2198 6550 0040 A4F84630 strh r3, [r4, #70] @ movhi 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6551 .loc 1 3316 5 is_stmt 1 view .LVU2199 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6552 .loc 1 3316 17 is_stmt 0 view .LVU2200 6553 0044 0123 movs r3, #1 6554 0046 84F85D30 strb r3, [r4, #93] 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6555 .loc 1 3327 5 is_stmt 1 view .LVU2201 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6556 .loc 1 3327 13 is_stmt 0 view .LVU2202 6557 004a 236E ldr r3, [r4, #96] 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6558 .loc 1 3327 8 view .LVU2203 6559 004c 1BB9 cbnz r3, .L444 6560 .L440: 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6561 .loc 1 3342 3 is_stmt 1 view .LVU2204 6562 004e 2046 mov r0, r4 6563 0050 FFF7FEFF bl HAL_SPI_TxRxCpltCallback 6564 .LVL420: 6565 .L439: 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6566 .loc 1 3344 1 is_stmt 0 view .LVU2205 6567 0054 38BD pop {r3, r4, r5, pc} 6568 .LVL421: 6569 .L444: 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6570 .loc 1 3333 7 is_stmt 1 view .LVU2206 6571 0056 2046 mov r0, r4 6572 0058 FFF7FEFF bl HAL_SPI_ErrorCallback 6573 .LVL422: 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6574 .loc 1 3335 7 view .LVU2207 ARM GAS /tmp/ccNym1yT.s page 229 6575 005c FAE7 b .L439 6576 .cfi_endproc 6577 .LFE154: 6579 .section .text.HAL_SPI_IRQHandler,"ax",%progbits 6580 .align 1 6581 .global HAL_SPI_IRQHandler 6582 .syntax unified 6583 .thumb 6584 .thumb_func 6586 HAL_SPI_IRQHandler: 6587 .LVL423: 6588 .LFB141: 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 6589 .loc 1 2786 1 view -0 6590 .cfi_startproc 6591 @ args = 0, pretend = 0, frame = 16 6592 @ frame_needed = 0, uses_anonymous_args = 0 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 6593 .loc 1 2786 1 is_stmt 0 view .LVU2209 6594 0000 30B5 push {r4, r5, lr} 6595 .cfi_def_cfa_offset 12 6596 .cfi_offset 4, -12 6597 .cfi_offset 5, -8 6598 .cfi_offset 14, -4 6599 0002 85B0 sub sp, sp, #20 6600 .cfi_def_cfa_offset 32 6601 0004 0446 mov r4, r0 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6602 .loc 1 2787 3 is_stmt 1 view .LVU2210 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6603 .loc 1 2787 27 is_stmt 0 view .LVU2211 6604 0006 0268 ldr r2, [r0] 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 6605 .loc 1 2787 12 view .LVU2212 6606 0008 5168 ldr r1, [r2, #4] 6607 .LVL424: 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6608 .loc 1 2788 3 is_stmt 1 view .LVU2213 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6609 .loc 1 2788 12 is_stmt 0 view .LVU2214 6610 000a 9368 ldr r3, [r2, #8] 6611 .LVL425: 2791: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 6612 .loc 1 2791 3 is_stmt 1 view .LVU2215 6613 000c C3F38010 ubfx r0, r3, #6, #1 6614 .LVL426: 2791: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 6615 .loc 1 2791 6 is_stmt 0 view .LVU2216 6616 0010 13F0400F tst r3, #64 6617 0014 05D1 bne .L446 2791: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 6618 .loc 1 2791 55 discriminator 1 view .LVU2217 6619 0016 13F0010F tst r3, #1 6620 001a 02D0 beq .L446 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6621 .loc 1 2792 56 view .LVU2218 6622 001c 11F0400F tst r1, #64 ARM GAS /tmp/ccNym1yT.s page 230 6623 0020 69D1 bne .L458 6624 .L446: 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6625 .loc 1 2799 3 is_stmt 1 view .LVU2219 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6626 .loc 1 2799 6 is_stmt 0 view .LVU2220 6627 0022 13F0020F tst r3, #2 6628 0026 02D0 beq .L448 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6629 .loc 1 2799 55 discriminator 1 view .LVU2221 6630 0028 11F0800F tst r1, #128 6631 002c 67D1 bne .L459 6632 .L448: 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6633 .loc 1 2806 3 is_stmt 1 view .LVU2222 6634 002e C3F34015 ubfx r5, r3, #5, #1 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6635 .loc 1 2806 6 is_stmt 0 view .LVU2223 6636 0032 13F0200F tst r3, #32 6637 0036 03D1 bne .L449 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 6638 .loc 1 2806 57 discriminator 1 view .LVU2224 6639 0038 10B9 cbnz r0, .L449 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6640 .loc 1 2807 8 view .LVU2225 6641 003a 13F4807F tst r3, #256 6642 003e 61D0 beq .L445 6643 .L449: 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6644 .loc 1 2807 60 discriminator 1 view .LVU2226 6645 0040 11F0200F tst r1, #32 6646 0044 5ED0 beq .L445 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6647 .loc 1 2810 5 is_stmt 1 view .LVU2227 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6648 .loc 1 2810 8 is_stmt 0 view .LVU2228 6649 0046 78B1 cbz r0, .L450 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6650 .loc 1 2812 7 is_stmt 1 view .LVU2229 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6651 .loc 1 2812 15 is_stmt 0 view .LVU2230 6652 0048 94F85D00 ldrb r0, [r4, #93] @ zero_extendqisi2 6653 004c C0B2 uxtb r0, r0 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6654 .loc 1 2812 10 view .LVU2231 6655 004e 0328 cmp r0, #3 6656 0050 5AD0 beq .L451 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 6657 .loc 1 2814 9 is_stmt 1 view .LVU2232 6658 0052 206E ldr r0, [r4, #96] 6659 0054 40F00400 orr r0, r0, #4 6660 0058 2066 str r0, [r4, #96] 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6661 .loc 1 2815 9 view .LVU2233 6662 .LBB7: 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6663 .loc 1 2815 9 view .LVU2234 ARM GAS /tmp/ccNym1yT.s page 231 6664 005a 0020 movs r0, #0 6665 005c 0090 str r0, [sp] 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6666 .loc 1 2815 9 view .LVU2235 6667 005e D068 ldr r0, [r2, #12] 6668 0060 0090 str r0, [sp] 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6669 .loc 1 2815 9 view .LVU2236 6670 0062 9068 ldr r0, [r2, #8] 6671 0064 0090 str r0, [sp] 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6672 .loc 1 2815 9 view .LVU2237 6673 0066 0098 ldr r0, [sp] 6674 .LBE7: 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6675 .loc 1 2815 9 view .LVU2238 6676 .L450: 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6677 .loc 1 2825 5 view .LVU2239 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6678 .loc 1 2825 8 is_stmt 0 view .LVU2240 6679 0068 65B1 cbz r5, .L452 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 6680 .loc 1 2827 7 is_stmt 1 view .LVU2241 6681 006a 206E ldr r0, [r4, #96] 6682 006c 40F00100 orr r0, r0, #1 6683 0070 2066 str r0, [r4, #96] 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6684 .loc 1 2828 7 view .LVU2242 6685 .LBB8: 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6686 .loc 1 2828 7 view .LVU2243 6687 0072 0020 movs r0, #0 6688 0074 0290 str r0, [sp, #8] 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6689 .loc 1 2828 7 view .LVU2244 6690 0076 9068 ldr r0, [r2, #8] 6691 0078 0290 str r0, [sp, #8] 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6692 .loc 1 2828 7 view .LVU2245 6693 007a 1068 ldr r0, [r2] 6694 007c 20F04000 bic r0, r0, #64 6695 0080 1060 str r0, [r2] 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6696 .loc 1 2828 7 view .LVU2246 6697 0082 029A ldr r2, [sp, #8] 6698 .L452: 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6699 .loc 1 2828 7 is_stmt 0 view .LVU2247 6700 .LBE8: 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6701 .loc 1 2828 7 is_stmt 1 discriminator 1 view .LVU2248 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6702 .loc 1 2832 5 view .LVU2249 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6703 .loc 1 2832 8 is_stmt 0 view .LVU2250 6704 0084 13F4807F tst r3, #256 ARM GAS /tmp/ccNym1yT.s page 232 6705 0088 09D0 beq .L453 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6706 .loc 1 2834 7 is_stmt 1 view .LVU2251 6707 008a 236E ldr r3, [r4, #96] 6708 .LVL427: 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6709 .loc 1 2834 7 is_stmt 0 view .LVU2252 6710 008c 43F00803 orr r3, r3, #8 6711 0090 2366 str r3, [r4, #96] 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6712 .loc 1 2835 7 is_stmt 1 view .LVU2253 6713 .LBB9: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6714 .loc 1 2835 7 view .LVU2254 6715 0092 0023 movs r3, #0 6716 0094 0393 str r3, [sp, #12] 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6717 .loc 1 2835 7 view .LVU2255 6718 0096 2368 ldr r3, [r4] 6719 0098 9B68 ldr r3, [r3, #8] 6720 009a 0393 str r3, [sp, #12] 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6721 .loc 1 2835 7 view .LVU2256 6722 009c 039B ldr r3, [sp, #12] 6723 .L453: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6724 .loc 1 2835 7 is_stmt 0 view .LVU2257 6725 .LBE9: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6726 .loc 1 2835 7 is_stmt 1 discriminator 1 view .LVU2258 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6727 .loc 1 2838 5 view .LVU2259 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6728 .loc 1 2838 13 is_stmt 0 view .LVU2260 6729 009e 236E ldr r3, [r4, #96] 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6730 .loc 1 2838 8 view .LVU2261 6731 00a0 002B cmp r3, #0 6732 00a2 2FD0 beq .L445 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6733 .loc 1 2841 7 is_stmt 1 view .LVU2262 6734 00a4 2268 ldr r2, [r4] 6735 00a6 5368 ldr r3, [r2, #4] 6736 00a8 23F0E003 bic r3, r3, #224 6737 00ac 5360 str r3, [r2, #4] 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6738 .loc 1 2843 7 view .LVU2263 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 6739 .loc 1 2843 19 is_stmt 0 view .LVU2264 6740 00ae 0123 movs r3, #1 6741 00b0 84F85D30 strb r3, [r4, #93] 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6742 .loc 1 2845 7 is_stmt 1 view .LVU2265 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6743 .loc 1 2845 10 is_stmt 0 view .LVU2266 6744 00b4 11F0030F tst r1, #3 6745 00b8 2ED0 beq .L455 ARM GAS /tmp/ccNym1yT.s page 233 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6746 .loc 1 2847 9 is_stmt 1 view .LVU2267 6747 00ba 2268 ldr r2, [r4] 6748 00bc 5368 ldr r3, [r2, #4] 6749 00be 23F00303 bic r3, r3, #3 6750 00c2 5360 str r3, [r2, #4] 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6751 .loc 1 2850 9 view .LVU2268 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6752 .loc 1 2850 17 is_stmt 0 view .LVU2269 6753 00c4 A36D ldr r3, [r4, #88] 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6754 .loc 1 2850 12 view .LVU2270 6755 00c6 4BB1 cbz r3, .L456 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6756 .loc 1 2854 11 is_stmt 1 view .LVU2271 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 6757 .loc 1 2854 43 is_stmt 0 view .LVU2272 6758 00c8 154A ldr r2, .L460 6759 00ca 5A63 str r2, [r3, #52] 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6760 .loc 1 2855 11 is_stmt 1 view .LVU2273 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6761 .loc 1 2855 25 is_stmt 0 view .LVU2274 6762 00cc A06D ldr r0, [r4, #88] 6763 00ce FFF7FEFF bl HAL_DMA_Abort_IT 6764 .LVL428: 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6765 .loc 1 2855 14 discriminator 1 view .LVU2275 6766 00d2 18B1 cbz r0, .L456 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6767 .loc 1 2857 13 is_stmt 1 view .LVU2276 6768 00d4 236E ldr r3, [r4, #96] 6769 00d6 43F04003 orr r3, r3, #64 6770 00da 2366 str r3, [r4, #96] 6771 .L456: 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6772 .loc 1 2861 9 view .LVU2277 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6773 .loc 1 2861 17 is_stmt 0 view .LVU2278 6774 00dc 636D ldr r3, [r4, #84] 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6775 .loc 1 2861 12 view .LVU2279 6776 00de 8BB1 cbz r3, .L445 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6777 .loc 1 2865 11 is_stmt 1 view .LVU2280 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 6778 .loc 1 2865 43 is_stmt 0 view .LVU2281 6779 00e0 0F4A ldr r2, .L460 6780 00e2 5A63 str r2, [r3, #52] 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6781 .loc 1 2866 11 is_stmt 1 view .LVU2282 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6782 .loc 1 2866 25 is_stmt 0 view .LVU2283 6783 00e4 606D ldr r0, [r4, #84] 6784 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 6785 .LVL429: ARM GAS /tmp/ccNym1yT.s page 234 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6786 .loc 1 2866 14 discriminator 1 view .LVU2284 6787 00ea 58B1 cbz r0, .L445 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6788 .loc 1 2868 13 is_stmt 1 view .LVU2285 6789 00ec 236E ldr r3, [r4, #96] 6790 00ee 43F04003 orr r3, r3, #64 6791 00f2 2366 str r3, [r4, #96] 6792 00f4 06E0 b .L445 6793 .LVL430: 6794 .L458: 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6795 .loc 1 2794 5 view .LVU2286 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6796 .loc 1 2794 9 is_stmt 0 view .LVU2287 6797 00f6 E36C ldr r3, [r4, #76] 6798 .LVL431: 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6799 .loc 1 2794 5 view .LVU2288 6800 00f8 2046 mov r0, r4 6801 00fa 9847 blx r3 6802 .LVL432: 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6803 .loc 1 2795 5 is_stmt 1 view .LVU2289 6804 00fc 02E0 b .L445 6805 .LVL433: 6806 .L459: 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6807 .loc 1 2801 5 view .LVU2290 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6808 .loc 1 2801 9 is_stmt 0 view .LVU2291 6809 00fe 236D ldr r3, [r4, #80] 6810 .LVL434: 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6811 .loc 1 2801 5 view .LVU2292 6812 0100 2046 mov r0, r4 6813 0102 9847 blx r3 6814 .LVL435: 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6815 .loc 1 2802 5 is_stmt 1 view .LVU2293 6816 .L445: 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6817 .loc 1 2884 1 is_stmt 0 view .LVU2294 6818 0104 05B0 add sp, sp, #20 6819 .cfi_remember_state 6820 .cfi_def_cfa_offset 12 6821 @ sp needed 6822 0106 30BD pop {r4, r5, pc} 6823 .LVL436: 6824 .L451: 6825 .cfi_restore_state 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6826 .loc 1 2819 9 is_stmt 1 view .LVU2295 6827 .LBB10: 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6828 .loc 1 2819 9 view .LVU2296 6829 0108 0023 movs r3, #0 ARM GAS /tmp/ccNym1yT.s page 235 6830 .LVL437: 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6831 .loc 1 2819 9 is_stmt 0 view .LVU2297 6832 010a 0193 str r3, [sp, #4] 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6833 .loc 1 2819 9 is_stmt 1 view .LVU2298 6834 010c D368 ldr r3, [r2, #12] 6835 010e 0193 str r3, [sp, #4] 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6836 .loc 1 2819 9 view .LVU2299 6837 0110 9368 ldr r3, [r2, #8] 6838 0112 0193 str r3, [sp, #4] 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6839 .loc 1 2819 9 view .LVU2300 6840 0114 019B ldr r3, [sp, #4] 6841 .LBE10: 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6842 .loc 1 2819 9 view .LVU2301 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6843 .loc 1 2820 9 view .LVU2302 6844 0116 F5E7 b .L445 6845 .L455: 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6846 .loc 1 2878 9 view .LVU2303 6847 0118 2046 mov r0, r4 6848 011a FFF7FEFF bl HAL_SPI_ErrorCallback 6849 .LVL438: 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6850 .loc 1 2882 5 view .LVU2304 6851 011e F1E7 b .L445 6852 .L461: 6853 .align 2 6854 .L460: 6855 0120 00000000 .word SPI_DMAAbortOnError 6856 .cfi_endproc 6857 .LFE141: 6859 .section .text.SPI_DMAAbortOnError,"ax",%progbits 6860 .align 1 6861 .syntax unified 6862 .thumb 6863 .thumb_func 6865 SPI_DMAAbortOnError: 6866 .LVL439: 6867 .LFB159: 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6868 .loc 1 3430 1 view -0 6869 .cfi_startproc 6870 @ args = 0, pretend = 0, frame = 0 6871 @ frame_needed = 0, uses_anonymous_args = 0 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6872 .loc 1 3430 1 is_stmt 0 view .LVU2306 6873 0000 08B5 push {r3, lr} 6874 .cfi_def_cfa_offset 8 6875 .cfi_offset 3, -8 6876 .cfi_offset 14, -4 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6877 .loc 1 3431 3 is_stmt 1 view .LVU2307 ARM GAS /tmp/ccNym1yT.s page 236 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6878 .loc 1 3431 22 is_stmt 0 view .LVU2308 6879 0002 406A ldr r0, [r0, #36] 6880 .LVL440: 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6881 .loc 1 3432 3 is_stmt 1 view .LVU2309 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6882 .loc 1 3432 21 is_stmt 0 view .LVU2310 6883 0004 0023 movs r3, #0 6884 0006 A0F84630 strh r3, [r0, #70] @ movhi 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6885 .loc 1 3433 3 is_stmt 1 view .LVU2311 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6886 .loc 1 3433 21 is_stmt 0 view .LVU2312 6887 000a C387 strh r3, [r0, #62] @ movhi 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 6888 .loc 1 3439 3 is_stmt 1 view .LVU2313 6889 000c FFF7FEFF bl HAL_SPI_ErrorCallback 6890 .LVL441: 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6891 .loc 1 3441 1 is_stmt 0 view .LVU2314 6892 0010 08BD pop {r3, pc} 6893 .cfi_endproc 6894 .LFE159: 6896 .section .text.HAL_SPI_AbortCpltCallback,"ax",%progbits 6897 .align 1 6898 .weak HAL_SPI_AbortCpltCallback 6899 .syntax unified 6900 .thumb 6901 .thumb_func 6903 HAL_SPI_AbortCpltCallback: 6904 .LVL442: 6905 .LFB149: 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 6906 .loc 1 3007 1 is_stmt 1 view -0 6907 .cfi_startproc 6908 @ args = 0, pretend = 0, frame = 0 6909 @ frame_needed = 0, uses_anonymous_args = 0 6910 @ link register save eliminated. 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6911 .loc 1 3009 3 view .LVU2316 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6912 .loc 1 3014 1 is_stmt 0 view .LVU2317 6913 0000 7047 bx lr 6914 .cfi_endproc 6915 .LFE149: 6917 .section .text.HAL_SPI_Abort_IT,"ax",%progbits 6918 .align 1 6919 .global HAL_SPI_Abort_IT 6920 .syntax unified 6921 .thumb 6922 .thumb_func 6924 HAL_SPI_Abort_IT: 6925 .LVL443: 6926 .LFB137: 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6927 .loc 1 2545 1 is_stmt 1 view -0 ARM GAS /tmp/ccNym1yT.s page 237 6928 .cfi_startproc 6929 @ args = 0, pretend = 0, frame = 16 6930 @ frame_needed = 0, uses_anonymous_args = 0 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 6931 .loc 1 2545 1 is_stmt 0 view .LVU2319 6932 0000 70B5 push {r4, r5, r6, lr} 6933 .cfi_def_cfa_offset 16 6934 .cfi_offset 4, -16 6935 .cfi_offset 5, -12 6936 .cfi_offset 6, -8 6937 .cfi_offset 14, -4 6938 0002 84B0 sub sp, sp, #16 6939 .cfi_def_cfa_offset 32 6940 0004 0446 mov r4, r0 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 6941 .loc 1 2546 3 is_stmt 1 view .LVU2320 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 6942 .loc 1 2547 3 view .LVU2321 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 6943 .loc 1 2548 3 view .LVU2322 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6944 .loc 1 2549 3 view .LVU2323 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 6945 .loc 1 2552 3 view .LVU2324 6946 .LVL444: 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 6947 .loc 1 2553 3 view .LVU2325 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6948 .loc 1 2554 3 view .LVU2326 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6949 .loc 1 2554 61 is_stmt 0 view .LVU2327 6950 0006 504B ldr r3, .L491 6951 0008 1B68 ldr r3, [r3] 6952 000a 504A ldr r2, .L491+4 6953 000c A2FB0323 umull r2, r3, r2, r3 6954 0010 5B0A lsrs r3, r3, #9 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6955 .loc 1 2554 36 view .LVU2328 6956 0012 6422 movs r2, #100 6957 0014 02FB03F3 mul r3, r2, r3 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 6958 .loc 1 2554 14 view .LVU2329 6959 0018 0293 str r3, [sp, #8] 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6960 .loc 1 2555 3 is_stmt 1 view .LVU2330 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6961 .loc 1 2555 9 is_stmt 0 view .LVU2331 6962 001a 029B ldr r3, [sp, #8] 6963 001c 0393 str r3, [sp, #12] 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 6964 .loc 1 2558 3 is_stmt 1 view .LVU2332 6965 001e 0268 ldr r2, [r0] 6966 0020 5368 ldr r3, [r2, #4] 6967 0022 23F02003 bic r3, r3, #32 6968 0026 5360 str r3, [r2, #4] 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6969 .loc 1 2561 3 view .LVU2333 ARM GAS /tmp/ccNym1yT.s page 238 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6970 .loc 1 2561 7 is_stmt 0 view .LVU2334 6971 0028 0268 ldr r2, [r0] 6972 002a 5368 ldr r3, [r2, #4] 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6973 .loc 1 2561 6 view .LVU2335 6974 002c 13F0800F tst r3, #128 6975 0030 12D0 beq .L466 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 6976 .loc 1 2563 5 is_stmt 1 view .LVU2336 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 6977 .loc 1 2563 17 is_stmt 0 view .LVU2337 6978 0032 474B ldr r3, .L491+8 6979 0034 0365 str r3, [r0, #80] 6980 .L469: 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6981 .loc 1 2565 5 is_stmt 1 view .LVU2338 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6982 .loc 1 2567 7 view .LVU2339 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6983 .loc 1 2567 17 is_stmt 0 view .LVU2340 6984 0036 039B ldr r3, [sp, #12] 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6985 .loc 1 2567 10 view .LVU2341 6986 0038 43B1 cbz r3, .L488 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 6987 .loc 1 2572 7 is_stmt 1 view .LVU2342 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 6988 .loc 1 2572 12 is_stmt 0 view .LVU2343 6989 003a 039B ldr r3, [sp, #12] 6990 003c 013B subs r3, r3, #1 6991 003e 0393 str r3, [sp, #12] 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6992 .loc 1 2573 26 is_stmt 1 view .LVU2344 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6993 .loc 1 2573 18 is_stmt 0 view .LVU2345 6994 0040 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 6995 0044 DBB2 uxtb r3, r3 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 6996 .loc 1 2573 26 view .LVU2346 6997 0046 072B cmp r3, #7 6998 0048 F5D1 bne .L469 6999 004a 03E0 b .L468 7000 .L488: 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 7001 .loc 1 2569 9 is_stmt 1 view .LVU2347 7002 004c 236E ldr r3, [r4, #96] 7003 004e 43F04003 orr r3, r3, #64 7004 0052 2366 str r3, [r4, #96] 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7005 .loc 1 2570 9 view .LVU2348 7006 .L468: 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7007 .loc 1 2575 5 view .LVU2349 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7008 .loc 1 2575 11 is_stmt 0 view .LVU2350 7009 0054 029B ldr r3, [sp, #8] ARM GAS /tmp/ccNym1yT.s page 239 7010 0056 0393 str r3, [sp, #12] 7011 .L466: 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7012 .loc 1 2578 3 is_stmt 1 view .LVU2351 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7013 .loc 1 2578 7 is_stmt 0 view .LVU2352 7014 0058 5368 ldr r3, [r2, #4] 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7015 .loc 1 2578 6 view .LVU2353 7016 005a 13F0400F tst r3, #64 7017 005e 12D0 beq .L470 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7018 .loc 1 2580 5 is_stmt 1 view .LVU2354 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 7019 .loc 1 2580 17 is_stmt 0 view .LVU2355 7020 0060 3C4B ldr r3, .L491+12 7021 0062 E364 str r3, [r4, #76] 7022 .L473: 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7023 .loc 1 2582 5 is_stmt 1 view .LVU2356 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7024 .loc 1 2584 7 view .LVU2357 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7025 .loc 1 2584 17 is_stmt 0 view .LVU2358 7026 0064 039B ldr r3, [sp, #12] 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7027 .loc 1 2584 10 view .LVU2359 7028 0066 43B1 cbz r3, .L489 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7029 .loc 1 2589 7 is_stmt 1 view .LVU2360 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 7030 .loc 1 2589 12 is_stmt 0 view .LVU2361 7031 0068 039B ldr r3, [sp, #12] 7032 006a 013B subs r3, r3, #1 7033 006c 0393 str r3, [sp, #12] 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7034 .loc 1 2590 26 is_stmt 1 view .LVU2362 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7035 .loc 1 2590 18 is_stmt 0 view .LVU2363 7036 006e 94F85D30 ldrb r3, [r4, #93] @ zero_extendqisi2 7037 0072 DBB2 uxtb r3, r3 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 7038 .loc 1 2590 26 view .LVU2364 7039 0074 072B cmp r3, #7 7040 0076 F5D1 bne .L473 7041 0078 03E0 b .L472 7042 .L489: 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 7043 .loc 1 2586 9 is_stmt 1 view .LVU2365 7044 007a 236E ldr r3, [r4, #96] 7045 007c 43F04003 orr r3, r3, #64 7046 0080 2366 str r3, [r4, #96] 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7047 .loc 1 2587 9 view .LVU2366 7048 .L472: 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7049 .loc 1 2592 5 view .LVU2367 ARM GAS /tmp/ccNym1yT.s page 240 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7050 .loc 1 2592 11 is_stmt 0 view .LVU2368 7051 0082 029B ldr r3, [sp, #8] 7052 0084 0393 str r3, [sp, #12] 7053 .L470: 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7054 .loc 1 2598 3 is_stmt 1 view .LVU2369 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7055 .loc 1 2598 11 is_stmt 0 view .LVU2370 7056 0086 636D ldr r3, [r4, #84] 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7057 .loc 1 2598 6 view .LVU2371 7058 0088 2BB1 cbz r3, .L474 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7059 .loc 1 2602 5 is_stmt 1 view .LVU2372 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7060 .loc 1 2602 9 is_stmt 0 view .LVU2373 7061 008a 5268 ldr r2, [r2, #4] 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7062 .loc 1 2602 8 view .LVU2374 7063 008c 12F0020F tst r2, #2 7064 0090 1BD0 beq .L475 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7065 .loc 1 2604 7 is_stmt 1 view .LVU2375 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7066 .loc 1 2604 39 is_stmt 0 view .LVU2376 7067 0092 314A ldr r2, .L491+16 7068 0094 5A63 str r2, [r3, #52] 7069 .L474: 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7070 .loc 1 2612 3 is_stmt 1 view .LVU2377 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7071 .loc 1 2612 11 is_stmt 0 view .LVU2378 7072 0096 A36D ldr r3, [r4, #88] 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7073 .loc 1 2612 6 view .LVU2379 7074 0098 33B1 cbz r3, .L476 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7075 .loc 1 2616 5 is_stmt 1 view .LVU2380 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7076 .loc 1 2616 9 is_stmt 0 view .LVU2381 7077 009a 2268 ldr r2, [r4] 7078 009c 5268 ldr r2, [r2, #4] 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7079 .loc 1 2616 8 view .LVU2382 7080 009e 12F0010F tst r2, #1 7081 00a2 15D0 beq .L477 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7082 .loc 1 2618 7 is_stmt 1 view .LVU2383 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7083 .loc 1 2618 39 is_stmt 0 view .LVU2384 7084 00a4 2D4A ldr r2, .L491+20 7085 00a6 5A63 str r2, [r3, #52] 7086 .L476: 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7087 .loc 1 2627 3 is_stmt 1 view .LVU2385 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 241 7088 .loc 1 2627 7 is_stmt 0 view .LVU2386 7089 00a8 2368 ldr r3, [r4] 7090 00aa 5B68 ldr r3, [r3, #4] 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7091 .loc 1 2627 6 view .LVU2387 7092 00ac 13F0020F tst r3, #2 7093 00b0 11D0 beq .L482 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7094 .loc 1 2630 5 is_stmt 1 view .LVU2388 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7095 .loc 1 2630 13 is_stmt 0 view .LVU2389 7096 00b2 606D ldr r0, [r4, #84] 7097 .LVL445: 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7098 .loc 1 2630 8 view .LVU2390 7099 00b4 28B3 cbz r0, .L483 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7100 .loc 1 2633 7 is_stmt 1 view .LVU2391 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7101 .loc 1 2633 11 is_stmt 0 view .LVU2392 7102 00b6 FFF7FEFF bl HAL_DMA_Abort_IT 7103 .LVL446: 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7104 .loc 1 2633 10 discriminator 1 view .LVU2393 7105 00ba 20B3 cbz r0, .L484 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7106 .loc 1 2635 9 is_stmt 1 view .LVU2394 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7107 .loc 1 2635 13 is_stmt 0 view .LVU2395 7108 00bc 636D ldr r3, [r4, #84] 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7109 .loc 1 2635 41 view .LVU2396 7110 00be 0022 movs r2, #0 7111 00c0 5A63 str r2, [r3, #52] 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7112 .loc 1 2636 9 is_stmt 1 view .LVU2397 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7113 .loc 1 2636 25 is_stmt 0 view .LVU2398 7114 00c2 4023 movs r3, #64 7115 00c4 2366 str r3, [r4, #96] 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7116 .loc 1 2553 13 view .LVU2399 7117 00c6 0126 movs r6, #1 7118 00c8 06E0 b .L478 7119 .LVL447: 7120 .L475: 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7121 .loc 1 2608 7 is_stmt 1 view .LVU2400 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7122 .loc 1 2608 39 is_stmt 0 view .LVU2401 7123 00ca 0022 movs r2, #0 7124 00cc 5A63 str r2, [r3, #52] 7125 00ce E2E7 b .L474 7126 .L477: 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7127 .loc 1 2622 7 is_stmt 1 view .LVU2402 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccNym1yT.s page 242 7128 .loc 1 2622 39 is_stmt 0 view .LVU2403 7129 00d0 0022 movs r2, #0 7130 00d2 5A63 str r2, [r3, #52] 7131 00d4 E8E7 b .L476 7132 .L482: 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7133 .loc 1 2553 13 view .LVU2404 7134 00d6 0126 movs r6, #1 7135 .LVL448: 7136 .L478: 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7137 .loc 1 2645 3 is_stmt 1 view .LVU2405 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7138 .loc 1 2645 7 is_stmt 0 view .LVU2406 7139 00d8 2368 ldr r3, [r4] 7140 00da 5B68 ldr r3, [r3, #4] 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7141 .loc 1 2645 6 view .LVU2407 7142 00dc 13F0010F tst r3, #1 7143 00e0 0AD0 beq .L479 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7144 .loc 1 2648 5 is_stmt 1 view .LVU2408 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7145 .loc 1 2648 13 is_stmt 0 view .LVU2409 7146 00e2 A06D ldr r0, [r4, #88] 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7147 .loc 1 2648 8 view .LVU2410 7148 00e4 40B1 cbz r0, .L479 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7149 .loc 1 2651 7 is_stmt 1 view .LVU2411 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7150 .loc 1 2651 11 is_stmt 0 view .LVU2412 7151 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 7152 .LVL449: 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7153 .loc 1 2651 10 discriminator 1 view .LVU2413 7154 00ea 0546 mov r5, r0 7155 00ec 30B1 cbz r0, .L480 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7156 .loc 1 2653 9 is_stmt 1 view .LVU2414 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7157 .loc 1 2653 13 is_stmt 0 view .LVU2415 7158 00ee A36D ldr r3, [r4, #88] 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 7159 .loc 1 2653 41 view .LVU2416 7160 00f0 0022 movs r2, #0 7161 00f2 5A63 str r2, [r3, #52] 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7162 .loc 1 2654 9 is_stmt 1 view .LVU2417 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7163 .loc 1 2654 25 is_stmt 0 view .LVU2418 7164 00f4 4023 movs r3, #64 7165 00f6 2366 str r3, [r4, #96] 7166 .L479: 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7167 .loc 1 2663 3 is_stmt 1 view .LVU2419 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 243 7168 .loc 1 2663 6 is_stmt 0 view .LVU2420 7169 00f8 3EB9 cbnz r6, .L490 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 7170 .loc 1 2552 13 view .LVU2421 7171 00fa 0025 movs r5, #0 7172 .LVL450: 7173 .L480: 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7174 .loc 1 2696 3 is_stmt 1 view .LVU2422 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7175 .loc 1 2697 1 is_stmt 0 view .LVU2423 7176 00fc 2846 mov r0, r5 7177 00fe 04B0 add sp, sp, #16 7178 .cfi_remember_state 7179 .cfi_def_cfa_offset 16 7180 @ sp needed 7181 0100 70BD pop {r4, r5, r6, pc} 7182 .LVL451: 7183 .L483: 7184 .cfi_restore_state 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 7185 .loc 1 2553 13 view .LVU2424 7186 0102 0126 movs r6, #1 7187 0104 E8E7 b .L478 7188 .L484: 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7189 .loc 1 2640 19 view .LVU2425 7190 0106 0026 movs r6, #0 7191 0108 E6E7 b .L478 7192 .LVL452: 7193 .L490: 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7194 .loc 1 2666 5 is_stmt 1 view .LVU2426 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7195 .loc 1 2666 23 is_stmt 0 view .LVU2427 7196 010a 0023 movs r3, #0 7197 010c A4F84630 strh r3, [r4, #70] @ movhi 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7198 .loc 1 2667 5 is_stmt 1 view .LVU2428 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7199 .loc 1 2667 23 is_stmt 0 view .LVU2429 7200 0110 E387 strh r3, [r4, #62] @ movhi 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7201 .loc 1 2670 5 is_stmt 1 view .LVU2430 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7202 .loc 1 2670 13 is_stmt 0 view .LVU2431 7203 0112 236E ldr r3, [r4, #96] 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7204 .loc 1 2670 8 view .LVU2432 7205 0114 402B cmp r3, #64 7206 0116 14D0 beq .L486 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7207 .loc 1 2678 7 is_stmt 1 view .LVU2433 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7208 .loc 1 2678 23 is_stmt 0 view .LVU2434 7209 0118 0025 movs r5, #0 7210 011a 2566 str r5, [r4, #96] ARM GAS /tmp/ccNym1yT.s page 244 7211 .L481: 7212 .LVL453: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7213 .loc 1 2682 5 is_stmt 1 view .LVU2435 7214 .LBB11: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7215 .loc 1 2682 5 view .LVU2436 7216 011c 0022 movs r2, #0 7217 011e 0092 str r2, [sp] 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7218 .loc 1 2682 5 view .LVU2437 7219 0120 2368 ldr r3, [r4] 7220 0122 D968 ldr r1, [r3, #12] 7221 0124 0091 str r1, [sp] 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7222 .loc 1 2682 5 view .LVU2438 7223 0126 9968 ldr r1, [r3, #8] 7224 0128 0091 str r1, [sp] 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7225 .loc 1 2682 5 view .LVU2439 7226 012a 0099 ldr r1, [sp] 7227 .LBE11: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7228 .loc 1 2682 5 view .LVU2440 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7229 .loc 1 2683 5 view .LVU2441 7230 .LBB12: 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7231 .loc 1 2683 5 view .LVU2442 7232 012c 0192 str r2, [sp, #4] 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7233 .loc 1 2683 5 view .LVU2443 7234 012e 9B68 ldr r3, [r3, #8] 7235 0130 0193 str r3, [sp, #4] 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7236 .loc 1 2683 5 view .LVU2444 7237 0132 019B ldr r3, [sp, #4] 7238 .LBE12: 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7239 .loc 1 2683 5 view .LVU2445 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7240 .loc 1 2686 5 view .LVU2446 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7241 .loc 1 2686 17 is_stmt 0 view .LVU2447 7242 0134 0123 movs r3, #1 7243 0136 84F85D30 strb r3, [r4, #93] 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7244 .loc 1 2692 5 is_stmt 1 view .LVU2448 7245 013a 2046 mov r0, r4 7246 013c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7247 .LVL454: 7248 0140 DCE7 b .L480 7249 .LVL455: 7250 .L486: 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7251 .loc 1 2673 17 is_stmt 0 view .LVU2449 7252 0142 0125 movs r5, #1 ARM GAS /tmp/ccNym1yT.s page 245 7253 0144 EAE7 b .L481 7254 .L492: 7255 0146 00BF .align 2 7256 .L491: 7257 0148 00000000 .word SystemCoreClock 7258 014c F1197605 .word 91625969 7259 0150 00000000 .word SPI_AbortTx_ISR 7260 0154 00000000 .word SPI_AbortRx_ISR 7261 0158 00000000 .word SPI_DMATxAbortCallback 7262 015c 00000000 .word SPI_DMARxAbortCallback 7263 .cfi_endproc 7264 .LFE137: 7266 .section .text.SPI_DMARxAbortCallback,"ax",%progbits 7267 .align 1 7268 .syntax unified 7269 .thumb 7270 .thumb_func 7272 SPI_DMARxAbortCallback: 7273 .LVL456: 7274 .LFB161: 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7275 .loc 1 3518 1 is_stmt 1 view -0 7276 .cfi_startproc 7277 @ args = 0, pretend = 0, frame = 8 7278 @ frame_needed = 0, uses_anonymous_args = 0 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7279 .loc 1 3518 1 is_stmt 0 view .LVU2451 7280 0000 30B5 push {r4, r5, lr} 7281 .cfi_def_cfa_offset 12 7282 .cfi_offset 4, -12 7283 .cfi_offset 5, -8 7284 .cfi_offset 14, -4 7285 0002 85B0 sub sp, sp, #20 7286 .cfi_def_cfa_offset 32 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7287 .loc 1 3519 3 is_stmt 1 view .LVU2452 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7288 .loc 1 3519 22 is_stmt 0 view .LVU2453 7289 0004 446A ldr r4, [r0, #36] 7290 .LVL457: 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7291 .loc 1 3522 3 is_stmt 1 view .LVU2454 7292 0006 2268 ldr r2, [r4] 7293 0008 1368 ldr r3, [r2] 7294 000a 23F04003 bic r3, r3, #64 7295 000e 1360 str r3, [r2] 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7296 .loc 1 3524 3 view .LVU2455 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7297 .loc 1 3524 7 is_stmt 0 view .LVU2456 7298 0010 A36D ldr r3, [r4, #88] 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7299 .loc 1 3524 35 view .LVU2457 7300 0012 0025 movs r5, #0 7301 0014 5D63 str r5, [r3, #52] 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7302 .loc 1 3527 3 is_stmt 1 view .LVU2458 ARM GAS /tmp/ccNym1yT.s page 246 7303 0016 2268 ldr r2, [r4] 7304 0018 5368 ldr r3, [r2, #4] 7305 001a 23F00103 bic r3, r3, #1 7306 001e 5360 str r3, [r2, #4] 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7307 .loc 1 3530 3 view .LVU2459 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7308 .loc 1 3530 7 is_stmt 0 view .LVU2460 7309 0020 FFF7FEFF bl HAL_GetTick 7310 .LVL458: 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7311 .loc 1 3530 7 discriminator 1 view .LVU2461 7312 0024 0090 str r0, [sp] 7313 0026 6423 movs r3, #100 7314 0028 2A46 mov r2, r5 7315 002a 8021 movs r1, #128 7316 002c 2046 mov r0, r4 7317 002e FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 7318 .LVL459: 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7319 .loc 1 3530 6 discriminator 2 view .LVU2462 7320 0032 08B1 cbz r0, .L494 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7321 .loc 1 3532 5 is_stmt 1 view .LVU2463 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7322 .loc 1 3532 21 is_stmt 0 view .LVU2464 7323 0034 4023 movs r3, #64 7324 0036 2366 str r3, [r4, #96] 7325 .L494: 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7326 .loc 1 3536 3 is_stmt 1 view .LVU2465 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7327 .loc 1 3536 7 is_stmt 0 view .LVU2466 7328 0038 FFF7FEFF bl HAL_GetTick 7329 .LVL460: 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7330 .loc 1 3536 7 discriminator 1 view .LVU2467 7331 003c 0090 str r0, [sp] 7332 003e 6423 movs r3, #100 7333 0040 0022 movs r2, #0 7334 0042 4FF4C061 mov r1, #1536 7335 0046 2046 mov r0, r4 7336 0048 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7337 .LVL461: 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7338 .loc 1 3536 6 discriminator 2 view .LVU2468 7339 004c 08B1 cbz r0, .L495 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7340 .loc 1 3538 5 is_stmt 1 view .LVU2469 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7341 .loc 1 3538 21 is_stmt 0 view .LVU2470 7342 004e 4023 movs r3, #64 7343 0050 2366 str r3, [r4, #96] 7344 .L495: 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7345 .loc 1 3542 3 is_stmt 1 view .LVU2471 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 247 7346 .loc 1 3542 11 is_stmt 0 view .LVU2472 7347 0052 636D ldr r3, [r4, #84] 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7348 .loc 1 3542 6 view .LVU2473 7349 0054 0BB1 cbz r3, .L496 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7350 .loc 1 3544 5 is_stmt 1 view .LVU2474 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7351 .loc 1 3544 21 is_stmt 0 view .LVU2475 7352 0056 5B6B ldr r3, [r3, #52] 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7353 .loc 1 3544 8 view .LVU2476 7354 0058 D3B9 cbnz r3, .L493 7355 .L496: 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7356 .loc 1 3551 3 is_stmt 1 view .LVU2477 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7357 .loc 1 3551 21 is_stmt 0 view .LVU2478 7358 005a 0023 movs r3, #0 7359 005c A4F84630 strh r3, [r4, #70] @ movhi 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7360 .loc 1 3552 3 is_stmt 1 view .LVU2479 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7361 .loc 1 3552 21 is_stmt 0 view .LVU2480 7362 0060 E387 strh r3, [r4, #62] @ movhi 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7363 .loc 1 3555 3 is_stmt 1 view .LVU2481 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7364 .loc 1 3555 11 is_stmt 0 view .LVU2482 7365 0062 236E ldr r3, [r4, #96] 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7366 .loc 1 3555 6 view .LVU2483 7367 0064 402B cmp r3, #64 7368 0066 01D0 beq .L498 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7369 .loc 1 3558 5 is_stmt 1 view .LVU2484 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7370 .loc 1 3558 21 is_stmt 0 view .LVU2485 7371 0068 0023 movs r3, #0 7372 006a 2366 str r3, [r4, #96] 7373 .L498: 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7374 .loc 1 3562 3 is_stmt 1 view .LVU2486 7375 .LBB13: 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7376 .loc 1 3562 3 view .LVU2487 7377 006c 0022 movs r2, #0 7378 006e 0292 str r2, [sp, #8] 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7379 .loc 1 3562 3 view .LVU2488 7380 0070 2368 ldr r3, [r4] 7381 0072 D968 ldr r1, [r3, #12] 7382 0074 0291 str r1, [sp, #8] 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7383 .loc 1 3562 3 view .LVU2489 7384 0076 9968 ldr r1, [r3, #8] 7385 0078 0291 str r1, [sp, #8] ARM GAS /tmp/ccNym1yT.s page 248 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7386 .loc 1 3562 3 view .LVU2490 7387 007a 0299 ldr r1, [sp, #8] 7388 .LBE13: 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7389 .loc 1 3562 3 view .LVU2491 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7390 .loc 1 3563 3 view .LVU2492 7391 .LBB14: 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7392 .loc 1 3563 3 view .LVU2493 7393 007c 0392 str r2, [sp, #12] 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7394 .loc 1 3563 3 view .LVU2494 7395 007e 9B68 ldr r3, [r3, #8] 7396 0080 0393 str r3, [sp, #12] 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7397 .loc 1 3563 3 view .LVU2495 7398 0082 039B ldr r3, [sp, #12] 7399 .LBE14: 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7400 .loc 1 3563 3 view .LVU2496 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7401 .loc 1 3566 3 view .LVU2497 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7402 .loc 1 3566 16 is_stmt 0 view .LVU2498 7403 0084 0123 movs r3, #1 7404 0086 84F85D30 strb r3, [r4, #93] 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7405 .loc 1 3572 3 is_stmt 1 view .LVU2499 7406 008a 2046 mov r0, r4 7407 008c FFF7FEFF bl HAL_SPI_AbortCpltCallback 7408 .LVL462: 7409 .L493: 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7410 .loc 1 3574 1 is_stmt 0 view .LVU2500 7411 0090 05B0 add sp, sp, #20 7412 .cfi_def_cfa_offset 12 7413 @ sp needed 7414 0092 30BD pop {r4, r5, pc} 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7415 .loc 1 3574 1 view .LVU2501 7416 .cfi_endproc 7417 .LFE161: 7419 .section .text.SPI_DMATxAbortCallback,"ax",%progbits 7420 .align 1 7421 .syntax unified 7422 .thumb 7423 .thumb_func 7425 SPI_DMATxAbortCallback: 7426 .LVL463: 7427 .LFB160: 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7428 .loc 1 3452 1 is_stmt 1 view -0 7429 .cfi_startproc 7430 @ args = 0, pretend = 0, frame = 8 7431 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccNym1yT.s page 249 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 7432 .loc 1 3452 1 is_stmt 0 view .LVU2503 7433 0000 10B5 push {r4, lr} 7434 .cfi_def_cfa_offset 8 7435 .cfi_offset 4, -8 7436 .cfi_offset 14, -4 7437 0002 84B0 sub sp, sp, #16 7438 .cfi_def_cfa_offset 24 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7439 .loc 1 3453 3 is_stmt 1 view .LVU2504 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7440 .loc 1 3453 22 is_stmt 0 view .LVU2505 7441 0004 446A ldr r4, [r0, #36] 7442 .LVL464: 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7443 .loc 1 3455 3 is_stmt 1 view .LVU2506 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7444 .loc 1 3455 7 is_stmt 0 view .LVU2507 7445 0006 636D ldr r3, [r4, #84] 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7446 .loc 1 3455 35 view .LVU2508 7447 0008 0022 movs r2, #0 7448 000a 5A63 str r2, [r3, #52] 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7449 .loc 1 3458 3 is_stmt 1 view .LVU2509 7450 000c 2268 ldr r2, [r4] 7451 000e 5368 ldr r3, [r2, #4] 7452 0010 23F00203 bic r3, r3, #2 7453 0014 5360 str r3, [r2, #4] 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7454 .loc 1 3460 3 view .LVU2510 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7455 .loc 1 3460 7 is_stmt 0 view .LVU2511 7456 0016 FFF7FEFF bl HAL_GetTick 7457 .LVL465: 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7458 .loc 1 3460 7 view .LVU2512 7459 001a 0246 mov r2, r0 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7460 .loc 1 3460 7 discriminator 1 view .LVU2513 7461 001c 6421 movs r1, #100 7462 001e 2046 mov r0, r4 7463 0020 FFF7FEFF bl SPI_EndRxTxTransaction 7464 .LVL466: 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7465 .loc 1 3460 6 discriminator 2 view .LVU2514 7466 0024 08B1 cbz r0, .L501 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7467 .loc 1 3462 5 is_stmt 1 view .LVU2515 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7468 .loc 1 3462 21 is_stmt 0 view .LVU2516 7469 0026 4023 movs r3, #64 7470 0028 2366 str r3, [r4, #96] 7471 .L501: 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7472 .loc 1 3466 3 is_stmt 1 view .LVU2517 7473 002a 2268 ldr r2, [r4] ARM GAS /tmp/ccNym1yT.s page 250 7474 002c 1368 ldr r3, [r2] 7475 002e 23F04003 bic r3, r3, #64 7476 0032 1360 str r3, [r2] 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7477 .loc 1 3469 3 view .LVU2518 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7478 .loc 1 3469 7 is_stmt 0 view .LVU2519 7479 0034 FFF7FEFF bl HAL_GetTick 7480 .LVL467: 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7481 .loc 1 3469 7 discriminator 1 view .LVU2520 7482 0038 0090 str r0, [sp] 7483 003a 6423 movs r3, #100 7484 003c 0022 movs r2, #0 7485 003e 4FF4C061 mov r1, #1536 7486 0042 2046 mov r0, r4 7487 0044 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7488 .LVL468: 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7489 .loc 1 3469 6 discriminator 2 view .LVU2521 7490 0048 08B1 cbz r0, .L502 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7491 .loc 1 3471 5 is_stmt 1 view .LVU2522 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7492 .loc 1 3471 21 is_stmt 0 view .LVU2523 7493 004a 4023 movs r3, #64 7494 004c 2366 str r3, [r4, #96] 7495 .L502: 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7496 .loc 1 3475 3 is_stmt 1 view .LVU2524 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7497 .loc 1 3475 11 is_stmt 0 view .LVU2525 7498 004e A36D ldr r3, [r4, #88] 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7499 .loc 1 3475 6 view .LVU2526 7500 0050 0BB1 cbz r3, .L503 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7501 .loc 1 3477 5 is_stmt 1 view .LVU2527 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7502 .loc 1 3477 21 is_stmt 0 view .LVU2528 7503 0052 5B6B ldr r3, [r3, #52] 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7504 .loc 1 3477 8 view .LVU2529 7505 0054 D3B9 cbnz r3, .L500 7506 .L503: 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7507 .loc 1 3484 3 is_stmt 1 view .LVU2530 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 7508 .loc 1 3484 21 is_stmt 0 view .LVU2531 7509 0056 0023 movs r3, #0 7510 0058 A4F84630 strh r3, [r4, #70] @ movhi 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7511 .loc 1 3485 3 is_stmt 1 view .LVU2532 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7512 .loc 1 3485 21 is_stmt 0 view .LVU2533 7513 005c E387 strh r3, [r4, #62] @ movhi 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccNym1yT.s page 251 7514 .loc 1 3488 3 is_stmt 1 view .LVU2534 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7515 .loc 1 3488 11 is_stmt 0 view .LVU2535 7516 005e 236E ldr r3, [r4, #96] 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7517 .loc 1 3488 6 view .LVU2536 7518 0060 402B cmp r3, #64 7519 0062 01D0 beq .L505 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7520 .loc 1 3491 5 is_stmt 1 view .LVU2537 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7521 .loc 1 3491 21 is_stmt 0 view .LVU2538 7522 0064 0023 movs r3, #0 7523 0066 2366 str r3, [r4, #96] 7524 .L505: 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7525 .loc 1 3495 3 is_stmt 1 view .LVU2539 7526 .LBB15: 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7527 .loc 1 3495 3 view .LVU2540 7528 0068 0022 movs r2, #0 7529 006a 0292 str r2, [sp, #8] 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7530 .loc 1 3495 3 view .LVU2541 7531 006c 2368 ldr r3, [r4] 7532 006e D968 ldr r1, [r3, #12] 7533 0070 0291 str r1, [sp, #8] 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7534 .loc 1 3495 3 view .LVU2542 7535 0072 9968 ldr r1, [r3, #8] 7536 0074 0291 str r1, [sp, #8] 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7537 .loc 1 3495 3 view .LVU2543 7538 0076 0299 ldr r1, [sp, #8] 7539 .LBE15: 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 7540 .loc 1 3495 3 view .LVU2544 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7541 .loc 1 3496 3 view .LVU2545 7542 .LBB16: 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7543 .loc 1 3496 3 view .LVU2546 7544 0078 0392 str r2, [sp, #12] 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7545 .loc 1 3496 3 view .LVU2547 7546 007a 9B68 ldr r3, [r3, #8] 7547 007c 0393 str r3, [sp, #12] 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7548 .loc 1 3496 3 view .LVU2548 7549 007e 039B ldr r3, [sp, #12] 7550 .LBE16: 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7551 .loc 1 3496 3 view .LVU2549 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7552 .loc 1 3499 3 view .LVU2550 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7553 .loc 1 3499 16 is_stmt 0 view .LVU2551 ARM GAS /tmp/ccNym1yT.s page 252 7554 0080 0123 movs r3, #1 7555 0082 84F85D30 strb r3, [r4, #93] 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 7556 .loc 1 3505 3 is_stmt 1 view .LVU2552 7557 0086 2046 mov r0, r4 7558 0088 FFF7FEFF bl HAL_SPI_AbortCpltCallback 7559 .LVL469: 7560 .L500: 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7561 .loc 1 3507 1 is_stmt 0 view .LVU2553 7562 008c 04B0 add sp, sp, #16 7563 .cfi_def_cfa_offset 8 7564 @ sp needed 7565 008e 10BD pop {r4, pc} 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7566 .loc 1 3507 1 view .LVU2554 7567 .cfi_endproc 7568 .LFE160: 7570 .section .text.HAL_SPI_GetState,"ax",%progbits 7571 .align 1 7572 .global HAL_SPI_GetState 7573 .syntax unified 7574 .thumb 7575 .thumb_func 7577 HAL_SPI_GetState: 7578 .LVL470: 7579 .LFB150: 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 7580 .loc 1 3042 1 is_stmt 1 view -0 7581 .cfi_startproc 7582 @ args = 0, pretend = 0, frame = 0 7583 @ frame_needed = 0, uses_anonymous_args = 0 7584 @ link register save eliminated. 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7585 .loc 1 3044 3 view .LVU2556 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7586 .loc 1 3044 14 is_stmt 0 view .LVU2557 7587 0000 90F85D00 ldrb r0, [r0, #93] @ zero_extendqisi2 7588 .LVL471: 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7589 .loc 1 3045 1 view .LVU2558 7590 0004 7047 bx lr 7591 .cfi_endproc 7592 .LFE150: 7594 .section .text.HAL_SPI_GetError,"ax",%progbits 7595 .align 1 7596 .global HAL_SPI_GetError 7597 .syntax unified 7598 .thumb 7599 .thumb_func 7601 HAL_SPI_GetError: 7602 .LVL472: 7603 .LFB151: 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 7604 .loc 1 3054 1 is_stmt 1 view -0 7605 .cfi_startproc 7606 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccNym1yT.s page 253 7607 @ frame_needed = 0, uses_anonymous_args = 0 7608 @ link register save eliminated. 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7609 .loc 1 3056 3 view .LVU2560 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7610 .loc 1 3056 14 is_stmt 0 view .LVU2561 7611 0000 006E ldr r0, [r0, #96] 7612 .LVL473: 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 7613 .loc 1 3057 1 view .LVU2562 7614 0002 7047 bx lr 7615 .cfi_endproc 7616 .LFE151: 7618 .text 7619 .Letext0: 7620 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 7621 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 7622 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h" 7623 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 7624 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 7625 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 7626 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h" 7627 .file 9 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h" 7628 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccNym1yT.s page 254 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_spi.c /tmp/ccNym1yT.s:21 .text.SPI_WaitFlagStateUntilTimeout:00000000 $t /tmp/ccNym1yT.s:26 .text.SPI_WaitFlagStateUntilTimeout:00000000 SPI_WaitFlagStateUntilTimeout /tmp/ccNym1yT.s:200 .text.SPI_WaitFlagStateUntilTimeout:000000c4 $d /tmp/ccNym1yT.s:205 .text.SPI_WaitFifoStateUntilTimeout:00000000 $t /tmp/ccNym1yT.s:210 .text.SPI_WaitFifoStateUntilTimeout:00000000 SPI_WaitFifoStateUntilTimeout /tmp/ccNym1yT.s:415 .text.SPI_WaitFifoStateUntilTimeout:000000ec $d /tmp/ccNym1yT.s:420 .text.SPI_EndRxTxTransaction:00000000 $t /tmp/ccNym1yT.s:425 .text.SPI_EndRxTxTransaction:00000000 SPI_EndRxTxTransaction /tmp/ccNym1yT.s:518 .text.SPI_EndRxTransaction:00000000 $t /tmp/ccNym1yT.s:523 .text.SPI_EndRxTransaction:00000000 SPI_EndRxTransaction /tmp/ccNym1yT.s:642 .text.SPI_AbortRx_ISR:00000000 $t /tmp/ccNym1yT.s:647 .text.SPI_AbortRx_ISR:00000000 SPI_AbortRx_ISR /tmp/ccNym1yT.s:762 .text.SPI_AbortRx_ISR:00000088 $d /tmp/ccNym1yT.s:768 .text.SPI_AbortTx_ISR:00000000 $t /tmp/ccNym1yT.s:773 .text.SPI_AbortTx_ISR:00000000 SPI_AbortTx_ISR /tmp/ccNym1yT.s:961 .text.SPI_AbortTx_ISR:000000e8 $d /tmp/ccNym1yT.s:967 .text.HAL_SPI_MspInit:00000000 $t /tmp/ccNym1yT.s:973 .text.HAL_SPI_MspInit:00000000 HAL_SPI_MspInit /tmp/ccNym1yT.s:988 .text.HAL_SPI_Init:00000000 $t /tmp/ccNym1yT.s:994 .text.HAL_SPI_Init:00000000 HAL_SPI_Init /tmp/ccNym1yT.s:1181 .text.HAL_SPI_MspDeInit:00000000 $t /tmp/ccNym1yT.s:1187 .text.HAL_SPI_MspDeInit:00000000 HAL_SPI_MspDeInit /tmp/ccNym1yT.s:1202 .text.HAL_SPI_DeInit:00000000 $t /tmp/ccNym1yT.s:1208 .text.HAL_SPI_DeInit:00000000 HAL_SPI_DeInit /tmp/ccNym1yT.s:1265 .text.HAL_SPI_Transmit:00000000 $t /tmp/ccNym1yT.s:1271 .text.HAL_SPI_Transmit:00000000 HAL_SPI_Transmit /tmp/ccNym1yT.s:1743 .text.HAL_SPI_TransmitReceive:00000000 $t /tmp/ccNym1yT.s:1749 .text.HAL_SPI_TransmitReceive:00000000 HAL_SPI_TransmitReceive /tmp/ccNym1yT.s:2475 .text.HAL_SPI_Receive:00000000 $t /tmp/ccNym1yT.s:2481 .text.HAL_SPI_Receive:00000000 HAL_SPI_Receive /tmp/ccNym1yT.s:2849 .text.HAL_SPI_Transmit_IT:00000000 $t /tmp/ccNym1yT.s:2855 .text.HAL_SPI_Transmit_IT:00000000 HAL_SPI_Transmit_IT /tmp/ccNym1yT.s:3033 .text.HAL_SPI_Transmit_IT:000000a8 $d /tmp/ccNym1yT.s:5491 .text.SPI_TxISR_16BIT:00000000 SPI_TxISR_16BIT /tmp/ccNym1yT.s:5430 .text.SPI_TxISR_8BIT:00000000 SPI_TxISR_8BIT /tmp/ccNym1yT.s:3039 .text.HAL_SPI_TransmitReceive_IT:00000000 $t /tmp/ccNym1yT.s:3045 .text.HAL_SPI_TransmitReceive_IT:00000000 HAL_SPI_TransmitReceive_IT /tmp/ccNym1yT.s:3286 .text.HAL_SPI_TransmitReceive_IT:000000e4 $d /tmp/ccNym1yT.s:6132 .text.SPI_2linesRxISR_16BIT:00000000 SPI_2linesRxISR_16BIT /tmp/ccNym1yT.s:6060 .text.SPI_2linesTxISR_16BIT:00000000 SPI_2linesTxISR_16BIT /tmp/ccNym1yT.s:5943 .text.SPI_2linesRxISR_8BIT:00000000 SPI_2linesRxISR_8BIT /tmp/ccNym1yT.s:5838 .text.SPI_2linesTxISR_8BIT:00000000 SPI_2linesTxISR_8BIT /tmp/ccNym1yT.s:3294 .text.HAL_SPI_Receive_IT:00000000 $t /tmp/ccNym1yT.s:3300 .text.HAL_SPI_Receive_IT:00000000 HAL_SPI_Receive_IT /tmp/ccNym1yT.s:3499 .text.HAL_SPI_Receive_IT:000000f4 $d /tmp/ccNym1yT.s:5682 .text.SPI_RxISR_16BIT:00000000 SPI_RxISR_16BIT /tmp/ccNym1yT.s:5621 .text.SPI_RxISR_8BIT:00000000 SPI_RxISR_8BIT /tmp/ccNym1yT.s:3505 .text.HAL_SPI_Transmit_DMA:00000000 $t /tmp/ccNym1yT.s:3511 .text.HAL_SPI_Transmit_DMA:00000000 HAL_SPI_Transmit_DMA /tmp/ccNym1yT.s:3767 .text.HAL_SPI_Transmit_DMA:00000124 $d /tmp/ccNym1yT.s:5172 .text.SPI_DMAHalfTransmitCplt:00000000 SPI_DMAHalfTransmitCplt /tmp/ccNym1yT.s:6247 .text.SPI_DMATransmitCplt:00000000 SPI_DMATransmitCplt /tmp/ccNym1yT.s:6204 .text.SPI_DMAError:00000000 SPI_DMAError /tmp/ccNym1yT.s:3774 .text.HAL_SPI_TransmitReceive_DMA:00000000 $t /tmp/ccNym1yT.s:3780 .text.HAL_SPI_TransmitReceive_DMA:00000000 HAL_SPI_TransmitReceive_DMA ARM GAS /tmp/ccNym1yT.s page 255 /tmp/ccNym1yT.s:4219 .text.HAL_SPI_TransmitReceive_DMA:000001f8 $d /tmp/ccNym1yT.s:5276 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 SPI_DMAHalfTransmitReceiveCplt /tmp/ccNym1yT.s:6486 .text.SPI_DMATransmitReceiveCplt:00000000 SPI_DMATransmitReceiveCplt /tmp/ccNym1yT.s:5224 .text.SPI_DMAHalfReceiveCplt:00000000 SPI_DMAHalfReceiveCplt /tmp/ccNym1yT.s:6370 .text.SPI_DMAReceiveCplt:00000000 SPI_DMAReceiveCplt /tmp/ccNym1yT.s:4228 .text.HAL_SPI_Receive_DMA:00000000 $t /tmp/ccNym1yT.s:4234 .text.HAL_SPI_Receive_DMA:00000000 HAL_SPI_Receive_DMA /tmp/ccNym1yT.s:4528 .text.HAL_SPI_Receive_DMA:00000170 $d /tmp/ccNym1yT.s:4535 .text.HAL_SPI_Abort:00000000 $t /tmp/ccNym1yT.s:4541 .text.HAL_SPI_Abort:00000000 HAL_SPI_Abort /tmp/ccNym1yT.s:4885 .text.HAL_SPI_Abort:00000180 $d /tmp/ccNym1yT.s:4893 .text.HAL_SPI_DMAPause:00000000 $t /tmp/ccNym1yT.s:4899 .text.HAL_SPI_DMAPause:00000000 HAL_SPI_DMAPause /tmp/ccNym1yT.s:4943 .text.HAL_SPI_DMAResume:00000000 $t /tmp/ccNym1yT.s:4949 .text.HAL_SPI_DMAResume:00000000 HAL_SPI_DMAResume /tmp/ccNym1yT.s:4993 .text.HAL_SPI_DMAStop:00000000 $t /tmp/ccNym1yT.s:4999 .text.HAL_SPI_DMAStop:00000000 HAL_SPI_DMAStop /tmp/ccNym1yT.s:5083 .text.HAL_SPI_TxCpltCallback:00000000 $t /tmp/ccNym1yT.s:5089 .text.HAL_SPI_TxCpltCallback:00000000 HAL_SPI_TxCpltCallback /tmp/ccNym1yT.s:5104 .text.HAL_SPI_RxCpltCallback:00000000 $t /tmp/ccNym1yT.s:5110 .text.HAL_SPI_RxCpltCallback:00000000 HAL_SPI_RxCpltCallback /tmp/ccNym1yT.s:5125 .text.HAL_SPI_TxRxCpltCallback:00000000 $t /tmp/ccNym1yT.s:5131 .text.HAL_SPI_TxRxCpltCallback:00000000 HAL_SPI_TxRxCpltCallback /tmp/ccNym1yT.s:5146 .text.HAL_SPI_TxHalfCpltCallback:00000000 $t /tmp/ccNym1yT.s:5152 .text.HAL_SPI_TxHalfCpltCallback:00000000 HAL_SPI_TxHalfCpltCallback /tmp/ccNym1yT.s:5167 .text.SPI_DMAHalfTransmitCplt:00000000 $t /tmp/ccNym1yT.s:5198 .text.HAL_SPI_RxHalfCpltCallback:00000000 $t /tmp/ccNym1yT.s:5204 .text.HAL_SPI_RxHalfCpltCallback:00000000 HAL_SPI_RxHalfCpltCallback /tmp/ccNym1yT.s:5219 .text.SPI_DMAHalfReceiveCplt:00000000 $t /tmp/ccNym1yT.s:5250 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 $t /tmp/ccNym1yT.s:5256 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 HAL_SPI_TxRxHalfCpltCallback /tmp/ccNym1yT.s:5271 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 $t /tmp/ccNym1yT.s:5302 .text.HAL_SPI_ErrorCallback:00000000 $t /tmp/ccNym1yT.s:5308 .text.HAL_SPI_ErrorCallback:00000000 HAL_SPI_ErrorCallback /tmp/ccNym1yT.s:5323 .text.SPI_CloseTx_ISR:00000000 $t /tmp/ccNym1yT.s:5328 .text.SPI_CloseTx_ISR:00000000 SPI_CloseTx_ISR /tmp/ccNym1yT.s:5425 .text.SPI_TxISR_8BIT:00000000 $t /tmp/ccNym1yT.s:5486 .text.SPI_TxISR_16BIT:00000000 $t /tmp/ccNym1yT.s:5547 .text.SPI_CloseRx_ISR:00000000 $t /tmp/ccNym1yT.s:5552 .text.SPI_CloseRx_ISR:00000000 SPI_CloseRx_ISR /tmp/ccNym1yT.s:5616 .text.SPI_RxISR_8BIT:00000000 $t /tmp/ccNym1yT.s:5677 .text.SPI_RxISR_16BIT:00000000 $t /tmp/ccNym1yT.s:5738 .text.SPI_CloseRxTx_ISR:00000000 $t /tmp/ccNym1yT.s:5743 .text.SPI_CloseRxTx_ISR:00000000 SPI_CloseRxTx_ISR /tmp/ccNym1yT.s:5833 .text.SPI_2linesTxISR_8BIT:00000000 $t /tmp/ccNym1yT.s:5938 .text.SPI_2linesRxISR_8BIT:00000000 $t /tmp/ccNym1yT.s:6055 .text.SPI_2linesTxISR_16BIT:00000000 $t /tmp/ccNym1yT.s:6127 .text.SPI_2linesRxISR_16BIT:00000000 $t /tmp/ccNym1yT.s:6199 .text.SPI_DMAError:00000000 $t /tmp/ccNym1yT.s:6242 .text.SPI_DMATransmitCplt:00000000 $t /tmp/ccNym1yT.s:6365 .text.SPI_DMAReceiveCplt:00000000 $t /tmp/ccNym1yT.s:6481 .text.SPI_DMATransmitReceiveCplt:00000000 $t /tmp/ccNym1yT.s:6580 .text.HAL_SPI_IRQHandler:00000000 $t /tmp/ccNym1yT.s:6586 .text.HAL_SPI_IRQHandler:00000000 HAL_SPI_IRQHandler /tmp/ccNym1yT.s:6855 .text.HAL_SPI_IRQHandler:00000120 $d /tmp/ccNym1yT.s:6865 .text.SPI_DMAAbortOnError:00000000 SPI_DMAAbortOnError /tmp/ccNym1yT.s:6860 .text.SPI_DMAAbortOnError:00000000 $t ARM GAS /tmp/ccNym1yT.s page 256 /tmp/ccNym1yT.s:6897 .text.HAL_SPI_AbortCpltCallback:00000000 $t /tmp/ccNym1yT.s:6903 .text.HAL_SPI_AbortCpltCallback:00000000 HAL_SPI_AbortCpltCallback /tmp/ccNym1yT.s:6918 .text.HAL_SPI_Abort_IT:00000000 $t /tmp/ccNym1yT.s:6924 .text.HAL_SPI_Abort_IT:00000000 HAL_SPI_Abort_IT /tmp/ccNym1yT.s:7257 .text.HAL_SPI_Abort_IT:00000148 $d /tmp/ccNym1yT.s:7425 .text.SPI_DMATxAbortCallback:00000000 SPI_DMATxAbortCallback /tmp/ccNym1yT.s:7272 .text.SPI_DMARxAbortCallback:00000000 SPI_DMARxAbortCallback /tmp/ccNym1yT.s:7267 .text.SPI_DMARxAbortCallback:00000000 $t /tmp/ccNym1yT.s:7420 .text.SPI_DMATxAbortCallback:00000000 $t /tmp/ccNym1yT.s:7571 .text.HAL_SPI_GetState:00000000 $t /tmp/ccNym1yT.s:7577 .text.HAL_SPI_GetState:00000000 HAL_SPI_GetState /tmp/ccNym1yT.s:7595 .text.HAL_SPI_GetError:00000000 $t /tmp/ccNym1yT.s:7601 .text.HAL_SPI_GetError:00000000 HAL_SPI_GetError UNDEFINED SYMBOLS HAL_GetTick SystemCoreClock HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_Abort_IT