ARM GAS /tmp/ccs34gJO.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, 6 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.HAL_SPI_Init,"ax",%progbits 21 .align 1 22 .global HAL_SPI_Init 23 .syntax unified 24 .thumb 25 .thumb_func 27 HAL_SPI_Init: 28 .LFB130: 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/ccs34gJO.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/ccs34gJO.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/ccs34gJO.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/ccs34gJO.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/ccs34gJO.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/ccs34gJO.s page 7 29 .loc 1 315 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 16 32 @ frame_needed = 1, uses_anonymous_args = 0 33 0000 80B5 push {r7, lr} 34 .cfi_def_cfa_offset 8 35 .cfi_offset 7, -8 36 .cfi_offset 14, -4 37 0002 84B0 sub sp, sp, #16 38 .cfi_def_cfa_offset 24 39 0004 00AF add r7, sp, #0 40 .cfi_def_cfa_register 7 41 0006 7860 str r0, [r7, #4] 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) 42 .loc 1 319 6 43 0008 7B68 ldr r3, [r7, #4] 44 000a 002B cmp r3, #0 45 000c 01D1 bne .L2 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 46 .loc 1 321 12 47 000e 0123 movs r3, #1 48 0010 9DE0 b .L3 49 .L2: 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) 50 .loc 1 334 17 51 0012 7B68 ldr r3, [r7, #4] 52 0014 5B6A ldr r3, [r3, #36] 53 .loc 1 334 6 54 0016 002B cmp r3, #0 55 0018 08D1 bne .L4 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) 56 .loc 1 339 19 57 001a 7B68 ldr r3, [r7, #4] 58 001c 5B68 ldr r3, [r3, #4] 59 .loc 1 339 8 60 001e B3F5827F cmp r3, #260 61 0022 09D0 beq .L5 ARM GAS /tmp/ccs34gJO.s page 8 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; 62 .loc 1 346 36 63 0024 7B68 ldr r3, [r7, #4] 64 0026 0022 movs r2, #0 65 0028 DA61 str r2, [r3, #28] 66 002a 05E0 b .L5 67 .L4: 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; 68 .loc 1 354 28 69 002c 7B68 ldr r3, [r7, #4] 70 002e 0022 movs r2, #0 71 0030 1A61 str r2, [r3, #16] 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Init.CLKPhase = SPI_PHASE_1EDGE; 72 .loc 1 355 28 73 0032 7B68 ldr r3, [r7, #4] 74 0034 0022 movs r2, #0 75 0036 5A61 str r2, [r3, #20] 76 .L5: 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; 77 .loc 1 365 29 78 0038 7B68 ldr r3, [r7, #4] 79 003a 0022 movs r2, #0 80 003c 9A62 str r2, [r3, #40] 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) 81 .loc 1 368 11 82 003e 7B68 ldr r3, [r7, #4] 83 0040 93F85D30 ldrb r3, [r3, #93] 84 0044 DBB2 uxtb r3, r3 85 .loc 1 368 6 86 0046 002B cmp r3, #0 87 0048 06D1 bne .L6 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 */ ARM GAS /tmp/ccs34gJO.s page 9 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Lock = HAL_UNLOCKED; 88 .loc 1 371 16 89 004a 7B68 ldr r3, [r7, #4] 90 004c 0022 movs r2, #0 91 004e 83F85C20 strb r2, [r3, #92] 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 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); 92 .loc 1 393 5 93 0052 7868 ldr r0, [r7, #4] 94 0054 FFF7FEFF bl HAL_SPI_MspInit 95 .L6: 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; 96 .loc 1 397 15 97 0058 7B68 ldr r3, [r7, #4] 98 005a 0222 movs r2, #2 99 005c 83F85D20 strb r2, [r3, #93] 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); 100 .loc 1 400 3 101 0060 7B68 ldr r3, [r7, #4] 102 0062 1B68 ldr r3, [r3] 103 0064 1A68 ldr r2, [r3] 104 0066 7B68 ldr r3, [r7, #4] 105 0068 1B68 ldr r3, [r3] 106 006a 22F04002 bic r2, r2, #64 107 006e 1A60 str r2, [r3] 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) 108 .loc 1 403 17 109 0070 7B68 ldr r3, [r7, #4] 110 0072 DB68 ldr r3, [r3, #12] 111 .loc 1 403 6 ARM GAS /tmp/ccs34gJO.s page 10 112 0074 B3F5E06F cmp r3, #1792 113 0078 02D9 bls .L7 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; 114 .loc 1 405 11 115 007a 0023 movs r3, #0 116 007c FB60 str r3, [r7, #12] 117 007e 02E0 b .L8 118 .L7: 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; 119 .loc 1 409 11 120 0080 4FF48053 mov r3, #4096 121 0084 FB60 str r3, [r7, #12] 122 .L8: 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)) 123 .loc 1 413 18 124 0086 7B68 ldr r3, [r7, #4] 125 0088 DB68 ldr r3, [r3, #12] 126 .loc 1 413 6 127 008a B3F5706F cmp r3, #3840 128 008e 07D0 beq .L9 129 .loc 1 413 65 discriminator 1 130 0090 7B68 ldr r3, [r7, #4] 131 0092 DB68 ldr r3, [r3, #12] 132 .loc 1 413 51 discriminator 1 133 0094 B3F5E06F cmp r3, #1792 134 0098 02D0 beq .L9 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; 135 .loc 1 416 31 136 009a 7B68 ldr r3, [r7, #4] 137 009c 0022 movs r2, #0 138 009e 9A62 str r2, [r3, #40] 139 .L9: 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)) | 140 .loc 1 422 3 141 00a0 7B68 ldr r3, [r7, #4] 142 00a2 5B68 ldr r3, [r3, #4] 143 00a4 03F48272 and r2, r3, #260 144 00a8 7B68 ldr r3, [r7, #4] 145 00aa 9B68 ldr r3, [r3, #8] 146 00ac 03F40443 and r3, r3, #33792 147 00b0 1A43 orrs r2, r2, r3 148 00b2 7B68 ldr r3, [r7, #4] 149 00b4 1B69 ldr r3, [r3, #16] ARM GAS /tmp/ccs34gJO.s page 11 150 00b6 03F00203 and r3, r3, #2 151 00ba 1A43 orrs r2, r2, r3 152 00bc 7B68 ldr r3, [r7, #4] 153 00be 5B69 ldr r3, [r3, #20] 154 00c0 03F00103 and r3, r3, #1 155 00c4 1A43 orrs r2, r2, r3 156 00c6 7B68 ldr r3, [r7, #4] 157 00c8 9B69 ldr r3, [r3, #24] 158 00ca 03F40073 and r3, r3, #512 159 00ce 1A43 orrs r2, r2, r3 160 00d0 7B68 ldr r3, [r7, #4] 161 00d2 DB69 ldr r3, [r3, #28] 162 00d4 03F03803 and r3, r3, #56 163 00d8 1A43 orrs r2, r2, r3 164 00da 7B68 ldr r3, [r7, #4] 165 00dc 1B6A ldr r3, [r3, #32] 166 00de 03F08003 and r3, r3, #128 167 00e2 42EA0301 orr r1, r2, r3 168 00e6 7B68 ldr r3, [r7, #4] 169 00e8 9B6A ldr r3, [r3, #40] 170 00ea 03F40052 and r2, r3, #8192 171 00ee 7B68 ldr r3, [r7, #4] 172 00f0 1B68 ldr r3, [r3] 173 00f2 0A43 orrs r2, r2, r1 174 00f4 1A60 str r2, [r3] 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))); 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 */ ARM GAS /tmp/ccs34gJO.s page 12 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) | 175 .loc 1 457 3 176 00f6 7B68 ldr r3, [r7, #4] 177 00f8 9B69 ldr r3, [r3, #24] 178 00fa 1B0C lsrs r3, r3, #16 179 00fc 03F00402 and r2, r3, #4 180 0100 7B68 ldr r3, [r7, #4] 181 0102 5B6A ldr r3, [r3, #36] 182 0104 03F01003 and r3, r3, #16 183 0108 1A43 orrs r2, r2, r3 184 010a 7B68 ldr r3, [r7, #4] 185 010c 5B6B ldr r3, [r3, #52] 186 010e 03F00803 and r3, r3, #8 187 0112 1A43 orrs r2, r2, r3 188 0114 7B68 ldr r3, [r7, #4] 189 0116 DB68 ldr r3, [r3, #12] 190 0118 03F47063 and r3, r3, #3840 191 011c 42EA0301 orr r1, r2, r3 192 0120 FB68 ldr r3, [r7, #12] 193 0122 03F48052 and r2, r3, #4096 194 0126 7B68 ldr r3, [r7, #4] 195 0128 1B68 ldr r3, [r3] 196 012a 0A43 orrs r2, r2, r1 197 012c 5A60 str r2, [r3, #4] 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); 198 .loc 1 474 3 199 012e 7B68 ldr r3, [r7, #4] 200 0130 1B68 ldr r3, [r3] 201 0132 DA69 ldr r2, [r3, #28] 202 0134 7B68 ldr r3, [r7, #4] 203 0136 1B68 ldr r3, [r3] 204 0138 22F40062 bic r2, r2, #2048 205 013c DA61 str r2, [r3, #28] 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; 206 .loc 1 477 19 207 013e 7B68 ldr r3, [r7, #4] 208 0140 0022 movs r2, #0 ARM GAS /tmp/ccs34gJO.s page 13 209 0142 1A66 str r2, [r3, #96] 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 210 .loc 1 478 19 211 0144 7B68 ldr r3, [r7, #4] 212 0146 0122 movs r2, #1 213 0148 83F85D20 strb r2, [r3, #93] 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 214 .loc 1 480 10 215 014c 0023 movs r3, #0 216 .L3: 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 217 .loc 1 481 1 218 014e 1846 mov r0, r3 219 0150 1037 adds r7, r7, #16 220 .cfi_def_cfa_offset 8 221 0152 BD46 mov sp, r7 222 .cfi_def_cfa_register 13 223 @ sp needed 224 0154 80BD pop {r7, pc} 225 .cfi_endproc 226 .LFE130: 228 .section .text.HAL_SPI_DeInit,"ax",%progbits 229 .align 1 230 .global HAL_SPI_DeInit 231 .syntax unified 232 .thumb 233 .thumb_func 235 HAL_SPI_DeInit: 236 .LFB131: 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. 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 **** { 237 .loc 1 490 1 238 .cfi_startproc 239 @ args = 0, pretend = 0, frame = 8 240 @ frame_needed = 1, uses_anonymous_args = 0 241 0000 80B5 push {r7, lr} 242 .cfi_def_cfa_offset 8 243 .cfi_offset 7, -8 244 .cfi_offset 14, -4 245 0002 82B0 sub sp, sp, #8 246 .cfi_def_cfa_offset 16 247 0004 00AF add r7, sp, #0 248 .cfi_def_cfa_register 7 249 0006 7860 str r0, [r7, #4] 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) 250 .loc 1 492 6 251 0008 7B68 ldr r3, [r7, #4] 252 000a 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 14 253 000c 01D1 bne .L11 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_ERROR; 254 .loc 1 494 12 255 000e 0123 movs r3, #1 256 0010 1AE0 b .L12 257 .L11: 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; 258 .loc 1 500 15 259 0012 7B68 ldr r3, [r7, #4] 260 0014 0222 movs r2, #2 261 0016 83F85D20 strb r2, [r3, #93] 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); 262 .loc 1 503 3 263 001a 7B68 ldr r3, [r7, #4] 264 001c 1B68 ldr r3, [r3] 265 001e 1A68 ldr r2, [r3] 266 0020 7B68 ldr r3, [r7, #4] 267 0022 1B68 ldr r3, [r3] 268 0024 22F04002 bic r2, r2, #64 269 0028 1A60 str r2, [r3] 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); 270 .loc 1 515 3 271 002a 7868 ldr r0, [r7, #4] 272 002c FFF7FEFF bl HAL_SPI_MspDeInit 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; 273 .loc 1 518 19 274 0030 7B68 ldr r3, [r7, #4] 275 0032 0022 movs r2, #0 276 0034 1A66 str r2, [r3, #96] 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_RESET; 277 .loc 1 519 15 278 0036 7B68 ldr r3, [r7, #4] 279 0038 0022 movs r2, #0 280 003a 83F85D20 strb r2, [r3, #93] 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Release Lock */ ARM GAS /tmp/ccs34gJO.s page 15 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 281 .loc 1 522 3 282 003e 7B68 ldr r3, [r7, #4] 283 0040 0022 movs r2, #0 284 0042 83F85C20 strb r2, [r3, #92] 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 285 .loc 1 524 10 286 0046 0023 movs r3, #0 287 .L12: 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 288 .loc 1 525 1 289 0048 1846 mov r0, r3 290 004a 0837 adds r7, r7, #8 291 .cfi_def_cfa_offset 8 292 004c BD46 mov sp, r7 293 .cfi_def_cfa_register 13 294 @ sp needed 295 004e 80BD pop {r7, pc} 296 .cfi_endproc 297 .LFE131: 299 .section .text.HAL_SPI_MspInit,"ax",%progbits 300 .align 1 301 .weak HAL_SPI_MspInit 302 .syntax unified 303 .thumb 304 .thumb_func 306 HAL_SPI_MspInit: 307 .LFB132: 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 **** { 308 .loc 1 534 1 309 .cfi_startproc 310 @ args = 0, pretend = 0, frame = 8 311 @ frame_needed = 1, uses_anonymous_args = 0 312 @ link register save eliminated. 313 0000 80B4 push {r7} 314 .cfi_def_cfa_offset 4 315 .cfi_offset 7, -4 316 0002 83B0 sub sp, sp, #12 317 .cfi_def_cfa_offset 16 318 0004 00AF add r7, sp, #0 319 .cfi_def_cfa_register 7 320 0006 7860 str r0, [r7, #4] 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 **** */ ARM GAS /tmp/ccs34gJO.s page 16 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 321 .loc 1 541 1 322 0008 00BF nop 323 000a 0C37 adds r7, r7, #12 324 .cfi_def_cfa_offset 4 325 000c BD46 mov sp, r7 326 .cfi_def_cfa_register 13 327 @ sp needed 328 000e 5DF8047B ldr r7, [sp], #4 329 .cfi_restore 7 330 .cfi_def_cfa_offset 0 331 0012 7047 bx lr 332 .cfi_endproc 333 .LFE132: 335 .section .text.HAL_SPI_MspDeInit,"ax",%progbits 336 .align 1 337 .weak HAL_SPI_MspDeInit 338 .syntax unified 339 .thumb 340 .thumb_func 342 HAL_SPI_MspDeInit: 343 .LFB133: 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 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 **** { 344 .loc 1 550 1 345 .cfi_startproc 346 @ args = 0, pretend = 0, frame = 8 347 @ frame_needed = 1, uses_anonymous_args = 0 348 @ link register save eliminated. 349 0000 80B4 push {r7} 350 .cfi_def_cfa_offset 4 351 .cfi_offset 7, -4 352 0002 83B0 sub sp, sp, #12 353 .cfi_def_cfa_offset 16 354 0004 00AF add r7, sp, #0 355 .cfi_def_cfa_register 7 356 0006 7860 str r0, [r7, #4] 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 **** } 357 .loc 1 557 1 358 0008 00BF nop 359 000a 0C37 adds r7, r7, #12 360 .cfi_def_cfa_offset 4 361 000c BD46 mov sp, r7 362 .cfi_def_cfa_register 13 ARM GAS /tmp/ccs34gJO.s page 17 363 @ sp needed 364 000e 5DF8047B ldr r7, [sp], #4 365 .cfi_restore 7 366 .cfi_def_cfa_offset 0 367 0012 7047 bx lr 368 .cfi_endproc 369 .LFE133: 371 .section .text.HAL_SPI_Transmit,"ax",%progbits 372 .align 1 373 .global HAL_SPI_Transmit 374 .syntax unified 375 .thumb 376 .thumb_func 378 HAL_SPI_Transmit: 379 .LFB134: 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 **** ARM GAS /tmp/ccs34gJO.s page 18 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** case HAL_SPI_TX_HALF_COMPLETE_CB_ID : 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 **** } ARM GAS /tmp/ccs34gJO.s page 19 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 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; ARM GAS /tmp/ccs34gJO.s page 20 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 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 */ ARM GAS /tmp/ccs34gJO.s page 21 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 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 **** { 380 .loc 1 822 1 381 .cfi_startproc 382 @ args = 0, pretend = 0, frame = 32 383 @ frame_needed = 1, uses_anonymous_args = 0 384 0000 80B5 push {r7, lr} ARM GAS /tmp/ccs34gJO.s page 22 385 .cfi_def_cfa_offset 8 386 .cfi_offset 7, -8 387 .cfi_offset 14, -4 388 0002 88B0 sub sp, sp, #32 389 .cfi_def_cfa_offset 40 390 0004 00AF add r7, sp, #0 391 .cfi_def_cfa_register 7 392 0006 F860 str r0, [r7, #12] 393 0008 B960 str r1, [r7, #8] 394 000a 3B60 str r3, [r7] 395 000c 1346 mov r3, r2 @ movhi 396 000e FB80 strh r3, [r7, #6] @ movhi 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; 397 .loc 1 824 21 398 0010 0023 movs r3, #0 399 0012 FB77 strb r3, [r7, #31] 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)); 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); 400 .loc 1 831 3 401 0014 FB68 ldr r3, [r7, #12] 402 0016 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 403 001a 012B cmp r3, #1 404 001c 01D1 bne .L16 405 .loc 1 831 3 is_stmt 0 discriminator 1 406 001e 0223 movs r3, #2 407 .loc 1 831 3 408 0020 5FE1 b .L17 409 .L16: 410 .loc 1 831 3 discriminator 2 411 0022 FB68 ldr r3, [r7, #12] 412 0024 0122 movs r2, #1 413 0026 83F85C20 strb r2, [r3, #92] 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(); 414 .loc 1 834 15 is_stmt 1 415 002a FFF7FEFF bl HAL_GetTick 416 002e B861 str r0, [r7, #24] 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 417 .loc 1 835 23 418 0030 FB88 ldrh r3, [r7, #6] @ movhi 419 0032 FB82 strh r3, [r7, #22] @ movhi 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) 420 .loc 1 837 11 421 0034 FB68 ldr r3, [r7, #12] 422 0036 93F85D30 ldrb r3, [r3, #93] 423 003a DBB2 uxtb r3, r3 424 .loc 1 837 6 425 003c 012B cmp r3, #1 426 003e 02D0 beq .L18 ARM GAS /tmp/ccs34gJO.s page 23 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 427 .loc 1 839 15 428 0040 0223 movs r3, #2 429 0042 FB77 strb r3, [r7, #31] 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 430 .loc 1 840 5 431 0044 48E1 b .L19 432 .L18: 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)) 433 .loc 1 843 6 434 0046 BB68 ldr r3, [r7, #8] 435 0048 002B cmp r3, #0 436 004a 02D0 beq .L20 437 .loc 1 843 23 discriminator 1 438 004c FB88 ldrh r3, [r7, #6] 439 004e 002B cmp r3, #0 440 0050 02D1 bne .L21 441 .L20: 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 442 .loc 1 845 15 443 0052 0123 movs r3, #1 444 0054 FB77 strb r3, [r7, #31] 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 445 .loc 1 846 5 446 0056 3FE1 b .L19 447 .L21: 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; 448 .loc 1 850 21 449 0058 FB68 ldr r3, [r7, #12] 450 005a 0322 movs r2, #3 451 005c 83F85D20 strb r2, [r3, #93] 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 452 .loc 1 851 21 453 0060 FB68 ldr r3, [r7, #12] 454 0062 0022 movs r2, #0 455 0064 1A66 str r2, [r3, #96] 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 456 .loc 1 852 21 457 0066 FB68 ldr r3, [r7, #12] 458 0068 BA68 ldr r2, [r7, #8] 459 006a 9A63 str r2, [r3, #56] 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 460 .loc 1 853 21 461 006c FB68 ldr r3, [r7, #12] 462 006e FA88 ldrh r2, [r7, #6] @ movhi 463 0070 9A87 strh r2, [r3, #60] @ movhi 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 464 .loc 1 854 21 465 0072 FB68 ldr r3, [r7, #12] 466 0074 FA88 ldrh r2, [r7, #6] @ movhi ARM GAS /tmp/ccs34gJO.s page 24 467 0076 DA87 strh r2, [r3, #62] @ movhi 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; 468 .loc 1 857 21 469 0078 FB68 ldr r3, [r7, #12] 470 007a 0022 movs r2, #0 471 007c 1A64 str r2, [r3, #64] 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 472 .loc 1 858 21 473 007e FB68 ldr r3, [r7, #12] 474 0080 0022 movs r2, #0 475 0082 A3F84420 strh r2, [r3, #68] @ movhi 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 476 .loc 1 859 21 477 0086 FB68 ldr r3, [r7, #12] 478 0088 0022 movs r2, #0 479 008a A3F84620 strh r2, [r3, #70] @ movhi 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 480 .loc 1 860 21 481 008e FB68 ldr r3, [r7, #12] 482 0090 0022 movs r2, #0 483 0092 1A65 str r2, [r3, #80] 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 484 .loc 1 861 21 485 0094 FB68 ldr r3, [r7, #12] 486 0096 0022 movs r2, #0 487 0098 DA64 str r2, [r3, #76] 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) 488 .loc 1 864 17 489 009a FB68 ldr r3, [r7, #12] 490 009c 9B68 ldr r3, [r3, #8] 491 .loc 1 864 6 492 009e B3F5004F cmp r3, #32768 493 00a2 0FD1 bne .L22 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); 494 .loc 1 867 5 495 00a4 FB68 ldr r3, [r7, #12] 496 00a6 1B68 ldr r3, [r3] 497 00a8 1A68 ldr r2, [r3] 498 00aa FB68 ldr r3, [r7, #12] 499 00ac 1B68 ldr r3, [r3] 500 00ae 22F04002 bic r2, r2, #64 501 00b2 1A60 str r2, [r3] 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 502 .loc 1 868 5 503 00b4 FB68 ldr r3, [r7, #12] 504 00b6 1B68 ldr r3, [r3] 505 00b8 1A68 ldr r2, [r3] 506 00ba FB68 ldr r3, [r7, #12] 507 00bc 1B68 ldr r3, [r3] 508 00be 42F48042 orr r2, r2, #16384 509 00c2 1A60 str r2, [r3] ARM GAS /tmp/ccs34gJO.s page 25 510 .L22: 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) 511 .loc 1 880 12 512 00c4 FB68 ldr r3, [r7, #12] 513 00c6 1B68 ldr r3, [r3] 514 .loc 1 880 22 515 00c8 1B68 ldr r3, [r3] 516 .loc 1 880 28 517 00ca 03F04003 and r3, r3, #64 518 .loc 1 880 6 519 00ce 402B cmp r3, #64 520 00d0 07D0 beq .L23 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); 521 .loc 1 883 5 522 00d2 FB68 ldr r3, [r7, #12] 523 00d4 1B68 ldr r3, [r3] 524 00d6 1A68 ldr r2, [r3] 525 00d8 FB68 ldr r3, [r7, #12] 526 00da 1B68 ldr r3, [r3] 527 00dc 42F04002 orr r2, r2, #64 528 00e0 1A60 str r2, [r3] 529 .L23: 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 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) 530 .loc 1 887 17 531 00e2 FB68 ldr r3, [r7, #12] 532 00e4 DB68 ldr r3, [r3, #12] 533 .loc 1 887 6 534 00e6 B3F5E06F cmp r3, #1792 535 00ea 4FD9 bls .L24 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)) 536 .loc 1 889 20 537 00ec FB68 ldr r3, [r7, #12] 538 00ee 5B68 ldr r3, [r3, #4] 539 .loc 1 889 8 540 00f0 002B cmp r3, #0 541 00f2 02D0 beq .L25 542 .loc 1 889 45 discriminator 1 543 00f4 FB8A ldrh r3, [r7, #22] 544 00f6 012B cmp r3, #1 545 00f8 42D1 bne .L27 ARM GAS /tmp/ccs34gJO.s page 26 546 .L25: 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); 547 .loc 1 891 46 548 00fa FB68 ldr r3, [r7, #12] 549 00fc 9B6B ldr r3, [r3, #56] 550 .loc 1 891 28 551 00fe 1A88 ldrh r2, [r3] 552 .loc 1 891 11 553 0100 FB68 ldr r3, [r7, #12] 554 0102 1B68 ldr r3, [r3] 555 .loc 1 891 26 556 0104 DA60 str r2, [r3, #12] 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 557 .loc 1 892 11 558 0106 FB68 ldr r3, [r7, #12] 559 0108 9B6B ldr r3, [r3, #56] 560 .loc 1 892 24 561 010a 9A1C adds r2, r3, #2 562 010c FB68 ldr r3, [r7, #12] 563 010e 9A63 str r2, [r3, #56] 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 564 .loc 1 893 11 565 0110 FB68 ldr r3, [r7, #12] 566 0112 DB8F ldrh r3, [r3, #62] @ movhi 567 0114 9BB2 uxth r3, r3 568 .loc 1 893 24 569 0116 013B subs r3, r3, #1 570 0118 9AB2 uxth r2, r3 571 011a FB68 ldr r3, [r7, #12] 572 011c DA87 strh r2, [r3, #62] @ movhi 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) 573 .loc 1 896 11 574 011e 2FE0 b .L27 575 .L32: 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)) 576 .loc 1 899 11 577 0120 FB68 ldr r3, [r7, #12] 578 0122 1B68 ldr r3, [r3] 579 0124 9B68 ldr r3, [r3, #8] 580 0126 03F00203 and r3, r3, #2 581 .loc 1 899 10 582 012a 022B cmp r3, #2 583 012c 12D1 bne .L28 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); 584 .loc 1 901 48 585 012e FB68 ldr r3, [r7, #12] 586 0130 9B6B ldr r3, [r3, #56] 587 .loc 1 901 30 588 0132 1A88 ldrh r2, [r3] 589 .loc 1 901 13 590 0134 FB68 ldr r3, [r7, #12] ARM GAS /tmp/ccs34gJO.s page 27 591 0136 1B68 ldr r3, [r3] 592 .loc 1 901 28 593 0138 DA60 str r2, [r3, #12] 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 594 .loc 1 902 13 595 013a FB68 ldr r3, [r7, #12] 596 013c 9B6B ldr r3, [r3, #56] 597 .loc 1 902 26 598 013e 9A1C adds r2, r3, #2 599 0140 FB68 ldr r3, [r7, #12] 600 0142 9A63 str r2, [r3, #56] 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 601 .loc 1 903 13 602 0144 FB68 ldr r3, [r7, #12] 603 0146 DB8F ldrh r3, [r3, #62] @ movhi 604 0148 9BB2 uxth r3, r3 605 .loc 1 903 26 606 014a 013B subs r3, r3, #1 607 014c 9AB2 uxth r2, r3 608 014e FB68 ldr r3, [r7, #12] 609 0150 DA87 strh r2, [r3, #62] @ movhi 610 0152 15E0 b .L27 611 .L28: 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 = 612 .loc 1 908 16 613 0154 FFF7FEFF bl HAL_GetTick 614 0158 0246 mov r2, r0 615 .loc 1 908 30 discriminator 1 616 015a BB69 ldr r3, [r7, #24] 617 015c D31A subs r3, r2, r3 618 .loc 1 908 12 discriminator 1 619 015e 3A68 ldr r2, [r7] 620 0160 9A42 cmp r2, r3 621 0162 03D8 bhi .L30 622 .loc 1 908 56 discriminator 1 623 0164 3B68 ldr r3, [r7] 624 0166 B3F1FF3F cmp r3, #-1 625 016a 02D1 bne .L31 626 .L30: 627 .loc 1 908 87 discriminator 3 628 016c 3B68 ldr r3, [r7] 629 016e 002B cmp r3, #0 630 0170 06D1 bne .L27 631 .L31: 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 632 .loc 1 910 21 633 0172 0323 movs r3, #3 634 0174 FB77 strb r3, [r7, #31] 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 635 .loc 1 911 23 636 0176 FB68 ldr r3, [r7, #12] 637 0178 0122 movs r2, #1 ARM GAS /tmp/ccs34gJO.s page 28 638 017a 83F85D20 strb r2, [r3, #93] 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 639 .loc 1 912 11 640 017e ABE0 b .L19 641 .L27: 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 642 .loc 1 896 16 643 0180 FB68 ldr r3, [r7, #12] 644 0182 DB8F ldrh r3, [r3, #62] @ movhi 645 0184 9BB2 uxth r3, r3 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 646 .loc 1 896 30 647 0186 002B cmp r3, #0 648 0188 CAD1 bne .L32 649 018a 80E0 b .L33 650 .L24: 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)) 651 .loc 1 920 20 652 018c FB68 ldr r3, [r7, #12] 653 018e 5B68 ldr r3, [r3, #4] 654 .loc 1 920 8 655 0190 002B cmp r3, #0 656 0192 02D0 beq .L34 657 .loc 1 920 45 discriminator 1 658 0194 FB8A ldrh r3, [r7, #22] 659 0196 012B cmp r3, #1 660 0198 74D1 bne .L37 661 .L34: 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 662 .loc 1 922 15 663 019a FB68 ldr r3, [r7, #12] 664 019c DB8F ldrh r3, [r3, #62] @ movhi 665 019e 9BB2 uxth r3, r3 666 .loc 1 922 10 667 01a0 012B cmp r3, #1 668 01a2 12D9 bls .L36 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); 669 .loc 1 925 48 670 01a4 FB68 ldr r3, [r7, #12] 671 01a6 9B6B ldr r3, [r3, #56] 672 .loc 1 925 30 673 01a8 1A88 ldrh r2, [r3] 674 .loc 1 925 13 675 01aa FB68 ldr r3, [r7, #12] 676 01ac 1B68 ldr r3, [r3] 677 .loc 1 925 28 678 01ae DA60 str r2, [r3, #12] ARM GAS /tmp/ccs34gJO.s page 29 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 679 .loc 1 926 13 680 01b0 FB68 ldr r3, [r7, #12] 681 01b2 9B6B ldr r3, [r3, #56] 682 .loc 1 926 26 683 01b4 9A1C adds r2, r3, #2 684 01b6 FB68 ldr r3, [r7, #12] 685 01b8 9A63 str r2, [r3, #56] 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 686 .loc 1 927 13 687 01ba FB68 ldr r3, [r7, #12] 688 01bc DB8F ldrh r3, [r3, #62] @ movhi 689 01be 9BB2 uxth r3, r3 690 .loc 1 927 27 691 01c0 023B subs r3, r3, #2 692 01c2 9AB2 uxth r2, r3 693 01c4 FB68 ldr r3, [r7, #12] 694 01c6 DA87 strh r2, [r3, #62] @ movhi 695 01c8 5CE0 b .L37 696 .L36: 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); 697 .loc 1 931 56 698 01ca FB68 ldr r3, [r7, #12] 699 01cc 9A6B ldr r2, [r3, #56] 700 .loc 1 931 32 701 01ce FB68 ldr r3, [r7, #12] 702 01d0 1B68 ldr r3, [r3] 703 .loc 1 931 27 704 01d2 0C33 adds r3, r3, #12 705 .loc 1 931 51 706 01d4 1278 ldrb r2, [r2] @ zero_extendqisi2 707 .loc 1 931 48 708 01d6 1A70 strb r2, [r3] 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr ++; 709 .loc 1 932 13 710 01d8 FB68 ldr r3, [r7, #12] 711 01da 9B6B ldr r3, [r3, #56] 712 .loc 1 932 26 713 01dc 5A1C adds r2, r3, #1 714 01de FB68 ldr r3, [r7, #12] 715 01e0 9A63 str r2, [r3, #56] 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 716 .loc 1 933 13 717 01e2 FB68 ldr r3, [r7, #12] 718 01e4 DB8F ldrh r3, [r3, #62] @ movhi 719 01e6 9BB2 uxth r3, r3 720 .loc 1 933 26 721 01e8 013B subs r3, r3, #1 722 01ea 9AB2 uxth r2, r3 723 01ec FB68 ldr r3, [r7, #12] 724 01ee DA87 strh r2, [r3, #62] @ movhi 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) ARM GAS /tmp/ccs34gJO.s page 30 725 .loc 1 936 11 726 01f0 48E0 b .L37 727 .L43: 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)) 728 .loc 1 939 11 729 01f2 FB68 ldr r3, [r7, #12] 730 01f4 1B68 ldr r3, [r3] 731 01f6 9B68 ldr r3, [r3, #8] 732 01f8 03F00203 and r3, r3, #2 733 .loc 1 939 10 734 01fc 022B cmp r3, #2 735 01fe 2BD1 bne .L38 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 736 .loc 1 941 17 737 0200 FB68 ldr r3, [r7, #12] 738 0202 DB8F ldrh r3, [r3, #62] @ movhi 739 0204 9BB2 uxth r3, r3 740 .loc 1 941 12 741 0206 012B cmp r3, #1 742 0208 12D9 bls .L39 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 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); 743 .loc 1 944 50 744 020a FB68 ldr r3, [r7, #12] 745 020c 9B6B ldr r3, [r3, #56] 746 .loc 1 944 32 747 020e 1A88 ldrh r2, [r3] 748 .loc 1 944 15 749 0210 FB68 ldr r3, [r7, #12] 750 0212 1B68 ldr r3, [r3] 751 .loc 1 944 30 752 0214 DA60 str r2, [r3, #12] 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 753 .loc 1 945 15 754 0216 FB68 ldr r3, [r7, #12] 755 0218 9B6B ldr r3, [r3, #56] 756 .loc 1 945 28 757 021a 9A1C adds r2, r3, #2 758 021c FB68 ldr r3, [r7, #12] 759 021e 9A63 str r2, [r3, #56] 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 760 .loc 1 946 15 761 0220 FB68 ldr r3, [r7, #12] 762 0222 DB8F ldrh r3, [r3, #62] @ movhi 763 0224 9BB2 uxth r3, r3 764 .loc 1 946 29 765 0226 023B subs r3, r3, #2 766 0228 9AB2 uxth r2, r3 767 022a FB68 ldr r3, [r7, #12] 768 022c DA87 strh r2, [r3, #62] @ movhi 769 022e 29E0 b .L37 770 .L39: 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccs34gJO.s page 31 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); 771 .loc 1 950 58 772 0230 FB68 ldr r3, [r7, #12] 773 0232 9A6B ldr r2, [r3, #56] 774 .loc 1 950 34 775 0234 FB68 ldr r3, [r7, #12] 776 0236 1B68 ldr r3, [r3] 777 .loc 1 950 29 778 0238 0C33 adds r3, r3, #12 779 .loc 1 950 53 780 023a 1278 ldrb r2, [r2] @ zero_extendqisi2 781 .loc 1 950 50 782 023c 1A70 strb r2, [r3] 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 783 .loc 1 951 15 784 023e FB68 ldr r3, [r7, #12] 785 0240 9B6B ldr r3, [r3, #56] 786 .loc 1 951 27 787 0242 5A1C adds r2, r3, #1 788 0244 FB68 ldr r3, [r7, #12] 789 0246 9A63 str r2, [r3, #56] 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 790 .loc 1 952 15 791 0248 FB68 ldr r3, [r7, #12] 792 024a DB8F ldrh r3, [r3, #62] @ movhi 793 024c 9BB2 uxth r3, r3 794 .loc 1 952 28 795 024e 013B subs r3, r3, #1 796 0250 9AB2 uxth r2, r3 797 0252 FB68 ldr r3, [r7, #12] 798 0254 DA87 strh r2, [r3, #62] @ movhi 799 0256 15E0 b .L37 800 .L38: 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 = 801 .loc 1 958 16 802 0258 FFF7FEFF bl HAL_GetTick 803 025c 0246 mov r2, r0 804 .loc 1 958 30 discriminator 1 805 025e BB69 ldr r3, [r7, #24] 806 0260 D31A subs r3, r2, r3 807 .loc 1 958 12 discriminator 1 808 0262 3A68 ldr r2, [r7] 809 0264 9A42 cmp r2, r3 810 0266 03D8 bhi .L41 811 .loc 1 958 56 discriminator 1 812 0268 3B68 ldr r3, [r7] 813 026a B3F1FF3F cmp r3, #-1 814 026e 02D1 bne .L42 815 .L41: 816 .loc 1 958 87 discriminator 3 ARM GAS /tmp/ccs34gJO.s page 32 817 0270 3B68 ldr r3, [r7] 818 0272 002B cmp r3, #0 819 0274 06D1 bne .L37 820 .L42: 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 821 .loc 1 960 21 822 0276 0323 movs r3, #3 823 0278 FB77 strb r3, [r7, #31] 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 824 .loc 1 961 23 825 027a FB68 ldr r3, [r7, #12] 826 027c 0122 movs r2, #1 827 027e 83F85D20 strb r2, [r3, #93] 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 828 .loc 1 962 11 829 0282 29E0 b .L19 830 .L37: 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 831 .loc 1 936 16 832 0284 FB68 ldr r3, [r7, #12] 833 0286 DB8F ldrh r3, [r3, #62] @ movhi 834 0288 9BB2 uxth r3, r3 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 835 .loc 1 936 30 836 028a 002B cmp r3, #0 837 028c B1D1 bne .L43 838 .L33: 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) 839 .loc 1 976 7 840 028e BA69 ldr r2, [r7, #24] 841 0290 3968 ldr r1, [r7] 842 0292 F868 ldr r0, [r7, #12] 843 0294 FFF7FEFF bl SPI_EndRxTxTransaction 844 0298 0346 mov r3, r0 845 .loc 1 976 6 discriminator 1 846 029a 002B cmp r3, #0 847 029c 02D0 beq .L44 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; 848 .loc 1 978 21 849 029e FB68 ldr r3, [r7, #12] 850 02a0 2022 movs r2, #32 851 02a2 1A66 str r2, [r3, #96] ARM GAS /tmp/ccs34gJO.s page 33 852 .L44: 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) 853 .loc 1 982 17 854 02a4 FB68 ldr r3, [r7, #12] 855 02a6 9B68 ldr r3, [r3, #8] 856 .loc 1 982 6 857 02a8 002B cmp r3, #0 858 02aa 0AD1 bne .L45 859 .LBB2: 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); 860 .loc 1 984 5 861 02ac 0023 movs r3, #0 862 02ae 3B61 str r3, [r7, #16] 863 02b0 FB68 ldr r3, [r7, #12] 864 02b2 1B68 ldr r3, [r3] 865 02b4 DB68 ldr r3, [r3, #12] 866 02b6 3B61 str r3, [r7, #16] 867 02b8 FB68 ldr r3, [r7, #12] 868 02ba 1B68 ldr r3, [r3] 869 02bc 9B68 ldr r3, [r3, #8] 870 02be 3B61 str r3, [r7, #16] 871 02c0 3B69 ldr r3, [r7, #16] 872 .L45: 873 .LBE2: 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) 874 .loc 1 987 11 875 02c2 FB68 ldr r3, [r7, #12] 876 02c4 1B6E ldr r3, [r3, #96] 877 .loc 1 987 6 878 02c6 002B cmp r3, #0 879 02c8 02D0 beq .L46 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 880 .loc 1 989 15 881 02ca 0123 movs r3, #1 882 02cc FB77 strb r3, [r7, #31] 883 02ce 03E0 b .L19 884 .L46: 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; 885 .loc 1 993 17 886 02d0 FB68 ldr r3, [r7, #12] 887 02d2 0122 movs r2, #1 888 02d4 83F85D20 strb r2, [r3, #93] 889 .L19: 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 */ ARM GAS /tmp/ccs34gJO.s page 34 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 890 .loc 1 998 3 891 02d8 FB68 ldr r3, [r7, #12] 892 02da 0022 movs r2, #0 893 02dc 83F85C20 strb r2, [r3, #92] 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 894 .loc 1 999 10 895 02e0 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 896 .L17: 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 897 .loc 1 1000 1 898 02e2 1846 mov r0, r3 899 02e4 2037 adds r7, r7, #32 900 .cfi_def_cfa_offset 8 901 02e6 BD46 mov sp, r7 902 .cfi_def_cfa_register 13 903 @ sp needed 904 02e8 80BD pop {r7, pc} 905 .cfi_endproc 906 .LFE134: 908 .section .text.HAL_SPI_Receive,"ax",%progbits 909 .align 1 910 .global HAL_SPI_Receive 911 .syntax unified 912 .thumb 913 .thumb_func 915 HAL_SPI_Receive: 916 .LFB135: 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 **** { 917 .loc 1 1012 1 918 .cfi_startproc 919 @ args = 0, pretend = 0, frame = 24 920 @ frame_needed = 1, uses_anonymous_args = 0 921 0000 80B5 push {r7, lr} 922 .cfi_def_cfa_offset 8 923 .cfi_offset 7, -8 924 .cfi_offset 14, -4 925 0002 88B0 sub sp, sp, #32 926 .cfi_def_cfa_offset 40 927 0004 02AF add r7, sp, #8 928 .cfi_def_cfa 7, 32 929 0006 F860 str r0, [r7, #12] 930 0008 B960 str r1, [r7, #8] 931 000a 3B60 str r3, [r7] 932 000c 1346 mov r3, r2 @ movhi 933 000e FB80 strh r3, [r7, #6] @ movhi ARM GAS /tmp/ccs34gJO.s page 35 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; 934 .loc 1 1019 21 935 0010 0023 movs r3, #0 936 0012 FB75 strb r3, [r7, #23] 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) 937 .loc 1 1021 11 938 0014 FB68 ldr r3, [r7, #12] 939 0016 93F85D30 ldrb r3, [r3, #93] 940 001a DBB2 uxtb r3, r3 941 .loc 1 1021 6 942 001c 012B cmp r3, #1 943 001e 02D0 beq .L48 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 944 .loc 1 1023 15 945 0020 0223 movs r3, #2 946 0022 FB75 strb r3, [r7, #23] 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 947 .loc 1 1024 5 948 0024 1AE1 b .L49 949 .L48: 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)) 950 .loc 1 1027 18 951 0026 FB68 ldr r3, [r7, #12] 952 0028 5B68 ldr r3, [r3, #4] 953 .loc 1 1027 6 954 002a B3F5827F cmp r3, #260 955 002e 12D1 bne .L50 956 .loc 1 1027 58 discriminator 1 957 0030 FB68 ldr r3, [r7, #12] 958 0032 9B68 ldr r3, [r3, #8] 959 .loc 1 1027 44 discriminator 1 960 0034 002B cmp r3, #0 961 0036 0ED1 bne .L50 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; 962 .loc 1 1029 17 963 0038 FB68 ldr r3, [r7, #12] 964 003a 0422 movs r2, #4 965 003c 83F85D20 strb r2, [r3, #93] 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); 966 .loc 1 1031 12 967 0040 FA88 ldrh r2, [r7, #6] 968 0042 3B68 ldr r3, [r7] 969 0044 0093 str r3, [sp] 970 0046 1346 mov r3, r2 971 0048 BA68 ldr r2, [r7, #8] ARM GAS /tmp/ccs34gJO.s page 36 972 004a B968 ldr r1, [r7, #8] 973 004c F868 ldr r0, [r7, #12] 974 004e FFF7FEFF bl HAL_SPI_TransmitReceive 975 0052 0346 mov r3, r0 976 0054 07E1 b .L51 977 .L50: 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); 978 .loc 1 1035 3 979 0056 FB68 ldr r3, [r7, #12] 980 0058 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 981 005c 012B cmp r3, #1 982 005e 01D1 bne .L52 983 .loc 1 1035 3 is_stmt 0 discriminator 1 984 0060 0223 movs r3, #2 985 .loc 1 1035 3 986 0062 00E1 b .L51 987 .L52: 988 .loc 1 1035 3 discriminator 2 989 0064 FB68 ldr r3, [r7, #12] 990 0066 0122 movs r2, #1 991 0068 83F85C20 strb r2, [r3, #92] 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(); 992 .loc 1 1038 15 is_stmt 1 993 006c FFF7FEFF bl HAL_GetTick 994 0070 3861 str r0, [r7, #16] 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)) 995 .loc 1 1040 6 996 0072 BB68 ldr r3, [r7, #8] 997 0074 002B cmp r3, #0 998 0076 02D0 beq .L53 999 .loc 1 1040 23 discriminator 1 1000 0078 FB88 ldrh r3, [r7, #6] 1001 007a 002B cmp r3, #0 1002 007c 02D1 bne .L54 1003 .L53: 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1004 .loc 1 1042 15 1005 007e 0123 movs r3, #1 1006 0080 FB75 strb r3, [r7, #23] 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1007 .loc 1 1043 5 1008 0082 EBE0 b .L49 1009 .L54: 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; 1010 .loc 1 1047 21 1011 0084 FB68 ldr r3, [r7, #12] 1012 0086 0422 movs r2, #4 ARM GAS /tmp/ccs34gJO.s page 37 1013 0088 83F85D20 strb r2, [r3, #93] 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 1014 .loc 1 1048 21 1015 008c FB68 ldr r3, [r7, #12] 1016 008e 0022 movs r2, #0 1017 0090 1A66 str r2, [r3, #96] 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 1018 .loc 1 1049 21 1019 0092 FB68 ldr r3, [r7, #12] 1020 0094 BA68 ldr r2, [r7, #8] 1021 0096 1A64 str r2, [r3, #64] 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1022 .loc 1 1050 21 1023 0098 FB68 ldr r3, [r7, #12] 1024 009a FA88 ldrh r2, [r7, #6] @ movhi 1025 009c A3F84420 strh r2, [r3, #68] @ movhi 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1026 .loc 1 1051 21 1027 00a0 FB68 ldr r3, [r7, #12] 1028 00a2 FA88 ldrh r2, [r7, #6] @ movhi 1029 00a4 A3F84620 strh r2, [r3, #70] @ movhi 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; 1030 .loc 1 1054 21 1031 00a8 FB68 ldr r3, [r7, #12] 1032 00aa 0022 movs r2, #0 1033 00ac 9A63 str r2, [r3, #56] 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 1034 .loc 1 1055 21 1035 00ae FB68 ldr r3, [r7, #12] 1036 00b0 0022 movs r2, #0 1037 00b2 9A87 strh r2, [r3, #60] @ movhi 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 1038 .loc 1 1056 21 1039 00b4 FB68 ldr r3, [r7, #12] 1040 00b6 0022 movs r2, #0 1041 00b8 DA87 strh r2, [r3, #62] @ movhi 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 1042 .loc 1 1057 21 1043 00ba FB68 ldr r3, [r7, #12] 1044 00bc 0022 movs r2, #0 1045 00be DA64 str r2, [r3, #76] 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1046 .loc 1 1058 21 1047 00c0 FB68 ldr r3, [r7, #12] 1048 00c2 0022 movs r2, #0 1049 00c4 1A65 str r2, [r3, #80] 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 **** } ARM GAS /tmp/ccs34gJO.s page 38 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) 1050 .loc 1 1071 17 1051 00c6 FB68 ldr r3, [r7, #12] 1052 00c8 DB68 ldr r3, [r3, #12] 1053 .loc 1 1071 6 1054 00ca B3F5E06F cmp r3, #1792 1055 00ce 08D9 bls .L55 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); 1056 .loc 1 1074 5 1057 00d0 FB68 ldr r3, [r7, #12] 1058 00d2 1B68 ldr r3, [r3] 1059 00d4 5A68 ldr r2, [r3, #4] 1060 00d6 FB68 ldr r3, [r7, #12] 1061 00d8 1B68 ldr r3, [r3] 1062 00da 22F48052 bic r2, r2, #4096 1063 00de 5A60 str r2, [r3, #4] 1064 00e0 07E0 b .L56 1065 .L55: 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); 1066 .loc 1 1079 5 1067 00e2 FB68 ldr r3, [r7, #12] 1068 00e4 1B68 ldr r3, [r3] 1069 00e6 5A68 ldr r2, [r3, #4] 1070 00e8 FB68 ldr r3, [r7, #12] 1071 00ea 1B68 ldr r3, [r3] 1072 00ec 42F48052 orr r2, r2, #4096 1073 00f0 5A60 str r2, [r3, #4] 1074 .L56: 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) 1075 .loc 1 1083 17 1076 00f2 FB68 ldr r3, [r7, #12] 1077 00f4 9B68 ldr r3, [r3, #8] 1078 .loc 1 1083 6 1079 00f6 B3F5004F cmp r3, #32768 1080 00fa 0FD1 bne .L57 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); 1081 .loc 1 1086 5 1082 00fc FB68 ldr r3, [r7, #12] 1083 00fe 1B68 ldr r3, [r3] 1084 0100 1A68 ldr r2, [r3] 1085 0102 FB68 ldr r3, [r7, #12] 1086 0104 1B68 ldr r3, [r3] 1087 0106 22F04002 bic r2, r2, #64 ARM GAS /tmp/ccs34gJO.s page 39 1088 010a 1A60 str r2, [r3] 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 1089 .loc 1 1087 5 1090 010c FB68 ldr r3, [r7, #12] 1091 010e 1B68 ldr r3, [r3] 1092 0110 1A68 ldr r2, [r3] 1093 0112 FB68 ldr r3, [r7, #12] 1094 0114 1B68 ldr r3, [r3] 1095 0116 22F48042 bic r2, r2, #16384 1096 011a 1A60 str r2, [r3] 1097 .L57: 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) 1098 .loc 1 1091 12 1099 011c FB68 ldr r3, [r7, #12] 1100 011e 1B68 ldr r3, [r3] 1101 .loc 1 1091 22 1102 0120 1B68 ldr r3, [r3] 1103 .loc 1 1091 28 1104 0122 03F04003 and r3, r3, #64 1105 .loc 1 1091 6 1106 0126 402B cmp r3, #64 1107 0128 07D0 beq .L58 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); 1108 .loc 1 1094 5 1109 012a FB68 ldr r3, [r7, #12] 1110 012c 1B68 ldr r3, [r3] 1111 012e 1A68 ldr r2, [r3] 1112 0130 FB68 ldr r3, [r7, #12] 1113 0132 1B68 ldr r3, [r3] 1114 0134 42F04002 orr r2, r2, #64 1115 0138 1A60 str r2, [r3] 1116 .L58: 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) 1117 .loc 1 1098 17 1118 013a FB68 ldr r3, [r7, #12] 1119 013c DB68 ldr r3, [r3, #12] 1120 .loc 1 1098 6 1121 013e B3F5E06F cmp r3, #1792 1122 0142 6FD8 bhi .L67 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) 1123 .loc 1 1101 11 1124 0144 34E0 b .L60 1125 .L65: 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)) 1126 .loc 1 1104 11 ARM GAS /tmp/ccs34gJO.s page 40 1127 0146 FB68 ldr r3, [r7, #12] 1128 0148 1B68 ldr r3, [r3] 1129 014a 9B68 ldr r3, [r3, #8] 1130 014c 03F00103 and r3, r3, #1 1131 .loc 1 1104 10 1132 0150 012B cmp r3, #1 1133 0152 17D1 bne .L61 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; 1134 .loc 1 1107 65 1135 0154 FB68 ldr r3, [r7, #12] 1136 0156 1B68 ldr r3, [r3] 1137 .loc 1 1107 60 1138 0158 03F10C02 add r2, r3, #12 1139 .loc 1 1107 27 1140 015c FB68 ldr r3, [r7, #12] 1141 015e 1B6C ldr r3, [r3, #64] 1142 .loc 1 1107 43 1143 0160 1278 ldrb r2, [r2] 1144 0162 D2B2 uxtb r2, r2 1145 .loc 1 1107 41 1146 0164 1A70 strb r2, [r3] 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint8_t); 1147 .loc 1 1108 13 1148 0166 FB68 ldr r3, [r7, #12] 1149 0168 1B6C ldr r3, [r3, #64] 1150 .loc 1 1108 26 1151 016a 5A1C adds r2, r3, #1 1152 016c FB68 ldr r3, [r7, #12] 1153 016e 1A64 str r2, [r3, #64] 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1154 .loc 1 1109 13 1155 0170 FB68 ldr r3, [r7, #12] 1156 0172 B3F84630 ldrh r3, [r3, #70] @ movhi 1157 0176 9BB2 uxth r3, r3 1158 .loc 1 1109 26 1159 0178 013B subs r3, r3, #1 1160 017a 9AB2 uxth r2, r3 1161 017c FB68 ldr r3, [r7, #12] 1162 017e A3F84620 strh r2, [r3, #70] @ movhi 1163 0182 15E0 b .L60 1164 .L61: 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 */ 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) || (Timeout = 1165 .loc 1 1114 16 1166 0184 FFF7FEFF bl HAL_GetTick 1167 0188 0246 mov r2, r0 1168 .loc 1 1114 30 discriminator 1 1169 018a 3B69 ldr r3, [r7, #16] 1170 018c D31A subs r3, r2, r3 1171 .loc 1 1114 12 discriminator 1 1172 018e 3A68 ldr r2, [r7] 1173 0190 9A42 cmp r2, r3 ARM GAS /tmp/ccs34gJO.s page 41 1174 0192 03D8 bhi .L63 1175 .loc 1 1114 56 discriminator 1 1176 0194 3B68 ldr r3, [r7] 1177 0196 B3F1FF3F cmp r3, #-1 1178 019a 02D1 bne .L64 1179 .L63: 1180 .loc 1 1114 87 discriminator 3 1181 019c 3B68 ldr r3, [r7] 1182 019e 002B cmp r3, #0 1183 01a0 06D1 bne .L60 1184 .L64: 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1185 .loc 1 1116 21 1186 01a2 0323 movs r3, #3 1187 01a4 FB75 strb r3, [r7, #23] 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1188 .loc 1 1117 23 1189 01a6 FB68 ldr r3, [r7, #12] 1190 01a8 0122 movs r2, #1 1191 01aa 83F85D20 strb r2, [r3, #93] 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1192 .loc 1 1118 11 1193 01ae 55E0 b .L49 1194 .L60: 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1195 .loc 1 1101 16 1196 01b0 FB68 ldr r3, [r7, #12] 1197 01b2 B3F84630 ldrh r3, [r3, #70] @ movhi 1198 01b6 9BB2 uxth r3, r3 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1199 .loc 1 1101 30 1200 01b8 002B cmp r3, #0 1201 01ba C4D1 bne .L65 1202 01bc 38E0 b .L66 1203 .L72: 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)) 1204 .loc 1 1129 11 1205 01be FB68 ldr r3, [r7, #12] 1206 01c0 1B68 ldr r3, [r3] 1207 01c2 9B68 ldr r3, [r3, #8] 1208 01c4 03F00103 and r3, r3, #1 1209 .loc 1 1129 10 1210 01c8 012B cmp r3, #1 1211 01ca 15D1 bne .L68 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; ARM GAS /tmp/ccs34gJO.s page 42 1212 .loc 1 1131 57 1213 01cc FB68 ldr r3, [r7, #12] 1214 01ce 1B68 ldr r3, [r3] 1215 .loc 1 1131 67 1216 01d0 DA68 ldr r2, [r3, #12] 1217 .loc 1 1131 27 1218 01d2 FB68 ldr r3, [r7, #12] 1219 01d4 1B6C ldr r3, [r3, #64] 1220 .loc 1 1131 43 1221 01d6 92B2 uxth r2, r2 1222 .loc 1 1131 41 1223 01d8 1A80 strh r2, [r3] @ movhi 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1224 .loc 1 1132 13 1225 01da FB68 ldr r3, [r7, #12] 1226 01dc 1B6C ldr r3, [r3, #64] 1227 .loc 1 1132 26 1228 01de 9A1C adds r2, r3, #2 1229 01e0 FB68 ldr r3, [r7, #12] 1230 01e2 1A64 str r2, [r3, #64] 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1231 .loc 1 1133 13 1232 01e4 FB68 ldr r3, [r7, #12] 1233 01e6 B3F84630 ldrh r3, [r3, #70] @ movhi 1234 01ea 9BB2 uxth r3, r3 1235 .loc 1 1133 26 1236 01ec 013B subs r3, r3, #1 1237 01ee 9AB2 uxth r2, r3 1238 01f0 FB68 ldr r3, [r7, #12] 1239 01f2 A3F84620 strh r2, [r3, #70] @ movhi 1240 01f6 15E0 b .L67 1241 .L68: 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 = 1242 .loc 1 1138 16 1243 01f8 FFF7FEFF bl HAL_GetTick 1244 01fc 0246 mov r2, r0 1245 .loc 1 1138 30 discriminator 1 1246 01fe 3B69 ldr r3, [r7, #16] 1247 0200 D31A subs r3, r2, r3 1248 .loc 1 1138 12 discriminator 1 1249 0202 3A68 ldr r2, [r7] 1250 0204 9A42 cmp r2, r3 1251 0206 03D8 bhi .L70 1252 .loc 1 1138 56 discriminator 1 1253 0208 3B68 ldr r3, [r7] 1254 020a B3F1FF3F cmp r3, #-1 1255 020e 02D1 bne .L71 1256 .L70: 1257 .loc 1 1138 87 discriminator 3 1258 0210 3B68 ldr r3, [r7] 1259 0212 002B cmp r3, #0 1260 0214 06D1 bne .L67 1261 .L71: ARM GAS /tmp/ccs34gJO.s page 43 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1262 .loc 1 1140 21 1263 0216 0323 movs r3, #3 1264 0218 FB75 strb r3, [r7, #23] 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1265 .loc 1 1141 23 1266 021a FB68 ldr r3, [r7, #12] 1267 021c 0122 movs r2, #1 1268 021e 83F85D20 strb r2, [r3, #93] 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1269 .loc 1 1142 11 1270 0222 1BE0 b .L49 1271 .L67: 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1272 .loc 1 1126 16 1273 0224 FB68 ldr r3, [r7, #12] 1274 0226 B3F84630 ldrh r3, [r3, #70] @ movhi 1275 022a 9BB2 uxth r3, r3 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1276 .loc 1 1126 30 1277 022c 002B cmp r3, #0 1278 022e C6D1 bne .L72 1279 .L66: 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 **** { 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) ARM GAS /tmp/ccs34gJO.s page 44 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) 1280 .loc 1 1218 7 1281 0230 3A69 ldr r2, [r7, #16] 1282 0232 3968 ldr r1, [r7] 1283 0234 F868 ldr r0, [r7, #12] 1284 0236 FFF7FEFF bl SPI_EndRxTransaction 1285 023a 0346 mov r3, r0 1286 .loc 1 1218 6 discriminator 1 1287 023c 002B cmp r3, #0 1288 023e 02D0 beq .L73 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; 1289 .loc 1 1220 21 1290 0240 FB68 ldr r3, [r7, #12] 1291 0242 2022 movs r2, #32 ARM GAS /tmp/ccs34gJO.s page 45 1292 0244 1A66 str r2, [r3, #96] 1293 .L73: 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); 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) 1294 .loc 1 1232 11 1295 0246 FB68 ldr r3, [r7, #12] 1296 0248 1B6E ldr r3, [r3, #96] 1297 .loc 1 1232 6 1298 024a 002B cmp r3, #0 1299 024c 02D0 beq .L74 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1300 .loc 1 1234 15 1301 024e 0123 movs r3, #1 1302 0250 FB75 strb r3, [r7, #23] 1303 0252 03E0 b .L49 1304 .L74: 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; 1305 .loc 1 1238 17 1306 0254 FB68 ldr r3, [r7, #12] 1307 0256 0122 movs r2, #1 1308 0258 83F85D20 strb r2, [r3, #93] 1309 .L49: 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); 1310 .loc 1 1242 3 1311 025c FB68 ldr r3, [r7, #12] 1312 025e 0022 movs r2, #0 1313 0260 83F85C20 strb r2, [r3, #92] 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 1314 .loc 1 1243 10 1315 0264 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 1316 .L51: 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1317 .loc 1 1244 1 1318 0266 1846 mov r0, r3 1319 0268 1837 adds r7, r7, #24 1320 .cfi_def_cfa_offset 8 1321 026a BD46 mov sp, r7 1322 .cfi_def_cfa_register 13 1323 @ sp needed 1324 026c 80BD pop {r7, pc} ARM GAS /tmp/ccs34gJO.s page 46 1325 .cfi_endproc 1326 .LFE135: 1328 .section .text.HAL_SPI_TransmitReceive,"ax",%progbits 1329 .align 1 1330 .global HAL_SPI_TransmitReceive 1331 .syntax unified 1332 .thumb 1333 .thumb_func 1335 HAL_SPI_TransmitReceive: 1336 .LFB136: 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 **** { 1337 .loc 1 1258 1 1338 .cfi_startproc 1339 @ args = 4, pretend = 0, frame = 40 1340 @ frame_needed = 1, uses_anonymous_args = 0 1341 0000 80B5 push {r7, lr} 1342 .cfi_def_cfa_offset 8 1343 .cfi_offset 7, -8 1344 .cfi_offset 14, -4 1345 0002 8AB0 sub sp, sp, #40 1346 .cfi_def_cfa_offset 48 1347 0004 00AF add r7, sp, #0 1348 .cfi_def_cfa_register 7 1349 0006 F860 str r0, [r7, #12] 1350 0008 B960 str r1, [r7, #8] 1351 000a 7A60 str r2, [r7, #4] 1352 000c 7B80 strh r3, [r7, #2] @ movhi 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; 1353 .loc 1 1273 24 1354 000e 0123 movs r3, #1 ARM GAS /tmp/ccs34gJO.s page 47 1355 0010 7B62 str r3, [r7, #36] 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 1356 .loc 1 1274 24 1357 0012 0023 movs r3, #0 1358 0014 87F82330 strb r3, [r7, #35] 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); 1359 .loc 1 1280 3 1360 0018 FB68 ldr r3, [r7, #12] 1361 001a 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 1362 001e 012B cmp r3, #1 1363 0020 01D1 bne .L76 1364 .loc 1 1280 3 is_stmt 0 discriminator 1 1365 0022 0223 movs r3, #2 1366 .loc 1 1280 3 1367 0024 0AE2 b .L77 1368 .L76: 1369 .loc 1 1280 3 discriminator 2 1370 0026 FB68 ldr r3, [r7, #12] 1371 0028 0122 movs r2, #1 1372 002a 83F85C20 strb r2, [r3, #92] 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(); 1373 .loc 1 1283 15 is_stmt 1 1374 002e FFF7FEFF bl HAL_GetTick 1375 0032 F861 str r0, [r7, #28] 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 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; 1376 .loc 1 1286 23 1377 0034 FB68 ldr r3, [r7, #12] 1378 0036 93F85D30 ldrb r3, [r3, #93] 1379 003a FB76 strb r3, [r7, #27] 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 1380 .loc 1 1287 23 1381 003c FB68 ldr r3, [r7, #12] 1382 003e 5B68 ldr r3, [r3, #4] 1383 0040 7B61 str r3, [r7, #20] 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_TxXferCount = Size; 1384 .loc 1 1288 23 1385 0042 7B88 ldrh r3, [r7, #2] @ movhi 1386 0044 7B82 strh r3, [r7, #18] @ movhi 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** initial_RxXferCount = Size; 1387 .loc 1 1289 23 1388 0046 7B88 ldrh r3, [r7, #2] @ movhi 1389 0048 3B82 strh r3, [r7, #16] @ movhi 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) || \ ARM GAS /tmp/ccs34gJO.s page 48 1390 .loc 1 1295 6 1391 004a FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 1392 004c 012B cmp r3, #1 1393 004e 0ED0 beq .L78 1394 .loc 1 1295 7 discriminator 1 1395 0050 7B69 ldr r3, [r7, #20] 1396 0052 B3F5827F cmp r3, #260 1397 0056 06D1 bne .L79 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 1398 .loc 1 1296 54 1399 0058 FB68 ldr r3, [r7, #12] 1400 005a 9B68 ldr r3, [r3, #8] 1401 .loc 1 1296 40 1402 005c 002B cmp r3, #0 1403 005e 02D1 bne .L79 1404 .loc 1 1296 90 discriminator 1 1405 0060 FB7E ldrb r3, [r7, #27] @ zero_extendqisi2 1406 0062 042B cmp r3, #4 1407 0064 03D0 beq .L78 1408 .L79: 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 1409 .loc 1 1298 15 1410 0066 0223 movs r3, #2 1411 0068 87F82330 strb r3, [r7, #35] 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1412 .loc 1 1299 5 1413 006c E0E1 b .L80 1414 .L78: 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)) 1415 .loc 1 1302 6 1416 006e BB68 ldr r3, [r7, #8] 1417 0070 002B cmp r3, #0 1418 0072 05D0 beq .L81 1419 .loc 1 1302 25 discriminator 1 1420 0074 7B68 ldr r3, [r7, #4] 1421 0076 002B cmp r3, #0 1422 0078 02D0 beq .L81 1423 .loc 1 1302 46 discriminator 2 1424 007a 7B88 ldrh r3, [r7, #2] 1425 007c 002B cmp r3, #0 1426 007e 03D1 bne .L82 1427 .L81: 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1428 .loc 1 1304 15 1429 0080 0123 movs r3, #1 1430 0082 87F82330 strb r3, [r7, #35] 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1431 .loc 1 1305 5 1432 0086 D3E1 b .L80 1433 .L82: 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 */ ARM GAS /tmp/ccs34gJO.s page 49 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 1434 .loc 1 1309 11 1435 0088 FB68 ldr r3, [r7, #12] 1436 008a 93F85D30 ldrb r3, [r3, #93] 1437 008e DBB2 uxtb r3, r3 1438 .loc 1 1309 6 1439 0090 042B cmp r3, #4 1440 0092 03D0 beq .L83 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; 1441 .loc 1 1311 17 1442 0094 FB68 ldr r3, [r7, #12] 1443 0096 0522 movs r2, #5 1444 0098 83F85D20 strb r2, [r3, #93] 1445 .L83: 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; 1446 .loc 1 1315 21 1447 009c FB68 ldr r3, [r7, #12] 1448 009e 0022 movs r2, #0 1449 00a0 1A66 str r2, [r3, #96] 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 1450 .loc 1 1316 21 1451 00a2 FB68 ldr r3, [r7, #12] 1452 00a4 7A68 ldr r2, [r7, #4] 1453 00a6 1A64 str r2, [r3, #64] 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 1454 .loc 1 1317 21 1455 00a8 FB68 ldr r3, [r7, #12] 1456 00aa 7A88 ldrh r2, [r7, #2] @ movhi 1457 00ac A3F84620 strh r2, [r3, #70] @ movhi 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 1458 .loc 1 1318 21 1459 00b0 FB68 ldr r3, [r7, #12] 1460 00b2 7A88 ldrh r2, [r7, #2] @ movhi 1461 00b4 A3F84420 strh r2, [r3, #68] @ movhi 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 1462 .loc 1 1319 21 1463 00b8 FB68 ldr r3, [r7, #12] 1464 00ba BA68 ldr r2, [r7, #8] 1465 00bc 9A63 str r2, [r3, #56] 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 1466 .loc 1 1320 21 1467 00be FB68 ldr r3, [r7, #12] 1468 00c0 7A88 ldrh r2, [r7, #2] @ movhi 1469 00c2 DA87 strh r2, [r3, #62] @ movhi 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 1470 .loc 1 1321 21 1471 00c4 FB68 ldr r3, [r7, #12] 1472 00c6 7A88 ldrh r2, [r7, #2] @ movhi 1473 00c8 9A87 strh r2, [r3, #60] @ movhi 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; 1474 .loc 1 1324 21 ARM GAS /tmp/ccs34gJO.s page 50 1475 00ca FB68 ldr r3, [r7, #12] 1476 00cc 0022 movs r2, #0 1477 00ce DA64 str r2, [r3, #76] 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 1478 .loc 1 1325 21 1479 00d0 FB68 ldr r3, [r7, #12] 1480 00d2 0022 movs r2, #0 1481 00d4 1A65 str r2, [r3, #80] 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)) 1482 .loc 1 1336 18 1483 00d6 FB68 ldr r3, [r7, #12] 1484 00d8 DB68 ldr r3, [r3, #12] 1485 .loc 1 1336 6 1486 00da B3F5E06F cmp r3, #1792 1487 00de 02D8 bhi .L84 1488 .loc 1 1336 49 discriminator 1 1489 00e0 3B8A ldrh r3, [r7, #16] 1490 00e2 012B cmp r3, #1 1491 00e4 08D9 bls .L85 1492 .L84: 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); 1493 .loc 1 1339 5 1494 00e6 FB68 ldr r3, [r7, #12] 1495 00e8 1B68 ldr r3, [r3] 1496 00ea 5A68 ldr r2, [r3, #4] 1497 00ec FB68 ldr r3, [r7, #12] 1498 00ee 1B68 ldr r3, [r3] 1499 00f0 22F48052 bic r2, r2, #4096 1500 00f4 5A60 str r2, [r3, #4] 1501 00f6 07E0 b .L86 1502 .L85: 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 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); 1503 .loc 1 1344 5 1504 00f8 FB68 ldr r3, [r7, #12] 1505 00fa 1B68 ldr r3, [r3] 1506 00fc 5A68 ldr r2, [r3, #4] 1507 00fe FB68 ldr r3, [r7, #12] 1508 0100 1B68 ldr r3, [r3] 1509 0102 42F48052 orr r2, r2, #4096 1510 0106 5A60 str r2, [r3, #4] 1511 .L86: ARM GAS /tmp/ccs34gJO.s page 51 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) 1512 .loc 1 1348 12 1513 0108 FB68 ldr r3, [r7, #12] 1514 010a 1B68 ldr r3, [r3] 1515 .loc 1 1348 22 1516 010c 1B68 ldr r3, [r3] 1517 .loc 1 1348 28 1518 010e 03F04003 and r3, r3, #64 1519 .loc 1 1348 6 1520 0112 402B cmp r3, #64 1521 0114 07D0 beq .L87 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); 1522 .loc 1 1351 5 1523 0116 FB68 ldr r3, [r7, #12] 1524 0118 1B68 ldr r3, [r3] 1525 011a 1A68 ldr r2, [r3] 1526 011c FB68 ldr r3, [r7, #12] 1527 011e 1B68 ldr r3, [r3] 1528 0120 42F04002 orr r2, r2, #64 1529 0124 1A60 str r2, [r3] 1530 .L87: 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) 1531 .loc 1 1355 17 1532 0126 FB68 ldr r3, [r7, #12] 1533 0128 DB68 ldr r3, [r3, #12] 1534 .loc 1 1355 6 1535 012a B3F5E06F cmp r3, #1792 1536 012e 40F28180 bls .L88 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)) 1537 .loc 1 1357 20 1538 0132 FB68 ldr r3, [r7, #12] 1539 0134 5B68 ldr r3, [r3, #4] 1540 .loc 1 1357 8 1541 0136 002B cmp r3, #0 1542 0138 02D0 beq .L89 1543 .loc 1 1357 45 discriminator 1 1544 013a 7B8A ldrh r3, [r7, #18] 1545 013c 012B cmp r3, #1 1546 013e 6DD1 bne .L91 1547 .L89: 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); 1548 .loc 1 1359 46 1549 0140 FB68 ldr r3, [r7, #12] 1550 0142 9B6B ldr r3, [r3, #56] 1551 .loc 1 1359 28 1552 0144 1A88 ldrh r2, [r3] 1553 .loc 1 1359 11 ARM GAS /tmp/ccs34gJO.s page 52 1554 0146 FB68 ldr r3, [r7, #12] 1555 0148 1B68 ldr r3, [r3] 1556 .loc 1 1359 26 1557 014a DA60 str r2, [r3, #12] 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1558 .loc 1 1360 11 1559 014c FB68 ldr r3, [r7, #12] 1560 014e 9B6B ldr r3, [r3, #56] 1561 .loc 1 1360 24 1562 0150 9A1C adds r2, r3, #2 1563 0152 FB68 ldr r3, [r7, #12] 1564 0154 9A63 str r2, [r3, #56] 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1565 .loc 1 1361 11 1566 0156 FB68 ldr r3, [r7, #12] 1567 0158 DB8F ldrh r3, [r3, #62] @ movhi 1568 015a 9BB2 uxth r3, r3 1569 .loc 1 1361 24 1570 015c 013B subs r3, r3, #1 1571 015e 9AB2 uxth r2, r3 1572 0160 FB68 ldr r3, [r7, #12] 1573 0162 DA87 strh r2, [r3, #62] @ movhi 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1574 .loc 1 1363 11 1575 0164 5AE0 b .L91 1576 .L95: 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1577 .loc 1 1366 12 1578 0166 FB68 ldr r3, [r7, #12] 1579 0168 1B68 ldr r3, [r3] 1580 016a 9B68 ldr r3, [r3, #8] 1581 016c 03F00203 and r3, r3, #2 1582 .loc 1 1366 10 1583 0170 022B cmp r3, #2 1584 0172 1BD1 bne .L92 1585 .loc 1 1366 60 discriminator 1 1586 0174 FB68 ldr r3, [r7, #12] 1587 0176 DB8F ldrh r3, [r3, #62] @ movhi 1588 0178 9BB2 uxth r3, r3 1589 .loc 1 1366 52 discriminator 1 1590 017a 002B cmp r3, #0 1591 017c 16D0 beq .L92 1592 .loc 1 1366 80 discriminator 2 1593 017e 7B6A ldr r3, [r7, #36] 1594 0180 012B cmp r3, #1 1595 0182 13D1 bne .L92 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1596 .loc 1 1368 48 1597 0184 FB68 ldr r3, [r7, #12] 1598 0186 9B6B ldr r3, [r3, #56] 1599 .loc 1 1368 30 1600 0188 1A88 ldrh r2, [r3] 1601 .loc 1 1368 13 ARM GAS /tmp/ccs34gJO.s page 53 1602 018a FB68 ldr r3, [r7, #12] 1603 018c 1B68 ldr r3, [r3] 1604 .loc 1 1368 28 1605 018e DA60 str r2, [r3, #12] 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1606 .loc 1 1369 13 1607 0190 FB68 ldr r3, [r7, #12] 1608 0192 9B6B ldr r3, [r3, #56] 1609 .loc 1 1369 26 1610 0194 9A1C adds r2, r3, #2 1611 0196 FB68 ldr r3, [r7, #12] 1612 0198 9A63 str r2, [r3, #56] 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1613 .loc 1 1370 13 1614 019a FB68 ldr r3, [r7, #12] 1615 019c DB8F ldrh r3, [r3, #62] @ movhi 1616 019e 9BB2 uxth r3, r3 1617 .loc 1 1370 26 1618 01a0 013B subs r3, r3, #1 1619 01a2 9AB2 uxth r2, r3 1620 01a4 FB68 ldr r3, [r7, #12] 1621 01a6 DA87 strh r2, [r3, #62] @ movhi 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1622 .loc 1 1372 19 1623 01a8 0023 movs r3, #0 1624 01aa 7B62 str r3, [r7, #36] 1625 .L92: 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((READ_BIT(spi_cr1, SPI_CR1_MSTR) == 0U) && (READ_BIT(spi_cr2, SPI_CR2_NSSP) == SPI_CR 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNE flag */ 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1626 .loc 1 1389 12 1627 01ac FB68 ldr r3, [r7, #12] 1628 01ae 1B68 ldr r3, [r3] 1629 01b0 9B68 ldr r3, [r3, #8] 1630 01b2 03F00103 and r3, r3, #1 1631 .loc 1 1389 10 1632 01b6 012B cmp r3, #1 1633 01b8 1CD1 bne .L93 1634 .loc 1 1389 61 discriminator 1 1635 01ba FB68 ldr r3, [r7, #12] 1636 01bc B3F84630 ldrh r3, [r3, #70] @ movhi 1637 01c0 9BB2 uxth r3, r3 ARM GAS /tmp/ccs34gJO.s page 54 1638 .loc 1 1389 53 discriminator 1 1639 01c2 002B cmp r3, #0 1640 01c4 16D0 beq .L93 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1641 .loc 1 1391 57 1642 01c6 FB68 ldr r3, [r7, #12] 1643 01c8 1B68 ldr r3, [r3] 1644 .loc 1 1391 67 1645 01ca DA68 ldr r2, [r3, #12] 1646 .loc 1 1391 27 1647 01cc FB68 ldr r3, [r7, #12] 1648 01ce 1B6C ldr r3, [r3, #64] 1649 .loc 1 1391 43 1650 01d0 92B2 uxth r2, r2 1651 .loc 1 1391 41 1652 01d2 1A80 strh r2, [r3] @ movhi 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1653 .loc 1 1392 13 1654 01d4 FB68 ldr r3, [r7, #12] 1655 01d6 1B6C ldr r3, [r3, #64] 1656 .loc 1 1392 26 1657 01d8 9A1C adds r2, r3, #2 1658 01da FB68 ldr r3, [r7, #12] 1659 01dc 1A64 str r2, [r3, #64] 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1660 .loc 1 1393 13 1661 01de FB68 ldr r3, [r7, #12] 1662 01e0 B3F84630 ldrh r3, [r3, #70] @ movhi 1663 01e4 9BB2 uxth r3, r3 1664 .loc 1 1393 26 1665 01e6 013B subs r3, r3, #1 1666 01e8 9AB2 uxth r2, r3 1667 01ea FB68 ldr r3, [r7, #12] 1668 01ec A3F84620 strh r2, [r3, #70] @ movhi 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1669 .loc 1 1395 19 1670 01f0 0123 movs r3, #1 1671 01f2 7B62 str r3, [r7, #36] 1672 .L93: 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tickstart) >= Timeout) && (Timeout != HAL_MAX_DELAY)) 1673 .loc 1 1397 13 1674 01f4 FFF7FEFF bl HAL_GetTick 1675 01f8 0246 mov r2, r0 1676 .loc 1 1397 27 discriminator 1 1677 01fa FB69 ldr r3, [r7, #28] 1678 01fc D31A subs r3, r2, r3 1679 .loc 1 1397 10 discriminator 1 1680 01fe 3A6B ldr r2, [r7, #48] 1681 0200 9A42 cmp r2, r3 1682 0202 0BD8 bhi .L91 1683 .loc 1 1397 53 discriminator 1 1684 0204 3B6B ldr r3, [r7, #48] 1685 0206 B3F1FF3F cmp r3, #-1 1686 020a 07D0 beq .L91 ARM GAS /tmp/ccs34gJO.s page 55 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1687 .loc 1 1399 19 1688 020c 0323 movs r3, #3 1689 020e 87F82330 strb r3, [r7, #35] 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 1690 .loc 1 1400 21 1691 0212 FB68 ldr r3, [r7, #12] 1692 0214 0122 movs r2, #1 1693 0216 83F85D20 strb r2, [r3, #93] 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1694 .loc 1 1401 9 1695 021a 09E1 b .L80 1696 .L91: 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1697 .loc 1 1363 17 1698 021c FB68 ldr r3, [r7, #12] 1699 021e DB8F ldrh r3, [r3, #62] @ movhi 1700 0220 9BB2 uxth r3, r3 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1701 .loc 1 1363 37 1702 0222 002B cmp r3, #0 1703 0224 9FD1 bne .L95 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1704 .loc 1 1363 45 discriminator 1 1705 0226 FB68 ldr r3, [r7, #12] 1706 0228 B3F84630 ldrh r3, [r3, #70] @ movhi 1707 022c 9BB2 uxth r3, r3 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1708 .loc 1 1363 37 discriminator 1 1709 022e 002B cmp r3, #0 1710 0230 99D1 bne .L95 1711 0232 E3E0 b .L96 1712 .L88: 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit and Receive data in 8 Bit mode */ 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_SLAVE) || (initial_TxXferCount == 0x01U)) 1713 .loc 1 1408 20 1714 0234 FB68 ldr r3, [r7, #12] 1715 0236 5B68 ldr r3, [r3, #4] 1716 .loc 1 1408 8 1717 0238 002B cmp r3, #0 1718 023a 03D0 beq .L97 1719 .loc 1 1408 45 discriminator 1 1720 023c 7B8A ldrh r3, [r7, #18] 1721 023e 012B cmp r3, #1 1722 0240 40F0CF80 bne .L100 1723 .L97: 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1724 .loc 1 1410 15 1725 0244 FB68 ldr r3, [r7, #12] 1726 0246 DB8F ldrh r3, [r3, #62] @ movhi ARM GAS /tmp/ccs34gJO.s page 56 1727 0248 9BB2 uxth r3, r3 1728 .loc 1 1410 10 1729 024a 012B cmp r3, #1 1730 024c 12D9 bls .L99 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1731 .loc 1 1412 48 1732 024e FB68 ldr r3, [r7, #12] 1733 0250 9B6B ldr r3, [r3, #56] 1734 .loc 1 1412 30 1735 0252 1A88 ldrh r2, [r3] 1736 .loc 1 1412 13 1737 0254 FB68 ldr r3, [r7, #12] 1738 0256 1B68 ldr r3, [r3] 1739 .loc 1 1412 28 1740 0258 DA60 str r2, [r3, #12] 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1741 .loc 1 1413 13 1742 025a FB68 ldr r3, [r7, #12] 1743 025c 9B6B ldr r3, [r3, #56] 1744 .loc 1 1413 26 1745 025e 9A1C adds r2, r3, #2 1746 0260 FB68 ldr r3, [r7, #12] 1747 0262 9A63 str r2, [r3, #56] 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1748 .loc 1 1414 13 1749 0264 FB68 ldr r3, [r7, #12] 1750 0266 DB8F ldrh r3, [r3, #62] @ movhi 1751 0268 9BB2 uxth r3, r3 1752 .loc 1 1414 27 1753 026a 023B subs r3, r3, #2 1754 026c 9AB2 uxth r2, r3 1755 026e FB68 ldr r3, [r7, #12] 1756 0270 DA87 strh r2, [r3, #62] @ movhi 1757 0272 B6E0 b .L100 1758 .L99: 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1759 .loc 1 1418 54 1760 0274 FB68 ldr r3, [r7, #12] 1761 0276 9A6B ldr r2, [r3, #56] 1762 .loc 1 1418 31 1763 0278 FB68 ldr r3, [r7, #12] 1764 027a 1B68 ldr r3, [r3] 1765 .loc 1 1418 26 1766 027c 0C33 adds r3, r3, #12 1767 .loc 1 1418 49 1768 027e 1278 ldrb r2, [r2] @ zero_extendqisi2 1769 .loc 1 1418 46 1770 0280 1A70 strb r2, [r3] 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1771 .loc 1 1419 13 1772 0282 FB68 ldr r3, [r7, #12] 1773 0284 9B6B ldr r3, [r3, #56] 1774 .loc 1 1419 25 ARM GAS /tmp/ccs34gJO.s page 57 1775 0286 5A1C adds r2, r3, #1 1776 0288 FB68 ldr r3, [r7, #12] 1777 028a 9A63 str r2, [r3, #56] 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1778 .loc 1 1420 13 1779 028c FB68 ldr r3, [r7, #12] 1780 028e DB8F ldrh r3, [r3, #62] @ movhi 1781 0290 9BB2 uxth r3, r3 1782 .loc 1 1420 26 1783 0292 013B subs r3, r3, #1 1784 0294 9AB2 uxth r2, r3 1785 0296 FB68 ldr r3, [r7, #12] 1786 0298 DA87 strh r2, [r3, #62] @ movhi 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U)) 1787 .loc 1 1423 11 1788 029a A2E0 b .L100 1789 .L109: 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXE flag */ 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_TXE)) && (hspi->TxXferCount > 0U) && (txallowed == 1U) 1790 .loc 1 1426 12 1791 029c FB68 ldr r3, [r7, #12] 1792 029e 1B68 ldr r3, [r3] 1793 02a0 9B68 ldr r3, [r3, #8] 1794 02a2 03F00203 and r3, r3, #2 1795 .loc 1 1426 10 1796 02a6 022B cmp r3, #2 1797 02a8 34D1 bne .L101 1798 .loc 1 1426 60 discriminator 1 1799 02aa FB68 ldr r3, [r7, #12] 1800 02ac DB8F ldrh r3, [r3, #62] @ movhi 1801 02ae 9BB2 uxth r3, r3 1802 .loc 1 1426 52 discriminator 1 1803 02b0 002B cmp r3, #0 1804 02b2 2FD0 beq .L101 1805 .loc 1 1426 80 discriminator 2 1806 02b4 7B6A ldr r3, [r7, #36] 1807 02b6 012B cmp r3, #1 1808 02b8 2CD1 bne .L101 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount > 1U) 1809 .loc 1 1428 17 1810 02ba FB68 ldr r3, [r7, #12] 1811 02bc DB8F ldrh r3, [r3, #62] @ movhi 1812 02be 9BB2 uxth r3, r3 1813 .loc 1 1428 12 1814 02c0 012B cmp r3, #1 1815 02c2 12D9 bls .L102 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 1816 .loc 1 1430 50 1817 02c4 FB68 ldr r3, [r7, #12] 1818 02c6 9B6B ldr r3, [r3, #56] 1819 .loc 1 1430 32 1820 02c8 1A88 ldrh r2, [r3] ARM GAS /tmp/ccs34gJO.s page 58 1821 .loc 1 1430 15 1822 02ca FB68 ldr r3, [r7, #12] 1823 02cc 1B68 ldr r3, [r3] 1824 .loc 1 1430 30 1825 02ce DA60 str r2, [r3, #12] 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 1826 .loc 1 1431 15 1827 02d0 FB68 ldr r3, [r7, #12] 1828 02d2 9B6B ldr r3, [r3, #56] 1829 .loc 1 1431 28 1830 02d4 9A1C adds r2, r3, #2 1831 02d6 FB68 ldr r3, [r7, #12] 1832 02d8 9A63 str r2, [r3, #56] 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; 1833 .loc 1 1432 15 1834 02da FB68 ldr r3, [r7, #12] 1835 02dc DB8F ldrh r3, [r3, #62] @ movhi 1836 02de 9BB2 uxth r3, r3 1837 .loc 1 1432 29 1838 02e0 023B subs r3, r3, #2 1839 02e2 9AB2 uxth r2, r3 1840 02e4 FB68 ldr r3, [r7, #12] 1841 02e6 DA87 strh r2, [r3, #62] @ movhi 1842 02e8 12E0 b .L103 1843 .L102: 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 1844 .loc 1 1436 56 1845 02ea FB68 ldr r3, [r7, #12] 1846 02ec 9A6B ldr r2, [r3, #56] 1847 .loc 1 1436 33 1848 02ee FB68 ldr r3, [r7, #12] 1849 02f0 1B68 ldr r3, [r3] 1850 .loc 1 1436 28 1851 02f2 0C33 adds r3, r3, #12 1852 .loc 1 1436 51 1853 02f4 1278 ldrb r2, [r2] @ zero_extendqisi2 1854 .loc 1 1436 48 1855 02f6 1A70 strb r2, [r3] 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 1856 .loc 1 1437 15 1857 02f8 FB68 ldr r3, [r7, #12] 1858 02fa 9B6B ldr r3, [r3, #56] 1859 .loc 1 1437 27 1860 02fc 5A1C adds r2, r3, #1 1861 02fe FB68 ldr r3, [r7, #12] 1862 0300 9A63 str r2, [r3, #56] 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 1863 .loc 1 1438 15 1864 0302 FB68 ldr r3, [r7, #12] 1865 0304 DB8F ldrh r3, [r3, #62] @ movhi 1866 0306 9BB2 uxth r3, r3 1867 .loc 1 1438 28 1868 0308 013B subs r3, r3, #1 1869 030a 9AB2 uxth r2, r3 ARM GAS /tmp/ccs34gJO.s page 59 1870 030c FB68 ldr r3, [r7, #12] 1871 030e DA87 strh r2, [r3, #62] @ movhi 1872 .L103: 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a reception (Rx). Tx not allowed */ 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 0U; 1873 .loc 1 1441 19 1874 0310 0023 movs r3, #0 1875 0312 7B62 str r3, [r7, #36] 1876 .L101: 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount == 0U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set NSS Soft to received correctly the CRC on slave mode with NSS pulse activated */ 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((READ_BIT(spi_cr1, SPI_CR1_MSTR) == 0U) && (READ_BIT(spi_cr2, SPI_CR2_NSSP) == SPI_CR 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_SSM); 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag is reset */ 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE)) && (hspi->RxXferCount > 0U)) 1877 .loc 1 1458 12 1878 0314 FB68 ldr r3, [r7, #12] 1879 0316 1B68 ldr r3, [r3] 1880 0318 9B68 ldr r3, [r3, #8] 1881 031a 03F00103 and r3, r3, #1 1882 .loc 1 1458 10 1883 031e 012B cmp r3, #1 1884 0320 48D1 bne .L104 1885 .loc 1 1458 61 discriminator 1 1886 0322 FB68 ldr r3, [r7, #12] 1887 0324 B3F84630 ldrh r3, [r3, #70] @ movhi 1888 0328 9BB2 uxth r3, r3 1889 .loc 1 1458 53 discriminator 1 1890 032a 002B cmp r3, #0 1891 032c 42D0 beq .L104 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 1892 .loc 1 1460 17 1893 032e FB68 ldr r3, [r7, #12] 1894 0330 B3F84630 ldrh r3, [r3, #70] @ movhi 1895 0334 9BB2 uxth r3, r3 1896 .loc 1 1460 12 1897 0336 012B cmp r3, #1 1898 0338 23D9 bls .L105 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)hspi->Instance->DR; 1899 .loc 1 1462 59 1900 033a FB68 ldr r3, [r7, #12] 1901 033c 1B68 ldr r3, [r3] 1902 .loc 1 1462 69 ARM GAS /tmp/ccs34gJO.s page 60 1903 033e DA68 ldr r2, [r3, #12] 1904 .loc 1 1462 29 1905 0340 FB68 ldr r3, [r7, #12] 1906 0342 1B6C ldr r3, [r3, #64] 1907 .loc 1 1462 45 1908 0344 92B2 uxth r2, r2 1909 .loc 1 1462 43 1910 0346 1A80 strh r2, [r3] @ movhi 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 1911 .loc 1 1463 15 1912 0348 FB68 ldr r3, [r7, #12] 1913 034a 1B6C ldr r3, [r3, #64] 1914 .loc 1 1463 28 1915 034c 9A1C adds r2, r3, #2 1916 034e FB68 ldr r3, [r7, #12] 1917 0350 1A64 str r2, [r3, #64] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 1918 .loc 1 1464 15 1919 0352 FB68 ldr r3, [r7, #12] 1920 0354 B3F84630 ldrh r3, [r3, #70] @ movhi 1921 0358 9BB2 uxth r3, r3 1922 .loc 1 1464 29 1923 035a 023B subs r3, r3, #2 1924 035c 9AB2 uxth r2, r3 1925 035e FB68 ldr r3, [r7, #12] 1926 0360 A3F84620 strh r2, [r3, #70] @ movhi 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount <= 1U) 1927 .loc 1 1465 19 1928 0364 FB68 ldr r3, [r7, #12] 1929 0366 B3F84630 ldrh r3, [r3, #70] @ movhi 1930 036a 9BB2 uxth r3, r3 1931 .loc 1 1465 14 1932 036c 012B cmp r3, #1 1933 036e 1FD8 bhi .L106 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold before to switch on 8 bit data size */ 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 1934 .loc 1 1468 13 1935 0370 FB68 ldr r3, [r7, #12] 1936 0372 1B68 ldr r3, [r3] 1937 0374 5A68 ldr r2, [r3, #4] 1938 0376 FB68 ldr r3, [r7, #12] 1939 0378 1B68 ldr r3, [r3] 1940 037a 42F48052 orr r2, r2, #4096 1941 037e 5A60 str r2, [r3, #4] 1942 0380 16E0 b .L106 1943 .L105: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (*(uint8_t *)hspi->pRxBuffPtr) = *(__IO uint8_t *)&hspi->Instance->DR; 1944 .loc 1 1473 66 1945 0382 FB68 ldr r3, [r7, #12] 1946 0384 1B68 ldr r3, [r3] 1947 .loc 1 1473 61 1948 0386 03F10C02 add r2, r3, #12 ARM GAS /tmp/ccs34gJO.s page 61 1949 .loc 1 1473 28 1950 038a FB68 ldr r3, [r7, #12] 1951 038c 1B6C ldr r3, [r3, #64] 1952 .loc 1 1473 44 1953 038e 1278 ldrb r2, [r2] 1954 0390 D2B2 uxtb r2, r2 1955 .loc 1 1473 42 1956 0392 1A70 strb r2, [r3] 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 1957 .loc 1 1474 15 1958 0394 FB68 ldr r3, [r7, #12] 1959 0396 1B6C ldr r3, [r3, #64] 1960 .loc 1 1474 27 1961 0398 5A1C adds r2, r3, #1 1962 039a FB68 ldr r3, [r7, #12] 1963 039c 1A64 str r2, [r3, #64] 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 1964 .loc 1 1475 15 1965 039e FB68 ldr r3, [r7, #12] 1966 03a0 B3F84630 ldrh r3, [r3, #70] @ movhi 1967 03a4 9BB2 uxth r3, r3 1968 .loc 1 1475 28 1969 03a6 013B subs r3, r3, #1 1970 03a8 9AB2 uxth r2, r3 1971 03aa FB68 ldr r3, [r7, #12] 1972 03ac A3F84620 strh r2, [r3, #70] @ movhi 1973 .L106: 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Next Data is a Transmission (Tx). Tx is allowed */ 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** txallowed = 1U; 1974 .loc 1 1478 19 1975 03b0 0123 movs r3, #1 1976 03b2 7B62 str r3, [r7, #36] 1977 .L104: 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((((HAL_GetTick() - tickstart) >= Timeout) && ((Timeout != HAL_MAX_DELAY))) || (Timeout = 1978 .loc 1 1480 14 1979 03b4 FFF7FEFF bl HAL_GetTick 1980 03b8 0246 mov r2, r0 1981 .loc 1 1480 28 discriminator 1 1982 03ba FB69 ldr r3, [r7, #28] 1983 03bc D31A subs r3, r2, r3 1984 .loc 1 1480 10 discriminator 1 1985 03be 3A6B ldr r2, [r7, #48] 1986 03c0 9A42 cmp r2, r3 1987 03c2 03D8 bhi .L107 1988 .loc 1 1480 54 discriminator 1 1989 03c4 3B6B ldr r3, [r7, #48] 1990 03c6 B3F1FF3F cmp r3, #-1 1991 03ca 02D1 bne .L108 1992 .L107: 1993 .loc 1 1480 87 discriminator 3 1994 03cc 3B6B ldr r3, [r7, #48] 1995 03ce 002B cmp r3, #0 1996 03d0 07D1 bne .L100 1997 .L108: 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 62 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1998 .loc 1 1482 19 1999 03d2 0323 movs r3, #3 2000 03d4 87F82330 strb r3, [r7, #35] 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2001 .loc 1 1483 21 2002 03d8 FB68 ldr r3, [r7, #12] 2003 03da 0122 movs r2, #1 2004 03dc 83F85D20 strb r2, [r3, #93] 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2005 .loc 1 1484 9 2006 03e0 26E0 b .L80 2007 .L100: 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2008 .loc 1 1423 17 2009 03e2 FB68 ldr r3, [r7, #12] 2010 03e4 DB8F ldrh r3, [r3, #62] @ movhi 2011 03e6 9BB2 uxth r3, r3 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2012 .loc 1 1423 37 2013 03e8 002B cmp r3, #0 2014 03ea 7FF457AF bne .L109 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2015 .loc 1 1423 45 discriminator 1 2016 03ee FB68 ldr r3, [r7, #12] 2017 03f0 B3F84630 ldrh r3, [r3, #70] @ movhi 2018 03f4 9BB2 uxth r3, r3 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2019 .loc 1 1423 37 discriminator 1 2020 03f6 002B cmp r3, #0 2021 03f8 7FF450AF bne .L109 2022 .L96: 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC from DR to close CRC calculation process */ 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until TXE flag */ 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize == SPI_DATASIZE_16BIT) 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else ARM GAS /tmp/ccs34gJO.s page 63 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, Timeout, tickstart) != HAL_OK) 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_TIMEOUT; 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear CRC Flag */ 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, Timeout, tickstart) != HAL_OK) 2023 .loc 1 1547 7 2024 03fc FA69 ldr r2, [r7, #28] 2025 03fe 396B ldr r1, [r7, #48] 2026 0400 F868 ldr r0, [r7, #12] 2027 0402 FFF7FEFF bl SPI_EndRxTxTransaction 2028 0406 0346 mov r3, r0 2029 .loc 1 1547 6 discriminator 1 2030 0408 002B cmp r3, #0 2031 040a 05D0 beq .L110 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2032 .loc 1 1549 15 2033 040c 0123 movs r3, #1 2034 040e 87F82330 strb r3, [r7, #35] 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 2035 .loc 1 1550 21 2036 0412 FB68 ldr r3, [r7, #12] 2037 0414 2022 movs r2, #32 2038 0416 1A66 str r2, [r3, #96] ARM GAS /tmp/ccs34gJO.s page 64 2039 .L110: 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 2040 .loc 1 1553 11 2041 0418 FB68 ldr r3, [r7, #12] 2042 041a 1B6E ldr r3, [r3, #96] 2043 .loc 1 1553 6 2044 041c 002B cmp r3, #0 2045 041e 03D0 beq .L111 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2046 .loc 1 1555 15 2047 0420 0123 movs r3, #1 2048 0422 87F82330 strb r3, [r7, #35] 2049 0426 03E0 b .L80 2050 .L111: 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 2051 .loc 1 1559 17 2052 0428 FB68 ldr r3, [r7, #12] 2053 042a 0122 movs r2, #1 2054 042c 83F85D20 strb r2, [r3, #93] 2055 .L80: 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2056 .loc 1 1563 3 2057 0430 FB68 ldr r3, [r7, #12] 2058 0432 0022 movs r2, #0 2059 0434 83F85C20 strb r2, [r3, #92] 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2060 .loc 1 1564 10 2061 0438 97F82330 ldrb r3, [r7, #35] @ zero_extendqisi2 2062 .L77: 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2063 .loc 1 1565 1 2064 043c 1846 mov r0, r3 2065 043e 2837 adds r7, r7, #40 2066 .cfi_def_cfa_offset 8 2067 0440 BD46 mov sp, r7 2068 .cfi_def_cfa_register 13 2069 @ sp needed 2070 0442 80BD pop {r7, pc} 2071 .cfi_endproc 2072 .LFE136: 2074 .section .text.HAL_SPI_Transmit_IT,"ax",%progbits 2075 .align 1 2076 .global HAL_SPI_Transmit_IT 2077 .syntax unified 2078 .thumb 2079 .thumb_func 2081 HAL_SPI_Transmit_IT: 2082 .LFB137: ARM GAS /tmp/ccs34gJO.s page 65 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with Interrupt. 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2083 .loc 1 1576 1 2084 .cfi_startproc 2085 @ args = 0, pretend = 0, frame = 24 2086 @ frame_needed = 1, uses_anonymous_args = 0 2087 @ link register save eliminated. 2088 0000 80B4 push {r7} 2089 .cfi_def_cfa_offset 4 2090 .cfi_offset 7, -4 2091 0002 87B0 sub sp, sp, #28 2092 .cfi_def_cfa_offset 32 2093 0004 00AF add r7, sp, #0 2094 .cfi_def_cfa_register 7 2095 0006 F860 str r0, [r7, #12] 2096 0008 B960 str r1, [r7, #8] 2097 000a 1346 mov r3, r2 2098 000c FB80 strh r3, [r7, #6] @ movhi 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2099 .loc 1 1577 21 2100 000e 0023 movs r3, #0 2101 0010 FB75 strb r3, [r7, #23] 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2102 .loc 1 1583 3 2103 0012 FB68 ldr r3, [r7, #12] 2104 0014 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 2105 0018 012B cmp r3, #1 2106 001a 01D1 bne .L113 2107 .loc 1 1583 3 is_stmt 0 discriminator 1 2108 001c 0223 movs r3, #2 2109 .loc 1 1583 3 2110 001e 72E0 b .L114 2111 .L113: 2112 .loc 1 1583 3 discriminator 2 2113 0020 FB68 ldr r3, [r7, #12] 2114 0022 0122 movs r2, #1 2115 0024 83F85C20 strb r2, [r3, #92] 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2116 .loc 1 1585 6 is_stmt 1 2117 0028 BB68 ldr r3, [r7, #8] 2118 002a 002B cmp r3, #0 2119 002c 02D0 beq .L115 ARM GAS /tmp/ccs34gJO.s page 66 2120 .loc 1 1585 23 discriminator 1 2121 002e FB88 ldrh r3, [r7, #6] 2122 0030 002B cmp r3, #0 2123 0032 02D1 bne .L116 2124 .L115: 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2125 .loc 1 1587 15 2126 0034 0123 movs r3, #1 2127 0036 FB75 strb r3, [r7, #23] 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2128 .loc 1 1588 5 2129 0038 60E0 b .L117 2130 .L116: 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2131 .loc 1 1591 11 2132 003a FB68 ldr r3, [r7, #12] 2133 003c 93F85D30 ldrb r3, [r3, #93] 2134 0040 DBB2 uxtb r3, r3 2135 .loc 1 1591 6 2136 0042 012B cmp r3, #1 2137 0044 02D0 beq .L118 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2138 .loc 1 1593 15 2139 0046 0223 movs r3, #2 2140 0048 FB75 strb r3, [r7, #23] 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2141 .loc 1 1594 5 2142 004a 57E0 b .L117 2143 .L118: 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 2144 .loc 1 1598 21 2145 004c FB68 ldr r3, [r7, #12] 2146 004e 0322 movs r2, #3 2147 0050 83F85D20 strb r2, [r3, #93] 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2148 .loc 1 1599 21 2149 0054 FB68 ldr r3, [r7, #12] 2150 0056 0022 movs r2, #0 2151 0058 1A66 str r2, [r3, #96] 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2152 .loc 1 1600 21 2153 005a FB68 ldr r3, [r7, #12] 2154 005c BA68 ldr r2, [r7, #8] 2155 005e 9A63 str r2, [r3, #56] 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2156 .loc 1 1601 21 2157 0060 FB68 ldr r3, [r7, #12] 2158 0062 FA88 ldrh r2, [r7, #6] @ movhi 2159 0064 9A87 strh r2, [r3, #60] @ movhi 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; ARM GAS /tmp/ccs34gJO.s page 67 2160 .loc 1 1602 21 2161 0066 FB68 ldr r3, [r7, #12] 2162 0068 FA88 ldrh r2, [r7, #6] @ movhi 2163 006a DA87 strh r2, [r3, #62] @ movhi 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 2164 .loc 1 1605 21 2165 006c FB68 ldr r3, [r7, #12] 2166 006e 0022 movs r2, #0 2167 0070 1A64 str r2, [r3, #64] 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2168 .loc 1 1606 21 2169 0072 FB68 ldr r3, [r7, #12] 2170 0074 0022 movs r2, #0 2171 0076 A3F84420 strh r2, [r3, #68] @ movhi 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2172 .loc 1 1607 21 2173 007a FB68 ldr r3, [r7, #12] 2174 007c 0022 movs r2, #0 2175 007e A3F84620 strh r2, [r3, #70] @ movhi 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2176 .loc 1 1608 21 2177 0082 FB68 ldr r3, [r7, #12] 2178 0084 0022 movs r2, #0 2179 0086 DA64 str r2, [r3, #76] 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2180 .loc 1 1611 17 2181 0088 FB68 ldr r3, [r7, #12] 2182 008a DB68 ldr r3, [r3, #12] 2183 .loc 1 1611 6 2184 008c B3F5E06F cmp r3, #1792 2185 0090 03D9 bls .L119 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_16BIT; 2186 .loc 1 1613 17 2187 0092 FB68 ldr r3, [r7, #12] 2188 0094 1F4A ldr r2, .L123 2189 0096 1A65 str r2, [r3, #80] 2190 0098 02E0 b .L120 2191 .L119: 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_TxISR_8BIT; 2192 .loc 1 1617 17 2193 009a FB68 ldr r3, [r7, #12] 2194 009c 1E4A ldr r2, .L123+4 2195 009e 1A65 str r2, [r3, #80] 2196 .L120: 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2197 .loc 1 1621 17 ARM GAS /tmp/ccs34gJO.s page 68 2198 00a0 FB68 ldr r3, [r7, #12] 2199 00a2 9B68 ldr r3, [r3, #8] 2200 .loc 1 1621 6 2201 00a4 B3F5004F cmp r3, #32768 2202 00a8 0FD1 bne .L121 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2203 .loc 1 1624 5 2204 00aa FB68 ldr r3, [r7, #12] 2205 00ac 1B68 ldr r3, [r3] 2206 00ae 1A68 ldr r2, [r3] 2207 00b0 FB68 ldr r3, [r7, #12] 2208 00b2 1B68 ldr r3, [r3] 2209 00b4 22F04002 bic r2, r2, #64 2210 00b8 1A60 str r2, [r3] 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2211 .loc 1 1625 5 2212 00ba FB68 ldr r3, [r7, #12] 2213 00bc 1B68 ldr r3, [r3] 2214 00be 1A68 ldr r2, [r3] 2215 00c0 FB68 ldr r3, [r7, #12] 2216 00c2 1B68 ldr r3, [r3] 2217 00c4 42F48042 orr r2, r2, #16384 2218 00c8 1A60 str r2, [r3] 2219 .L121: 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 2220 .loc 1 1637 3 2221 00ca FB68 ldr r3, [r7, #12] 2222 00cc 1B68 ldr r3, [r3] 2223 00ce 5A68 ldr r2, [r3, #4] 2224 00d0 FB68 ldr r3, [r7, #12] 2225 00d2 1B68 ldr r3, [r3] 2226 00d4 42F0A002 orr r2, r2, #160 2227 00d8 5A60 str r2, [r3, #4] 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2228 .loc 1 1641 12 2229 00da FB68 ldr r3, [r7, #12] 2230 00dc 1B68 ldr r3, [r3] 2231 .loc 1 1641 22 2232 00de 1B68 ldr r3, [r3] 2233 .loc 1 1641 28 2234 00e0 03F04003 and r3, r3, #64 ARM GAS /tmp/ccs34gJO.s page 69 2235 .loc 1 1641 6 2236 00e4 402B cmp r3, #64 2237 00e6 08D0 beq .L122 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2238 .loc 1 1644 5 2239 00e8 FB68 ldr r3, [r7, #12] 2240 00ea 1B68 ldr r3, [r3] 2241 00ec 1A68 ldr r2, [r3] 2242 00ee FB68 ldr r3, [r7, #12] 2243 00f0 1B68 ldr r3, [r3] 2244 00f2 42F04002 orr r2, r2, #64 2245 00f6 1A60 str r2, [r3] 2246 00f8 00E0 b .L117 2247 .L122: 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2248 .loc 1 1647 1 2249 00fa 00BF nop 2250 .L117: 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2251 .loc 1 1648 3 2252 00fc FB68 ldr r3, [r7, #12] 2253 00fe 0022 movs r2, #0 2254 0100 83F85C20 strb r2, [r3, #92] 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2255 .loc 1 1649 10 2256 0104 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2257 .L114: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2258 .loc 1 1650 1 2259 0106 1846 mov r0, r3 2260 0108 1C37 adds r7, r7, #28 2261 .cfi_def_cfa_offset 4 2262 010a BD46 mov sp, r7 2263 .cfi_def_cfa_register 13 2264 @ sp needed 2265 010c 5DF8047B ldr r7, [sp], #4 2266 .cfi_restore 7 2267 .cfi_def_cfa_offset 0 2268 0110 7047 bx lr 2269 .L124: 2270 0112 00BF .align 2 2271 .L123: 2272 0114 00000000 .word SPI_TxISR_16BIT 2273 0118 00000000 .word SPI_TxISR_8BIT 2274 .cfi_endproc 2275 .LFE137: 2277 .section .text.HAL_SPI_Receive_IT,"ax",%progbits 2278 .align 1 2279 .global HAL_SPI_Receive_IT 2280 .syntax unified 2281 .thumb 2282 .thumb_func 2284 HAL_SPI_Receive_IT: ARM GAS /tmp/ccs34gJO.s page 70 2285 .LFB138: 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with Interrupt. 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2286 .loc 1 1661 1 2287 .cfi_startproc 2288 @ args = 0, pretend = 0, frame = 24 2289 @ frame_needed = 1, uses_anonymous_args = 0 2290 0000 80B5 push {r7, lr} 2291 .cfi_def_cfa_offset 8 2292 .cfi_offset 7, -8 2293 .cfi_offset 14, -4 2294 0002 86B0 sub sp, sp, #24 2295 .cfi_def_cfa_offset 32 2296 0004 00AF add r7, sp, #0 2297 .cfi_def_cfa_register 7 2298 0006 F860 str r0, [r7, #12] 2299 0008 B960 str r1, [r7, #8] 2300 000a 1346 mov r3, r2 2301 000c FB80 strh r3, [r7, #6] @ movhi 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2302 .loc 1 1662 21 2303 000e 0023 movs r3, #0 2304 0010 FB75 strb r3, [r7, #23] 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2305 .loc 1 1665 11 2306 0012 FB68 ldr r3, [r7, #12] 2307 0014 93F85D30 ldrb r3, [r3, #93] 2308 0018 DBB2 uxtb r3, r3 2309 .loc 1 1665 6 2310 001a 012B cmp r3, #1 2311 001c 02D0 beq .L126 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2312 .loc 1 1667 15 2313 001e 0223 movs r3, #2 2314 0020 FB75 strb r3, [r7, #23] 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2315 .loc 1 1668 5 2316 0022 90E0 b .L127 2317 .L126: 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 2318 .loc 1 1671 18 2319 0024 FB68 ldr r3, [r7, #12] 2320 0026 9B68 ldr r3, [r3, #8] ARM GAS /tmp/ccs34gJO.s page 71 2321 .loc 1 1671 6 2322 0028 002B cmp r3, #0 2323 002a 10D1 bne .L128 2324 .loc 1 1671 68 discriminator 1 2325 002c FB68 ldr r3, [r7, #12] 2326 002e 5B68 ldr r3, [r3, #4] 2327 .loc 1 1671 54 discriminator 1 2328 0030 B3F5827F cmp r3, #260 2329 0034 0BD1 bne .L128 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2330 .loc 1 1673 17 2331 0036 FB68 ldr r3, [r7, #12] 2332 0038 0422 movs r2, #4 2333 003a 83F85D20 strb r2, [r3, #93] 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_IT(hspi, pData, pData, Size); 2334 .loc 1 1675 12 2335 003e FB88 ldrh r3, [r7, #6] 2336 0040 BA68 ldr r2, [r7, #8] 2337 0042 B968 ldr r1, [r7, #8] 2338 0044 F868 ldr r0, [r7, #12] 2339 0046 FFF7FEFF bl HAL_SPI_TransmitReceive_IT 2340 004a 0346 mov r3, r0 2341 004c 80E0 b .L129 2342 .L128: 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2343 .loc 1 1679 3 2344 004e FB68 ldr r3, [r7, #12] 2345 0050 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 2346 0054 012B cmp r3, #1 2347 0056 01D1 bne .L130 2348 .loc 1 1679 3 is_stmt 0 discriminator 1 2349 0058 0223 movs r3, #2 2350 .loc 1 1679 3 2351 005a 79E0 b .L129 2352 .L130: 2353 .loc 1 1679 3 discriminator 2 2354 005c FB68 ldr r3, [r7, #12] 2355 005e 0122 movs r2, #1 2356 0060 83F85C20 strb r2, [r3, #92] 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2357 .loc 1 1681 6 is_stmt 1 2358 0064 BB68 ldr r3, [r7, #8] 2359 0066 002B cmp r3, #0 2360 0068 02D0 beq .L131 2361 .loc 1 1681 23 discriminator 1 2362 006a FB88 ldrh r3, [r7, #6] 2363 006c 002B cmp r3, #0 2364 006e 02D1 bne .L132 2365 .L131: 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; ARM GAS /tmp/ccs34gJO.s page 72 2366 .loc 1 1683 15 2367 0070 0123 movs r3, #1 2368 0072 FB75 strb r3, [r7, #23] 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2369 .loc 1 1684 5 2370 0074 67E0 b .L127 2371 .L132: 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 2372 .loc 1 1688 21 2373 0076 FB68 ldr r3, [r7, #12] 2374 0078 0422 movs r2, #4 2375 007a 83F85D20 strb r2, [r3, #93] 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2376 .loc 1 1689 21 2377 007e FB68 ldr r3, [r7, #12] 2378 0080 0022 movs r2, #0 2379 0082 1A66 str r2, [r3, #96] 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 2380 .loc 1 1690 21 2381 0084 FB68 ldr r3, [r7, #12] 2382 0086 BA68 ldr r2, [r7, #8] 2383 0088 1A64 str r2, [r3, #64] 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2384 .loc 1 1691 21 2385 008a FB68 ldr r3, [r7, #12] 2386 008c FA88 ldrh r2, [r7, #6] @ movhi 2387 008e A3F84420 strh r2, [r3, #68] @ movhi 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2388 .loc 1 1692 21 2389 0092 FB68 ldr r3, [r7, #12] 2390 0094 FA88 ldrh r2, [r7, #6] @ movhi 2391 0096 A3F84620 strh r2, [r3, #70] @ movhi 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)NULL; 2392 .loc 1 1695 21 2393 009a FB68 ldr r3, [r7, #12] 2394 009c 0022 movs r2, #0 2395 009e 9A63 str r2, [r3, #56] 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 2396 .loc 1 1696 21 2397 00a0 FB68 ldr r3, [r7, #12] 2398 00a2 0022 movs r2, #0 2399 00a4 9A87 strh r2, [r3, #60] @ movhi 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 2400 .loc 1 1697 21 2401 00a6 FB68 ldr r3, [r7, #12] 2402 00a8 0022 movs r2, #0 2403 00aa DA87 strh r2, [r3, #62] @ movhi 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2404 .loc 1 1698 21 2405 00ac FB68 ldr r3, [r7, #12] 2406 00ae 0022 movs r2, #0 2407 00b0 1A65 str r2, [r3, #80] ARM GAS /tmp/ccs34gJO.s page 73 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the data size to adapt Rx threshold and the set the function for IT treatment */ 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2408 .loc 1 1701 17 2409 00b2 FB68 ldr r3, [r7, #12] 2410 00b4 DB68 ldr r3, [r3, #12] 2411 .loc 1 1701 6 2412 00b6 B3F5E06F cmp r3, #1792 2413 00ba 0BD9 bls .L133 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2414 .loc 1 1704 5 2415 00bc FB68 ldr r3, [r7, #12] 2416 00be 1B68 ldr r3, [r3] 2417 00c0 5A68 ldr r2, [r3, #4] 2418 00c2 FB68 ldr r3, [r7, #12] 2419 00c4 1B68 ldr r3, [r3] 2420 00c6 22F48052 bic r2, r2, #4096 2421 00ca 5A60 str r2, [r3, #4] 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BIT; 2422 .loc 1 1705 17 2423 00cc FB68 ldr r3, [r7, #12] 2424 00ce 224A ldr r2, .L137 2425 00d0 DA64 str r2, [r3, #76] 2426 00d2 0AE0 b .L134 2427 .L133: 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2428 .loc 1 1710 5 2429 00d4 FB68 ldr r3, [r7, #12] 2430 00d6 1B68 ldr r3, [r3] 2431 00d8 5A68 ldr r2, [r3, #4] 2432 00da FB68 ldr r3, [r7, #12] 2433 00dc 1B68 ldr r3, [r3] 2434 00de 42F48052 orr r2, r2, #4096 2435 00e2 5A60 str r2, [r3, #4] 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BIT; 2436 .loc 1 1711 17 2437 00e4 FB68 ldr r3, [r7, #12] 2438 00e6 1D4A ldr r2, .L137+4 2439 00e8 DA64 str r2, [r3, #76] 2440 .L134: 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2441 .loc 1 1715 17 2442 00ea FB68 ldr r3, [r7, #12] 2443 00ec 9B68 ldr r3, [r3, #8] 2444 .loc 1 1715 6 2445 00ee B3F5004F cmp r3, #32768 2446 00f2 0FD1 bne .L135 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 74 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2447 .loc 1 1718 5 2448 00f4 FB68 ldr r3, [r7, #12] 2449 00f6 1B68 ldr r3, [r3] 2450 00f8 1A68 ldr r2, [r3] 2451 00fa FB68 ldr r3, [r7, #12] 2452 00fc 1B68 ldr r3, [r3] 2453 00fe 22F04002 bic r2, r2, #64 2454 0102 1A60 str r2, [r3] 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 2455 .loc 1 1719 5 2456 0104 FB68 ldr r3, [r7, #12] 2457 0106 1B68 ldr r3, [r3] 2458 0108 1A68 ldr r2, [r3] 2459 010a FB68 ldr r3, [r7, #12] 2460 010c 1B68 ldr r3, [r3] 2461 010e 22F48042 bic r2, r2, #16384 2462 0112 1A60 str r2, [r3] 2463 .L135: 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE and ERR interrupt */ 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 2464 .loc 1 1740 3 2465 0114 FB68 ldr r3, [r7, #12] 2466 0116 1B68 ldr r3, [r3] 2467 0118 5A68 ldr r2, [r3, #4] 2468 011a FB68 ldr r3, [r7, #12] 2469 011c 1B68 ldr r3, [r3] 2470 011e 42F06002 orr r2, r2, #96 2471 0122 5A60 str r2, [r3, #4] 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Note : The SPI must be enabled after unlocking current process 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to avoid the risk of SPI interrupt handle execution before current 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** process unlock */ 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2472 .loc 1 1747 12 ARM GAS /tmp/ccs34gJO.s page 75 2473 0124 FB68 ldr r3, [r7, #12] 2474 0126 1B68 ldr r3, [r3] 2475 .loc 1 1747 22 2476 0128 1B68 ldr r3, [r3] 2477 .loc 1 1747 28 2478 012a 03F04003 and r3, r3, #64 2479 .loc 1 1747 6 2480 012e 402B cmp r3, #64 2481 0130 08D0 beq .L136 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2482 .loc 1 1750 5 2483 0132 FB68 ldr r3, [r7, #12] 2484 0134 1B68 ldr r3, [r3] 2485 0136 1A68 ldr r2, [r3] 2486 0138 FB68 ldr r3, [r7, #12] 2487 013a 1B68 ldr r3, [r3] 2488 013c 42F04002 orr r2, r2, #64 2489 0140 1A60 str r2, [r3] 2490 0142 00E0 b .L127 2491 .L136: 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2492 .loc 1 1753 1 2493 0144 00BF nop 2494 .L127: 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2495 .loc 1 1755 3 2496 0146 FB68 ldr r3, [r7, #12] 2497 0148 0022 movs r2, #0 2498 014a 83F85C20 strb r2, [r3, #92] 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2499 .loc 1 1756 10 2500 014e FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2501 .L129: 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2502 .loc 1 1757 1 2503 0150 1846 mov r0, r3 2504 0152 1837 adds r7, r7, #24 2505 .cfi_def_cfa_offset 8 2506 0154 BD46 mov sp, r7 2507 .cfi_def_cfa_register 13 2508 @ sp needed 2509 0156 80BD pop {r7, pc} 2510 .L138: 2511 .align 2 2512 .L137: 2513 0158 00000000 .word SPI_RxISR_16BIT 2514 015c 00000000 .word SPI_RxISR_8BIT 2515 .cfi_endproc 2516 .LFE138: 2518 .section .text.HAL_SPI_TransmitReceive_IT,"ax",%progbits 2519 .align 1 2520 .global HAL_SPI_TransmitReceive_IT ARM GAS /tmp/ccs34gJO.s page 76 2521 .syntax unified 2522 .thumb 2523 .thumb_func 2525 HAL_SPI_TransmitReceive_IT: 2526 .LFB139: 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with Interrupt. 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent and received 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pR 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2527 .loc 1 1769 1 2528 .cfi_startproc 2529 @ args = 0, pretend = 0, frame = 24 2530 @ frame_needed = 1, uses_anonymous_args = 0 2531 @ link register save eliminated. 2532 0000 80B4 push {r7} 2533 .cfi_def_cfa_offset 4 2534 .cfi_offset 7, -4 2535 0002 87B0 sub sp, sp, #28 2536 .cfi_def_cfa_offset 32 2537 0004 00AF add r7, sp, #0 2538 .cfi_def_cfa_register 7 2539 0006 F860 str r0, [r7, #12] 2540 0008 B960 str r1, [r7, #8] 2541 000a 7A60 str r2, [r7, #4] 2542 000c 7B80 strh r3, [r7, #2] @ movhi 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2543 .loc 1 1772 24 2544 000e 0023 movs r3, #0 2545 0010 FB75 strb r3, [r7, #23] 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2546 .loc 1 1778 3 2547 0012 FB68 ldr r3, [r7, #12] 2548 0014 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 2549 0018 012B cmp r3, #1 2550 001a 01D1 bne .L140 2551 .loc 1 1778 3 is_stmt 0 discriminator 1 2552 001c 0223 movs r3, #2 2553 .loc 1 1778 3 2554 001e 91E0 b .L141 2555 .L140: 2556 .loc 1 1778 3 discriminator 2 2557 0020 FB68 ldr r3, [r7, #12] ARM GAS /tmp/ccs34gJO.s page 77 2558 0022 0122 movs r2, #1 2559 0024 83F85C20 strb r2, [r3, #92] 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 2560 .loc 1 1781 23 is_stmt 1 2561 0028 FB68 ldr r3, [r7, #12] 2562 002a 93F85D30 ldrb r3, [r3, #93] 2563 002e BB75 strb r3, [r7, #22] 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 2564 .loc 1 1782 23 2565 0030 FB68 ldr r3, [r7, #12] 2566 0032 5B68 ldr r3, [r3, #4] 2567 0034 3B61 str r3, [r7, #16] 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || \ 2568 .loc 1 1784 6 2569 0036 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 2570 0038 012B cmp r3, #1 2571 003a 0DD0 beq .L142 2572 .loc 1 1784 7 discriminator 1 2573 003c 3B69 ldr r3, [r7, #16] 2574 003e B3F5827F cmp r3, #260 2575 0042 06D1 bne .L143 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 2576 .loc 1 1785 54 2577 0044 FB68 ldr r3, [r7, #12] 2578 0046 9B68 ldr r3, [r3, #8] 2579 .loc 1 1785 40 2580 0048 002B cmp r3, #0 2581 004a 02D1 bne .L143 2582 .loc 1 1785 90 discriminator 1 2583 004c BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 2584 004e 042B cmp r3, #4 2585 0050 02D0 beq .L142 2586 .L143: 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2587 .loc 1 1787 15 2588 0052 0223 movs r3, #2 2589 0054 FB75 strb r3, [r7, #23] 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2590 .loc 1 1788 5 2591 0056 70E0 b .L144 2592 .L142: 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 2593 .loc 1 1791 6 2594 0058 BB68 ldr r3, [r7, #8] 2595 005a 002B cmp r3, #0 2596 005c 05D0 beq .L145 2597 .loc 1 1791 25 discriminator 1 2598 005e 7B68 ldr r3, [r7, #4] 2599 0060 002B cmp r3, #0 2600 0062 02D0 beq .L145 2601 .loc 1 1791 46 discriminator 2 ARM GAS /tmp/ccs34gJO.s page 78 2602 0064 7B88 ldrh r3, [r7, #2] 2603 0066 002B cmp r3, #0 2604 0068 02D1 bne .L146 2605 .L145: 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2606 .loc 1 1793 15 2607 006a 0123 movs r3, #1 2608 006c FB75 strb r3, [r7, #23] 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2609 .loc 1 1794 5 2610 006e 64E0 b .L144 2611 .L146: 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 2612 .loc 1 1798 11 2613 0070 FB68 ldr r3, [r7, #12] 2614 0072 93F85D30 ldrb r3, [r3, #93] 2615 0076 DBB2 uxtb r3, r3 2616 .loc 1 1798 6 2617 0078 042B cmp r3, #4 2618 007a 03D0 beq .L147 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 2619 .loc 1 1800 17 2620 007c FB68 ldr r3, [r7, #12] 2621 007e 0522 movs r2, #5 2622 0080 83F85D20 strb r2, [r3, #93] 2623 .L147: 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2624 .loc 1 1804 21 2625 0084 FB68 ldr r3, [r7, #12] 2626 0086 0022 movs r2, #0 2627 0088 1A66 str r2, [r3, #96] 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 2628 .loc 1 1805 21 2629 008a FB68 ldr r3, [r7, #12] 2630 008c BA68 ldr r2, [r7, #8] 2631 008e 9A63 str r2, [r3, #56] 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2632 .loc 1 1806 21 2633 0090 FB68 ldr r3, [r7, #12] 2634 0092 7A88 ldrh r2, [r7, #2] @ movhi 2635 0094 9A87 strh r2, [r3, #60] @ movhi 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2636 .loc 1 1807 21 2637 0096 FB68 ldr r3, [r7, #12] 2638 0098 7A88 ldrh r2, [r7, #2] @ movhi 2639 009a DA87 strh r2, [r3, #62] @ movhi 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 2640 .loc 1 1808 21 2641 009c FB68 ldr r3, [r7, #12] ARM GAS /tmp/ccs34gJO.s page 79 2642 009e 7A68 ldr r2, [r7, #4] 2643 00a0 1A64 str r2, [r3, #64] 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 2644 .loc 1 1809 21 2645 00a2 FB68 ldr r3, [r7, #12] 2646 00a4 7A88 ldrh r2, [r7, #2] @ movhi 2647 00a6 A3F84420 strh r2, [r3, #68] @ movhi 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 2648 .loc 1 1810 21 2649 00aa FB68 ldr r3, [r7, #12] 2650 00ac 7A88 ldrh r2, [r7, #2] @ movhi 2651 00ae A3F84620 strh r2, [r3, #70] @ movhi 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the function for IT treatment */ 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 2652 .loc 1 1813 17 2653 00b2 FB68 ldr r3, [r7, #12] 2654 00b4 DB68 ldr r3, [r3, #12] 2655 .loc 1 1813 6 2656 00b6 B3F5E06F cmp r3, #1792 2657 00ba 06D9 bls .L148 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BIT; 2658 .loc 1 1815 21 2659 00bc FB68 ldr r3, [r7, #12] 2660 00be 244A ldr r2, .L154 2661 00c0 DA64 str r2, [r3, #76] 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_16BIT; 2662 .loc 1 1816 21 2663 00c2 FB68 ldr r3, [r7, #12] 2664 00c4 234A ldr r2, .L154+4 2665 00c6 1A65 str r2, [r3, #80] 2666 00c8 05E0 b .L149 2667 .L148: 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BIT; 2668 .loc 1 1820 21 2669 00ca FB68 ldr r3, [r7, #12] 2670 00cc 224A ldr r2, .L154+8 2671 00ce DA64 str r2, [r3, #76] 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_2linesTxISR_8BIT; 2672 .loc 1 1821 21 2673 00d0 FB68 ldr r3, [r7, #12] 2674 00d2 224A ldr r2, .L154+12 2675 00d4 1A65 str r2, [r3, #80] 2676 .L149: 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 1U; 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 80 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 2U; 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize = 0U; 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if packing mode is enabled and if there is more than 2 data to receive */ 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) || (Size >= 2U)) 2677 .loc 1 1842 18 2678 00d6 FB68 ldr r3, [r7, #12] 2679 00d8 DB68 ldr r3, [r3, #12] 2680 .loc 1 1842 6 2681 00da B3F5E06F cmp r3, #1792 2682 00de 02D8 bhi .L150 2683 .loc 1 1842 49 discriminator 1 2684 00e0 7B88 ldrh r3, [r7, #2] 2685 00e2 012B cmp r3, #1 2686 00e4 08D9 bls .L151 2687 .L150: 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16 bit */ 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2688 .loc 1 1845 5 2689 00e6 FB68 ldr r3, [r7, #12] 2690 00e8 1B68 ldr r3, [r3] 2691 00ea 5A68 ldr r2, [r3, #4] 2692 00ec FB68 ldr r3, [r7, #12] 2693 00ee 1B68 ldr r3, [r3] 2694 00f0 22F48052 bic r2, r2, #4096 2695 00f4 5A60 str r2, [r3, #4] 2696 00f6 07E0 b .L152 2697 .L151: 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8 bit */ 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 2698 .loc 1 1850 5 2699 00f8 FB68 ldr r3, [r7, #12] 2700 00fa 1B68 ldr r3, [r3] 2701 00fc 5A68 ldr r2, [r3, #4] 2702 00fe FB68 ldr r3, [r7, #12] 2703 0100 1B68 ldr r3, [r3] 2704 0102 42F48052 orr r2, r2, #4096 2705 0106 5A60 str r2, [r3, #4] 2706 .L152: 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable TXE, RXNE and ERR interrupt */ 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 2707 .loc 1 1854 3 2708 0108 FB68 ldr r3, [r7, #12] 2709 010a 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 81 2710 010c 5A68 ldr r2, [r3, #4] 2711 010e FB68 ldr r3, [r7, #12] 2712 0110 1B68 ldr r3, [r3] 2713 0112 42F0E002 orr r2, r2, #224 2714 0116 5A60 str r2, [r3, #4] 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 2715 .loc 1 1857 12 2716 0118 FB68 ldr r3, [r7, #12] 2717 011a 1B68 ldr r3, [r3] 2718 .loc 1 1857 22 2719 011c 1B68 ldr r3, [r3] 2720 .loc 1 1857 28 2721 011e 03F04003 and r3, r3, #64 2722 .loc 1 1857 6 2723 0122 402B cmp r3, #64 2724 0124 08D0 beq .L153 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 2725 .loc 1 1860 5 2726 0126 FB68 ldr r3, [r7, #12] 2727 0128 1B68 ldr r3, [r3] 2728 012a 1A68 ldr r2, [r3] 2729 012c FB68 ldr r3, [r7, #12] 2730 012e 1B68 ldr r3, [r3] 2731 0130 42F04002 orr r2, r2, #64 2732 0134 1A60 str r2, [r3] 2733 0136 00E0 b .L144 2734 .L153: 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2735 .loc 1 1863 1 2736 0138 00BF nop 2737 .L144: 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 2738 .loc 1 1865 3 2739 013a FB68 ldr r3, [r7, #12] 2740 013c 0022 movs r2, #0 2741 013e 83F85C20 strb r2, [r3, #92] 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 2742 .loc 1 1866 10 2743 0142 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 2744 .L141: 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2745 .loc 1 1867 1 2746 0144 1846 mov r0, r3 2747 0146 1C37 adds r7, r7, #28 2748 .cfi_def_cfa_offset 4 2749 0148 BD46 mov sp, r7 2750 .cfi_def_cfa_register 13 2751 @ sp needed 2752 014a 5DF8047B ldr r7, [sp], #4 2753 .cfi_restore 7 ARM GAS /tmp/ccs34gJO.s page 82 2754 .cfi_def_cfa_offset 0 2755 014e 7047 bx lr 2756 .L155: 2757 .align 2 2758 .L154: 2759 0150 00000000 .word SPI_2linesRxISR_16BIT 2760 0154 00000000 .word SPI_2linesTxISR_16BIT 2761 0158 00000000 .word SPI_2linesRxISR_8BIT 2762 015c 00000000 .word SPI_2linesTxISR_8BIT 2763 .cfi_endproc 2764 .LFE139: 2766 .section .text.HAL_SPI_Transmit_DMA,"ax",%progbits 2767 .align 1 2768 .global HAL_SPI_Transmit_DMA 2769 .syntax unified 2770 .thumb 2771 .thumb_func 2773 HAL_SPI_Transmit_DMA: 2774 .LFB140: 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit an amount of data in non-blocking mode with DMA. 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2775 .loc 1 1878 1 2776 .cfi_startproc 2777 @ args = 0, pretend = 0, frame = 24 2778 @ frame_needed = 1, uses_anonymous_args = 0 2779 0000 80B5 push {r7, lr} 2780 .cfi_def_cfa_offset 8 2781 .cfi_offset 7, -8 2782 .cfi_offset 14, -4 2783 0002 86B0 sub sp, sp, #24 2784 .cfi_def_cfa_offset 32 2785 0004 00AF add r7, sp, #0 2786 .cfi_def_cfa_register 7 2787 0006 F860 str r0, [r7, #12] 2788 0008 B960 str r1, [r7, #8] 2789 000a 1346 mov r3, r2 2790 000c FB80 strh r3, [r7, #6] @ movhi 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 2791 .loc 1 1879 21 2792 000e 0023 movs r3, #0 2793 0010 FB75 strb r3, [r7, #23] 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES_OR_1LINE(hspi->Init.Direction)); 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 83 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 2794 .loc 1 1888 3 2795 0012 FB68 ldr r3, [r7, #12] 2796 0014 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 2797 0018 012B cmp r3, #1 2798 001a 01D1 bne .L157 2799 .loc 1 1888 3 is_stmt 0 discriminator 1 2800 001c 0223 movs r3, #2 2801 .loc 1 1888 3 2802 001e D4E0 b .L158 2803 .L157: 2804 .loc 1 1888 3 discriminator 2 2805 0020 FB68 ldr r3, [r7, #12] 2806 0022 0122 movs r2, #1 2807 0024 83F85C20 strb r2, [r3, #92] 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 2808 .loc 1 1890 11 is_stmt 1 2809 0028 FB68 ldr r3, [r7, #12] 2810 002a 93F85D30 ldrb r3, [r3, #93] 2811 002e DBB2 uxtb r3, r3 2812 .loc 1 1890 6 2813 0030 012B cmp r3, #1 2814 0032 02D0 beq .L159 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 2815 .loc 1 1892 15 2816 0034 0223 movs r3, #2 2817 0036 FB75 strb r3, [r7, #23] 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2818 .loc 1 1893 5 2819 0038 C2E0 b .L160 2820 .L159: 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 2821 .loc 1 1896 6 2822 003a BB68 ldr r3, [r7, #8] 2823 003c 002B cmp r3, #0 2824 003e 02D0 beq .L161 2825 .loc 1 1896 23 discriminator 1 2826 0040 FB88 ldrh r3, [r7, #6] 2827 0042 002B cmp r3, #0 2828 0044 02D1 bne .L162 2829 .L161: 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 2830 .loc 1 1898 15 2831 0046 0123 movs r3, #1 2832 0048 FB75 strb r3, [r7, #23] 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 2833 .loc 1 1899 5 2834 004a B9E0 b .L160 2835 .L162: 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 84 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX; 2836 .loc 1 1903 21 2837 004c FB68 ldr r3, [r7, #12] 2838 004e 0322 movs r2, #3 2839 0050 83F85D20 strb r2, [r3, #93] 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 2840 .loc 1 1904 21 2841 0054 FB68 ldr r3, [r7, #12] 2842 0056 0022 movs r2, #0 2843 0058 1A66 str r2, [r3, #96] 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pData; 2844 .loc 1 1905 21 2845 005a FB68 ldr r3, [r7, #12] 2846 005c BA68 ldr r2, [r7, #8] 2847 005e 9A63 str r2, [r3, #56] 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 2848 .loc 1 1906 21 2849 0060 FB68 ldr r3, [r7, #12] 2850 0062 FA88 ldrh r2, [r7, #6] @ movhi 2851 0064 9A87 strh r2, [r3, #60] @ movhi 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 2852 .loc 1 1907 21 2853 0066 FB68 ldr r3, [r7, #12] 2854 0068 FA88 ldrh r2, [r7, #6] @ movhi 2855 006a DA87 strh r2, [r3, #62] @ movhi 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)NULL; 2856 .loc 1 1910 21 2857 006c FB68 ldr r3, [r7, #12] 2858 006e 0022 movs r2, #0 2859 0070 1A64 str r2, [r3, #64] 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 2860 .loc 1 1911 21 2861 0072 FB68 ldr r3, [r7, #12] 2862 0074 0022 movs r2, #0 2863 0076 1A65 str r2, [r3, #80] 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 2864 .loc 1 1912 21 2865 0078 FB68 ldr r3, [r7, #12] 2866 007a 0022 movs r2, #0 2867 007c DA64 str r2, [r3, #76] 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = 0U; 2868 .loc 1 1913 21 2869 007e FB68 ldr r3, [r7, #12] 2870 0080 0022 movs r2, #0 2871 0082 A3F84420 strh r2, [r3, #68] @ movhi 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 2872 .loc 1 1914 21 2873 0086 FB68 ldr r3, [r7, #12] 2874 0088 0022 movs r2, #0 2875 008a A3F84620 strh r2, [r3, #70] @ movhi 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 2876 .loc 1 1917 17 ARM GAS /tmp/ccs34gJO.s page 85 2877 008e FB68 ldr r3, [r7, #12] 2878 0090 9B68 ldr r3, [r3, #8] 2879 .loc 1 1917 6 2880 0092 B3F5004F cmp r3, #32768 2881 0096 0FD1 bne .L163 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 2882 .loc 1 1920 5 2883 0098 FB68 ldr r3, [r7, #12] 2884 009a 1B68 ldr r3, [r3] 2885 009c 1A68 ldr r2, [r3] 2886 009e FB68 ldr r3, [r7, #12] 2887 00a0 1B68 ldr r3, [r3] 2888 00a2 22F04002 bic r2, r2, #64 2889 00a6 1A60 str r2, [r3] 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_TX(hspi); 2890 .loc 1 1921 5 2891 00a8 FB68 ldr r3, [r7, #12] 2892 00aa 1B68 ldr r3, [r3] 2893 00ac 1A68 ldr r2, [r3] 2894 00ae FB68 ldr r3, [r7, #12] 2895 00b0 1B68 ldr r3, [r3] 2896 00b2 42F48042 orr r2, r2, #16384 2897 00b6 1A60 str r2, [r3] 2898 .L163: 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA Half transfer complete callback */ 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = SPI_DMAHalfTransmitCplt; 2899 .loc 1 1933 7 2900 00b8 FB68 ldr r3, [r7, #12] 2901 00ba 5B6D ldr r3, [r3, #84] 2902 .loc 1 1933 38 2903 00bc 454A ldr r2, .L168 2904 00be DA62 str r2, [r3, #44] 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI TxDMA transfer complete callback */ 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = SPI_DMATransmitCplt; 2905 .loc 1 1936 7 2906 00c0 FB68 ldr r3, [r7, #12] 2907 00c2 5B6D ldr r3, [r3, #84] 2908 .loc 1 1936 34 2909 00c4 444A ldr r2, .L168+4 2910 00c6 9A62 str r2, [r3, #40] 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = SPI_DMAError; 2911 .loc 1 1939 7 ARM GAS /tmp/ccs34gJO.s page 86 2912 00c8 FB68 ldr r3, [r7, #12] 2913 00ca 5B6D ldr r3, [r3, #84] 2914 .loc 1 1939 35 2915 00cc 434A ldr r2, .L168+8 2916 00ce 1A63 str r2, [r3, #48] 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 2917 .loc 1 1942 7 2918 00d0 FB68 ldr r3, [r7, #12] 2919 00d2 5B6D ldr r3, [r3, #84] 2920 .loc 1 1942 35 2921 00d4 0022 movs r2, #0 2922 00d6 5A63 str r2, [r3, #52] 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2923 .loc 1 1944 3 2924 00d8 FB68 ldr r3, [r7, #12] 2925 00da 1B68 ldr r3, [r3] 2926 00dc 5A68 ldr r2, [r3, #4] 2927 00de FB68 ldr r3, [r7, #12] 2928 00e0 1B68 ldr r3, [r3] 2929 00e2 22F48042 bic r2, r2, #16384 2930 00e6 5A60 str r2, [r3, #4] 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode is enabled only if the DMA setting is HALWORD */ 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmatx->Init.MemDataAlignment == DMA_MDA 2931 .loc 1 1946 18 2932 00e8 FB68 ldr r3, [r7, #12] 2933 00ea DB68 ldr r3, [r3, #12] 2934 .loc 1 1946 6 2935 00ec B3F5E06F cmp r3, #1792 2936 00f0 2DD8 bhi .L164 2937 .loc 1 1946 58 discriminator 1 2938 00f2 FB68 ldr r3, [r7, #12] 2939 00f4 5B6D ldr r3, [r3, #84] 2940 .loc 1 1946 72 discriminator 1 2941 00f6 5B69 ldr r3, [r3, #20] 2942 .loc 1 1946 50 discriminator 1 2943 00f8 B3F5806F cmp r3, #1024 2944 00fc 27D1 bne .L164 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the even/odd of the data size + crc if enabled */ 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferCount & 0x1U) == 0U) 2945 .loc 1 1949 14 2946 00fe FB68 ldr r3, [r7, #12] 2947 0100 DB8F ldrh r3, [r3, #62] @ movhi 2948 0102 9BB2 uxth r3, r3 2949 .loc 1 1949 28 2950 0104 03F00103 and r3, r3, #1 2951 .loc 1 1949 8 2952 0108 002B cmp r3, #0 2953 010a 0FD1 bne .L165 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2954 .loc 1 1951 7 2955 010c FB68 ldr r3, [r7, #12] 2956 010e 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 87 2957 0110 5A68 ldr r2, [r3, #4] 2958 0112 FB68 ldr r3, [r7, #12] 2959 0114 1B68 ldr r3, [r3] 2960 0116 22F48042 bic r2, r2, #16384 2961 011a 5A60 str r2, [r3, #4] 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U); 2962 .loc 1 1952 32 2963 011c FB68 ldr r3, [r7, #12] 2964 011e DB8F ldrh r3, [r3, #62] @ movhi 2965 0120 9BB2 uxth r3, r3 2966 .loc 1 1952 25 2967 0122 5B08 lsrs r3, r3, #1 2968 0124 9AB2 uxth r2, r3 2969 0126 FB68 ldr r3, [r7, #12] 2970 0128 DA87 strh r2, [r3, #62] @ movhi 2971 012a 10E0 b .L164 2972 .L165: 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 2973 .loc 1 1956 7 2974 012c FB68 ldr r3, [r7, #12] 2975 012e 1B68 ldr r3, [r3] 2976 0130 5A68 ldr r2, [r3, #4] 2977 0132 FB68 ldr r3, [r7, #12] 2978 0134 1B68 ldr r3, [r3] 2979 0136 42F48042 orr r2, r2, #16384 2980 013a 5A60 str r2, [r3, #4] 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 2981 .loc 1 1957 32 2982 013c FB68 ldr r3, [r7, #12] 2983 013e DB8F ldrh r3, [r3, #62] @ movhi 2984 0140 9BB2 uxth r3, r3 2985 .loc 1 1957 53 2986 0142 5B08 lsrs r3, r3, #1 2987 0144 9BB2 uxth r3, r3 2988 0146 0133 adds r3, r3, #1 2989 0148 9AB2 uxth r2, r3 2990 .loc 1 1957 25 2991 014a FB68 ldr r3, [r7, #12] 2992 014c DA87 strh r2, [r3, #62] @ movhi 2993 .L164: 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instanc 2994 .loc 1 1962 17 2995 014e FB68 ldr r3, [r7, #12] 2996 0150 586D ldr r0, [r3, #84] 2997 .loc 1 1962 62 2998 0152 FB68 ldr r3, [r7, #12] 2999 0154 9B6B ldr r3, [r3, #56] 3000 .loc 1 1962 17 3001 0156 1946 mov r1, r3 3002 .loc 1 1962 91 ARM GAS /tmp/ccs34gJO.s page 88 3003 0158 FB68 ldr r3, [r7, #12] 3004 015a 1B68 ldr r3, [r3] 3005 .loc 1 1962 86 3006 015c 0C33 adds r3, r3, #12 3007 .loc 1 1962 17 3008 015e 1A46 mov r2, r3 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3009 .loc 1 1963 38 3010 0160 FB68 ldr r3, [r7, #12] 3011 0162 DB8F ldrh r3, [r3, #62] @ movhi 3012 0164 9BB2 uxth r3, r3 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3013 .loc 1 1962 17 3014 0166 FFF7FEFF bl HAL_DMA_Start_IT 3015 016a 0346 mov r3, r0 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3016 .loc 1 1962 6 discriminator 1 3017 016c 002B cmp r3, #0 3018 016e 08D0 beq .L166 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3019 .loc 1 1966 5 3020 0170 FB68 ldr r3, [r7, #12] 3021 0172 1B6E ldr r3, [r3, #96] 3022 0174 43F01002 orr r2, r3, #16 3023 0178 FB68 ldr r3, [r7, #12] 3024 017a 1A66 str r2, [r3, #96] 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3025 .loc 1 1967 15 3026 017c 0123 movs r3, #1 3027 017e FB75 strb r3, [r7, #23] 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3028 .loc 1 1969 5 3029 0180 1EE0 b .L160 3030 .L166: 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 3031 .loc 1 1973 12 3032 0182 FB68 ldr r3, [r7, #12] 3033 0184 1B68 ldr r3, [r3] 3034 .loc 1 1973 22 3035 0186 1B68 ldr r3, [r3] 3036 .loc 1 1973 28 3037 0188 03F04003 and r3, r3, #64 3038 .loc 1 1973 6 3039 018c 402B cmp r3, #64 3040 018e 07D0 beq .L167 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 3041 .loc 1 1976 5 3042 0190 FB68 ldr r3, [r7, #12] 3043 0192 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 89 3044 0194 1A68 ldr r2, [r3] 3045 0196 FB68 ldr r3, [r7, #12] 3046 0198 1B68 ldr r3, [r3] 3047 019a 42F04002 orr r2, r2, #64 3048 019e 1A60 str r2, [r3] 3049 .L167: 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 3050 .loc 1 1980 3 3051 01a0 FB68 ldr r3, [r7, #12] 3052 01a2 1B68 ldr r3, [r3] 3053 01a4 5A68 ldr r2, [r3, #4] 3054 01a6 FB68 ldr r3, [r7, #12] 3055 01a8 1B68 ldr r3, [r3] 3056 01aa 42F02002 orr r2, r2, #32 3057 01ae 5A60 str r2, [r3, #4] 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3058 .loc 1 1983 3 3059 01b0 FB68 ldr r3, [r7, #12] 3060 01b2 1B68 ldr r3, [r3] 3061 01b4 5A68 ldr r2, [r3, #4] 3062 01b6 FB68 ldr r3, [r7, #12] 3063 01b8 1B68 ldr r3, [r3] 3064 01ba 42F00202 orr r2, r2, #2 3065 01be 5A60 str r2, [r3, #4] 3066 .L160: 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 3067 .loc 1 1987 3 3068 01c0 FB68 ldr r3, [r7, #12] 3069 01c2 0022 movs r2, #0 3070 01c4 83F85C20 strb r2, [r3, #92] 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3071 .loc 1 1988 10 3072 01c8 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 3073 .L158: 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3074 .loc 1 1989 1 3075 01ca 1846 mov r0, r3 3076 01cc 1837 adds r7, r7, #24 3077 .cfi_def_cfa_offset 8 3078 01ce BD46 mov sp, r7 3079 .cfi_def_cfa_register 13 3080 @ sp needed 3081 01d0 80BD pop {r7, pc} 3082 .L169: 3083 01d2 00BF .align 2 3084 .L168: 3085 01d4 00000000 .word SPI_DMAHalfTransmitCplt 3086 01d8 00000000 .word SPI_DMATransmitCplt 3087 01dc 00000000 .word SPI_DMAError ARM GAS /tmp/ccs34gJO.s page 90 3088 .cfi_endproc 3089 .LFE140: 3091 .section .text.HAL_SPI_Receive_DMA,"ax",%progbits 3092 .align 1 3093 .global HAL_SPI_Receive_DMA 3094 .syntax unified 3095 .thumb 3096 .thumb_func 3098 HAL_SPI_Receive_DMA: 3099 .LFB141: 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Receive an amount of data in non-blocking mode with DMA. 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note In case of MASTER mode and SPI_DIRECTION_2LINES direction, hdmatx shall be defined. 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pData pointer to data buffer 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pData Length must be Size + 1. 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size) 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3100 .loc 1 2002 1 3101 .cfi_startproc 3102 @ args = 0, pretend = 0, frame = 24 3103 @ frame_needed = 1, uses_anonymous_args = 0 3104 0000 80B5 push {r7, lr} 3105 .cfi_def_cfa_offset 8 3106 .cfi_offset 7, -8 3107 .cfi_offset 14, -4 3108 0002 86B0 sub sp, sp, #24 3109 .cfi_def_cfa_offset 32 3110 0004 00AF add r7, sp, #0 3111 .cfi_def_cfa_register 7 3112 0006 F860 str r0, [r7, #12] 3113 0008 B960 str r1, [r7, #8] 3114 000a 1346 mov r3, r2 3115 000c FB80 strh r3, [r7, #6] @ movhi 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3116 .loc 1 2003 21 3117 000e 0023 movs r3, #0 3118 0010 FB75 strb r3, [r7, #23] 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx dma handle */ 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_READY) 3119 .loc 1 2008 11 3120 0012 FB68 ldr r3, [r7, #12] 3121 0014 93F85D30 ldrb r3, [r3, #93] 3122 0018 DBB2 uxtb r3, r3 3123 .loc 1 2008 6 3124 001a 012B cmp r3, #1 3125 001c 02D0 beq .L171 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; ARM GAS /tmp/ccs34gJO.s page 91 3126 .loc 1 2010 15 3127 001e 0223 movs r3, #2 3128 0020 FB75 strb r3, [r7, #23] 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3129 .loc 1 2011 5 3130 0022 0CE1 b .L172 3131 .L171: 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 3132 .loc 1 2014 18 3133 0024 FB68 ldr r3, [r7, #12] 3134 0026 9B68 ldr r3, [r3, #8] 3135 .loc 1 2014 6 3136 0028 002B cmp r3, #0 3137 002a 10D1 bne .L173 3138 .loc 1 2014 68 discriminator 1 3139 002c FB68 ldr r3, [r7, #12] 3140 002e 5B68 ldr r3, [r3, #4] 3141 .loc 1 2014 54 discriminator 1 3142 0030 B3F5827F cmp r3, #260 3143 0034 0BD1 bne .L173 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 3144 .loc 1 2016 17 3145 0036 FB68 ldr r3, [r7, #12] 3146 0038 0422 movs r2, #4 3147 003a 83F85D20 strb r2, [r3, #93] 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check tx dma handle */ 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call transmit-receive function to send Dummy data on Tx line and generate clock on CLK line 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size); 3148 .loc 1 2022 12 3149 003e FB88 ldrh r3, [r7, #6] 3150 0040 BA68 ldr r2, [r7, #8] 3151 0042 B968 ldr r1, [r7, #8] 3152 0044 F868 ldr r0, [r7, #12] 3153 0046 FFF7FEFF bl HAL_SPI_TransmitReceive_DMA 3154 004a 0346 mov r3, r0 3155 004c FCE0 b .L174 3156 .L173: 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 3157 .loc 1 2026 3 3158 004e FB68 ldr r3, [r7, #12] 3159 0050 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 3160 0054 012B cmp r3, #1 3161 0056 01D1 bne .L175 3162 .loc 1 2026 3 is_stmt 0 discriminator 1 3163 0058 0223 movs r3, #2 3164 .loc 1 2026 3 3165 005a F5E0 b .L174 3166 .L175: ARM GAS /tmp/ccs34gJO.s page 92 3167 .loc 1 2026 3 discriminator 2 3168 005c FB68 ldr r3, [r7, #12] 3169 005e 0122 movs r2, #1 3170 0060 83F85C20 strb r2, [r3, #92] 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pData == NULL) || (Size == 0U)) 3171 .loc 1 2028 6 is_stmt 1 3172 0064 BB68 ldr r3, [r7, #8] 3173 0066 002B cmp r3, #0 3174 0068 02D0 beq .L176 3175 .loc 1 2028 23 discriminator 1 3176 006a FB88 ldrh r3, [r7, #6] 3177 006c 002B cmp r3, #0 3178 006e 02D1 bne .L177 3179 .L176: 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3180 .loc 1 2030 15 3181 0070 0123 movs r3, #1 3182 0072 FB75 strb r3, [r7, #23] 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3183 .loc 1 2031 5 3184 0074 E3E0 b .L172 3185 .L177: 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_RX; 3186 .loc 1 2035 21 3187 0076 FB68 ldr r3, [r7, #12] 3188 0078 0422 movs r2, #4 3189 007a 83F85D20 strb r2, [r3, #93] 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3190 .loc 1 2036 21 3191 007e FB68 ldr r3, [r7, #12] 3192 0080 0022 movs r2, #0 3193 0082 1A66 str r2, [r3, #96] 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pData; 3194 .loc 1 2037 21 3195 0084 FB68 ldr r3, [r7, #12] 3196 0086 BA68 ldr r2, [r7, #8] 3197 0088 1A64 str r2, [r3, #64] 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3198 .loc 1 2038 21 3199 008a FB68 ldr r3, [r7, #12] 3200 008c FA88 ldrh r2, [r7, #6] @ movhi 3201 008e A3F84420 strh r2, [r3, #68] @ movhi 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3202 .loc 1 2039 21 3203 0092 FB68 ldr r3, [r7, #12] 3204 0094 FA88 ldrh r2, [r7, #6] @ movhi 3205 0096 A3F84620 strh r2, [r3, #70] @ movhi 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /*Init field not used in handle to zero */ 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3206 .loc 1 2042 21 3207 009a FB68 ldr r3, [r7, #12] ARM GAS /tmp/ccs34gJO.s page 93 3208 009c 0022 movs r2, #0 3209 009e DA64 str r2, [r3, #76] 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3210 .loc 1 2043 21 3211 00a0 FB68 ldr r3, [r7, #12] 3212 00a2 0022 movs r2, #0 3213 00a4 1A65 str r2, [r3, #80] 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = 0U; 3214 .loc 1 2044 21 3215 00a6 FB68 ldr r3, [r7, #12] 3216 00a8 0022 movs r2, #0 3217 00aa 9A87 strh r2, [r3, #60] @ movhi 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 3218 .loc 1 2045 21 3219 00ac FB68 ldr r3, [r7, #12] 3220 00ae 0022 movs r2, #0 3221 00b0 DA87 strh r2, [r3, #62] @ movhi 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Configure communication direction : 1Line */ 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_1LINE) 3222 .loc 1 2048 17 3223 00b2 FB68 ldr r3, [r7, #12] 3224 00b4 9B68 ldr r3, [r3, #8] 3225 .loc 1 2048 6 3226 00b6 B3F5004F cmp r3, #32768 3227 00ba 0FD1 bne .L178 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral before set 1Line direction (BIDIOE bit) */ 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 3228 .loc 1 2051 5 3229 00bc FB68 ldr r3, [r7, #12] 3230 00be 1B68 ldr r3, [r3] 3231 00c0 1A68 ldr r2, [r3] 3232 00c2 FB68 ldr r3, [r7, #12] 3233 00c4 1B68 ldr r3, [r3] 3234 00c6 22F04002 bic r2, r2, #64 3235 00ca 1A60 str r2, [r3] 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_1LINE_RX(hspi); 3236 .loc 1 2052 5 3237 00cc FB68 ldr r3, [r7, #12] 3238 00ce 1B68 ldr r3, [r3] 3239 00d0 1A68 ldr r2, [r3] 3240 00d2 FB68 ldr r3, [r7, #12] 3241 00d4 1B68 ldr r3, [r3] 3242 00d6 22F48042 bic r2, r2, #16384 3243 00da 1A60 str r2, [r3] 3244 .L178: 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 94 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 3245 .loc 1 2065 18 3246 00dc FB68 ldr r3, [r7, #12] 3247 00de DB68 ldr r3, [r3, #12] 3248 .loc 1 2065 6 3249 00e0 B3F5E06F cmp r3, #1792 3250 00e4 08D8 bhi .L179 3251 .loc 1 2065 58 discriminator 1 3252 00e6 FB68 ldr r3, [r7, #12] 3253 00e8 9B6D ldr r3, [r3, #88] 3254 .loc 1 2065 72 discriminator 1 3255 00ea 5B69 ldr r3, [r3, #20] 3256 .loc 1 2065 50 discriminator 1 3257 00ec B3F5806F cmp r3, #1024 3258 00f0 02D1 bne .L179 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3259 .loc 1 2068 15 3260 00f2 0123 movs r3, #1 3261 00f4 FB75 strb r3, [r7, #23] 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3262 .loc 1 2069 5 3263 00f6 A2E0 b .L172 3264 .L179: 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 3265 .loc 1 2073 3 3266 00f8 FB68 ldr r3, [r7, #12] 3267 00fa 1B68 ldr r3, [r3] 3268 00fc 5A68 ldr r2, [r3, #4] 3269 00fe FB68 ldr r3, [r7, #12] 3270 0100 1B68 ldr r3, [r3] 3271 0102 22F40052 bic r2, r2, #8192 3272 0106 5A60 str r2, [r3, #4] 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 3273 .loc 1 2074 17 3274 0108 FB68 ldr r3, [r7, #12] 3275 010a DB68 ldr r3, [r3, #12] 3276 .loc 1 2074 6 3277 010c B3F5E06F cmp r3, #1792 3278 0110 08D9 bls .L180 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3279 .loc 1 2077 5 3280 0112 FB68 ldr r3, [r7, #12] 3281 0114 1B68 ldr r3, [r3] 3282 0116 5A68 ldr r2, [r3, #4] 3283 0118 FB68 ldr r3, [r7, #12] 3284 011a 1B68 ldr r3, [r3] 3285 011c 22F48052 bic r2, r2, #4096 3286 0120 5A60 str r2, [r3, #4] ARM GAS /tmp/ccs34gJO.s page 95 3287 0122 42E0 b .L181 3288 .L180: 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3289 .loc 1 2082 5 3290 0124 FB68 ldr r3, [r7, #12] 3291 0126 1B68 ldr r3, [r3] 3292 0128 5A68 ldr r2, [r3, #4] 3293 012a FB68 ldr r3, [r7, #12] 3294 012c 1B68 ldr r3, [r3] 3295 012e 42F48052 orr r2, r2, #4096 3296 0132 5A60 str r2, [r3, #4] 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 3297 .loc 1 2084 13 3298 0134 FB68 ldr r3, [r7, #12] 3299 0136 9B6D ldr r3, [r3, #88] 3300 .loc 1 2084 27 3301 0138 5B69 ldr r3, [r3, #20] 3302 .loc 1 2084 8 3303 013a B3F5806F cmp r3, #1024 3304 013e 34D1 bne .L181 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3305 .loc 1 2087 7 3306 0140 FB68 ldr r3, [r7, #12] 3307 0142 1B68 ldr r3, [r3] 3308 0144 5A68 ldr r2, [r3, #4] 3309 0146 FB68 ldr r3, [r7, #12] 3310 0148 1B68 ldr r3, [r3] 3311 014a 22F48052 bic r2, r2, #4096 3312 014e 5A60 str r2, [r3, #4] 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 3313 .loc 1 2089 16 3314 0150 FB68 ldr r3, [r7, #12] 3315 0152 B3F84630 ldrh r3, [r3, #70] @ movhi 3316 0156 9BB2 uxth r3, r3 3317 .loc 1 2089 30 3318 0158 03F00103 and r3, r3, #1 3319 .loc 1 2089 10 3320 015c 002B cmp r3, #0 3321 015e 11D1 bne .L182 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 3322 .loc 1 2091 9 3323 0160 FB68 ldr r3, [r7, #12] 3324 0162 1B68 ldr r3, [r3] 3325 0164 5A68 ldr r2, [r3, #4] 3326 0166 FB68 ldr r3, [r7, #12] 3327 0168 1B68 ldr r3, [r3] 3328 016a 22F40052 bic r2, r2, #8192 3329 016e 5A60 str r2, [r3, #4] ARM GAS /tmp/ccs34gJO.s page 96 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 3330 .loc 1 2092 33 3331 0170 FB68 ldr r3, [r7, #12] 3332 0172 B3F84630 ldrh r3, [r3, #70] @ movhi 3333 0176 9BB2 uxth r3, r3 3334 .loc 1 2092 27 3335 0178 5B08 lsrs r3, r3, #1 3336 017a 9AB2 uxth r2, r3 3337 017c FB68 ldr r3, [r7, #12] 3338 017e A3F84620 strh r2, [r3, #70] @ movhi 3339 0182 12E0 b .L181 3340 .L182: 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 3341 .loc 1 2096 9 3342 0184 FB68 ldr r3, [r7, #12] 3343 0186 1B68 ldr r3, [r3] 3344 0188 5A68 ldr r2, [r3, #4] 3345 018a FB68 ldr r3, [r7, #12] 3346 018c 1B68 ldr r3, [r3] 3347 018e 42F40052 orr r2, r2, #8192 3348 0192 5A60 str r2, [r3, #4] 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 3349 .loc 1 2097 34 3350 0194 FB68 ldr r3, [r7, #12] 3351 0196 B3F84630 ldrh r3, [r3, #70] @ movhi 3352 019a 9BB2 uxth r3, r3 3353 .loc 1 2097 55 3354 019c 5B08 lsrs r3, r3, #1 3355 019e 9BB2 uxth r3, r3 3356 01a0 0133 adds r3, r3, #1 3357 01a2 9AB2 uxth r2, r3 3358 .loc 1 2097 27 3359 01a4 FB68 ldr r3, [r7, #12] 3360 01a6 A3F84620 strh r2, [r3, #70] @ movhi 3361 .L181: 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI RxDMA Half transfer complete callback */ 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 3362 .loc 1 2103 7 3363 01aa FB68 ldr r3, [r7, #12] 3364 01ac 9B6D ldr r3, [r3, #88] 3365 .loc 1 2103 38 3366 01ae 284A ldr r2, .L185 3367 01b0 DA62 str r2, [r3, #44] 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA transfer complete callback */ 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 3368 .loc 1 2106 7 3369 01b2 FB68 ldr r3, [r7, #12] 3370 01b4 9B6D ldr r3, [r3, #88] 3371 .loc 1 2106 34 ARM GAS /tmp/ccs34gJO.s page 97 3372 01b6 274A ldr r2, .L185+4 3373 01b8 9A62 str r2, [r3, #40] 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 3374 .loc 1 2109 7 3375 01ba FB68 ldr r3, [r7, #12] 3376 01bc 9B6D ldr r3, [r3, #88] 3377 .loc 1 2109 35 3378 01be 264A ldr r2, .L185+8 3379 01c0 1A63 str r2, [r3, #48] 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 3380 .loc 1 2112 7 3381 01c2 FB68 ldr r3, [r7, #12] 3382 01c4 9B6D ldr r3, [r3, #88] 3383 .loc 1 2112 35 3384 01c6 0022 movs r2, #0 3385 01c8 5A63 str r2, [r3, #52] 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBu 3386 .loc 1 2115 17 3387 01ca FB68 ldr r3, [r7, #12] 3388 01cc 986D ldr r0, [r3, #88] 3389 .loc 1 2115 63 3390 01ce FB68 ldr r3, [r7, #12] 3391 01d0 1B68 ldr r3, [r3] 3392 .loc 1 2115 58 3393 01d2 0C33 adds r3, r3, #12 3394 .loc 1 2115 17 3395 01d4 1946 mov r1, r3 3396 .loc 1 2115 93 3397 01d6 FB68 ldr r3, [r7, #12] 3398 01d8 1B6C ldr r3, [r3, #64] 3399 .loc 1 2115 17 3400 01da 1A46 mov r2, r3 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3401 .loc 1 2116 38 3402 01dc FB68 ldr r3, [r7, #12] 3403 01de B3F84630 ldrh r3, [r3, #70] @ movhi 3404 01e2 9BB2 uxth r3, r3 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3405 .loc 1 2115 17 3406 01e4 FFF7FEFF bl HAL_DMA_Start_IT 3407 01e8 0346 mov r3, r0 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3408 .loc 1 2115 6 discriminator 1 3409 01ea 002B cmp r3, #0 3410 01ec 08D0 beq .L183 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3411 .loc 1 2119 5 3412 01ee FB68 ldr r3, [r7, #12] 3413 01f0 1B6E ldr r3, [r3, #96] ARM GAS /tmp/ccs34gJO.s page 98 3414 01f2 43F01002 orr r2, r3, #16 3415 01f6 FB68 ldr r3, [r7, #12] 3416 01f8 1A66 str r2, [r3, #96] 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3417 .loc 1 2120 15 3418 01fa 0123 movs r3, #1 3419 01fc FB75 strb r3, [r7, #23] 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3420 .loc 1 2122 5 3421 01fe 1EE0 b .L172 3422 .L183: 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 3423 .loc 1 2126 12 3424 0200 FB68 ldr r3, [r7, #12] 3425 0202 1B68 ldr r3, [r3] 3426 .loc 1 2126 22 3427 0204 1B68 ldr r3, [r3] 3428 .loc 1 2126 28 3429 0206 03F04003 and r3, r3, #64 3430 .loc 1 2126 6 3431 020a 402B cmp r3, #64 3432 020c 07D0 beq .L184 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 3433 .loc 1 2129 5 3434 020e FB68 ldr r3, [r7, #12] 3435 0210 1B68 ldr r3, [r3] 3436 0212 1A68 ldr r2, [r3] 3437 0214 FB68 ldr r3, [r7, #12] 3438 0216 1B68 ldr r3, [r3] 3439 0218 42F04002 orr r2, r2, #64 3440 021c 1A60 str r2, [r3] 3441 .L184: 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 3442 .loc 1 2133 3 3443 021e FB68 ldr r3, [r7, #12] 3444 0220 1B68 ldr r3, [r3] 3445 0222 5A68 ldr r2, [r3, #4] 3446 0224 FB68 ldr r3, [r7, #12] 3447 0226 1B68 ldr r3, [r3] 3448 0228 42F02002 orr r2, r2, #32 3449 022c 5A60 str r2, [r3, #4] 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3450 .loc 1 2136 3 3451 022e FB68 ldr r3, [r7, #12] 3452 0230 1B68 ldr r3, [r3] 3453 0232 5A68 ldr r2, [r3, #4] ARM GAS /tmp/ccs34gJO.s page 99 3454 0234 FB68 ldr r3, [r7, #12] 3455 0236 1B68 ldr r3, [r3] 3456 0238 42F00102 orr r2, r2, #1 3457 023c 5A60 str r2, [r3, #4] 3458 .L172: 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error: 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 3459 .loc 1 2140 3 3460 023e FB68 ldr r3, [r7, #12] 3461 0240 0022 movs r2, #0 3462 0242 83F85C20 strb r2, [r3, #92] 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3463 .loc 1 2141 10 3464 0246 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 3465 .L174: 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3466 .loc 1 2142 1 3467 0248 1846 mov r0, r3 3468 024a 1837 adds r7, r7, #24 3469 .cfi_def_cfa_offset 8 3470 024c BD46 mov sp, r7 3471 .cfi_def_cfa_register 13 3472 @ sp needed 3473 024e 80BD pop {r7, pc} 3474 .L186: 3475 .align 2 3476 .L185: 3477 0250 00000000 .word SPI_DMAHalfReceiveCplt 3478 0254 00000000 .word SPI_DMAReceiveCplt 3479 0258 00000000 .word SPI_DMAError 3480 .cfi_endproc 3481 .LFE141: 3483 .section .text.HAL_SPI_TransmitReceive_DMA,"ax",%progbits 3484 .align 1 3485 .global HAL_SPI_TransmitReceive_DMA 3486 .syntax unified 3487 .thumb 3488 .thumb_func 3490 HAL_SPI_TransmitReceive_DMA: 3491 .LFB142: 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Transmit and Receive an amount of data in non-blocking mode with DMA. 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pTxData pointer to transmission data buffer 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param pRxData pointer to reception data buffer 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When the CRC feature is enabled the pRxData Length must be Size + 1 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Size amount of data to be sent 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *p 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint16_t Size) 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3492 .loc 1 2156 1 ARM GAS /tmp/ccs34gJO.s page 100 3493 .cfi_startproc 3494 @ args = 0, pretend = 0, frame = 24 3495 @ frame_needed = 1, uses_anonymous_args = 0 3496 0000 80B5 push {r7, lr} 3497 .cfi_def_cfa_offset 8 3498 .cfi_offset 7, -8 3499 .cfi_offset 14, -4 3500 0002 86B0 sub sp, sp, #24 3501 .cfi_def_cfa_offset 32 3502 0004 00AF add r7, sp, #0 3503 .cfi_def_cfa_register 7 3504 0006 F860 str r0, [r7, #12] 3505 0008 B960 str r1, [r7, #8] 3506 000a 7A60 str r2, [r7, #4] 3507 000c 7B80 strh r3, [r7, #2] @ movhi 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_mode; 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef tmp_state; 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 3508 .loc 1 2159 21 3509 000e 0023 movs r3, #0 3510 0010 FB75 strb r3, [r7, #23] 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check rx & tx dma handles */ 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmarx)); 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DMA_HANDLE(hspi->hdmatx)); 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check Direction parameter */ 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** assert_param(IS_SPI_DIRECTION_2LINES(hspi->Init.Direction)); 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process locked */ 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 3511 .loc 1 2169 3 3512 0012 FB68 ldr r3, [r7, #12] 3513 0014 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 3514 0018 012B cmp r3, #1 3515 001a 01D1 bne .L188 3516 .loc 1 2169 3 is_stmt 0 discriminator 1 3517 001c 0223 movs r3, #2 3518 .loc 1 2169 3 3519 001e 72E1 b .L189 3520 .L188: 3521 .loc 1 2169 3 discriminator 2 3522 0020 FB68 ldr r3, [r7, #12] 3523 0022 0122 movs r2, #1 3524 0024 83F85C20 strb r2, [r3, #92] 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init temporary variables */ 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_state = hspi->State; 3525 .loc 1 2172 23 is_stmt 1 3526 0028 FB68 ldr r3, [r7, #12] 3527 002a 93F85D30 ldrb r3, [r3, #93] 3528 002e BB75 strb r3, [r7, #22] 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_mode = hspi->Init.Mode; 3529 .loc 1 2173 23 3530 0030 FB68 ldr r3, [r7, #12] 3531 0032 5B68 ldr r3, [r3, #4] 3532 0034 3B61 str r3, [r7, #16] ARM GAS /tmp/ccs34gJO.s page 101 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (!((tmp_state == HAL_SPI_STATE_READY) || 3533 .loc 1 2175 6 3534 0036 BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 3535 0038 012B cmp r3, #1 3536 003a 0DD0 beq .L190 3537 .loc 1 2175 7 discriminator 1 3538 003c 3B69 ldr r3, [r7, #16] 3539 003e B3F5827F cmp r3, #260 3540 0042 06D1 bne .L191 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ((tmp_mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES) && (tmp_st 3541 .loc 1 2176 54 3542 0044 FB68 ldr r3, [r7, #12] 3543 0046 9B68 ldr r3, [r3, #8] 3544 .loc 1 2176 40 3545 0048 002B cmp r3, #0 3546 004a 02D1 bne .L191 3547 .loc 1 2176 90 discriminator 1 3548 004c BB7D ldrb r3, [r7, #22] @ zero_extendqisi2 3549 004e 042B cmp r3, #4 3550 0050 02D0 beq .L190 3551 .L191: 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_BUSY; 3552 .loc 1 2178 15 3553 0052 0223 movs r3, #2 3554 0054 FB75 strb r3, [r7, #23] 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3555 .loc 1 2179 5 3556 0056 51E1 b .L192 3557 .L190: 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0U)) 3558 .loc 1 2182 6 3559 0058 BB68 ldr r3, [r7, #8] 3560 005a 002B cmp r3, #0 3561 005c 05D0 beq .L193 3562 .loc 1 2182 25 discriminator 1 3563 005e 7B68 ldr r3, [r7, #4] 3564 0060 002B cmp r3, #0 3565 0062 02D0 beq .L193 3566 .loc 1 2182 46 discriminator 2 3567 0064 7B88 ldrh r3, [r7, #2] 3568 0066 002B cmp r3, #0 3569 0068 02D1 bne .L194 3570 .L193: 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3571 .loc 1 2184 15 3572 006a 0123 movs r3, #1 3573 006c FB75 strb r3, [r7, #23] 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3574 .loc 1 2185 5 3575 006e 45E1 b .L192 3576 .L194: 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccs34gJO.s page 102 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Don't overwrite in case of HAL_SPI_STATE_BUSY_RX */ 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_RX) 3577 .loc 1 2189 11 3578 0070 FB68 ldr r3, [r7, #12] 3579 0072 93F85D30 ldrb r3, [r3, #93] 3580 0076 DBB2 uxtb r3, r3 3581 .loc 1 2189 6 3582 0078 042B cmp r3, #4 3583 007a 03D0 beq .L195 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_BUSY_TX_RX; 3584 .loc 1 2191 17 3585 007c FB68 ldr r3, [r7, #12] 3586 007e 0522 movs r2, #5 3587 0080 83F85D20 strb r2, [r3, #93] 3588 .L195: 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the transaction information */ 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 3589 .loc 1 2195 21 3590 0084 FB68 ldr r3, [r7, #12] 3591 0086 0022 movs r2, #0 3592 0088 1A66 str r2, [r3, #96] 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr = (uint8_t *)pTxData; 3593 .loc 1 2196 21 3594 008a FB68 ldr r3, [r7, #12] 3595 008c BA68 ldr r2, [r7, #8] 3596 008e 9A63 str r2, [r3, #56] 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferSize = Size; 3597 .loc 1 2197 21 3598 0090 FB68 ldr r3, [r7, #12] 3599 0092 7A88 ldrh r2, [r7, #2] @ movhi 3600 0094 9A87 strh r2, [r3, #60] @ movhi 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = Size; 3601 .loc 1 2198 21 3602 0096 FB68 ldr r3, [r7, #12] 3603 0098 7A88 ldrh r2, [r7, #2] @ movhi 3604 009a DA87 strh r2, [r3, #62] @ movhi 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr = (uint8_t *)pRxData; 3605 .loc 1 2199 21 3606 009c FB68 ldr r3, [r7, #12] 3607 009e 7A68 ldr r2, [r7, #4] 3608 00a0 1A64 str r2, [r3, #64] 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferSize = Size; 3609 .loc 1 2200 21 3610 00a2 FB68 ldr r3, [r7, #12] 3611 00a4 7A88 ldrh r2, [r7, #2] @ movhi 3612 00a6 A3F84420 strh r2, [r3, #68] @ movhi 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = Size; 3613 .loc 1 2201 21 3614 00aa FB68 ldr r3, [r7, #12] 3615 00ac 7A88 ldrh r2, [r7, #2] @ movhi 3616 00ae A3F84620 strh r2, [r3, #70] @ movhi 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init field not used in handle to zero */ ARM GAS /tmp/ccs34gJO.s page 103 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = NULL; 3617 .loc 1 2204 21 3618 00b2 FB68 ldr r3, [r7, #12] 3619 00b4 0022 movs r2, #0 3620 00b6 DA64 str r2, [r3, #76] 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = NULL; 3621 .loc 1 2205 21 3622 00b8 FB68 ldr r3, [r7, #12] 3623 00ba 0022 movs r2, #0 3624 00bc 1A65 str r2, [r3, #80] 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if defined (STM32F302xC) || defined (STM32F303xC) || defined (STM32F373xC) || defined (STM32F358xx 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Packing mode management is enabled by the DMA settings */ 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize <= SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.MemDataAlignment == DMA_MDA 3625 .loc 1 2217 18 3626 00be FB68 ldr r3, [r7, #12] 3627 00c0 DB68 ldr r3, [r3, #12] 3628 .loc 1 2217 6 3629 00c2 B3F5E06F cmp r3, #1792 3630 00c6 08D8 bhi .L196 3631 .loc 1 2217 58 discriminator 1 3632 00c8 FB68 ldr r3, [r7, #12] 3633 00ca 9B6D ldr r3, [r3, #88] 3634 .loc 1 2217 72 discriminator 1 3635 00cc 5B69 ldr r3, [r3, #20] 3636 .loc 1 2217 50 discriminator 1 3637 00ce B3F5806F cmp r3, #1024 3638 00d2 02D1 bne .L196 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restriction the DMA data received is not allowed in this mode */ 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3639 .loc 1 2220 15 3640 00d4 0123 movs r3, #1 3641 00d6 FB75 strb r3, [r7, #23] 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3642 .loc 1 2221 5 3643 00d8 10E1 b .L192 3644 .L196: 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* STM32F302xC || STM32F303xC || STM32F373xC || STM32F358xx || STM32F378xx */ 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset the threshold bit */ 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX | SPI_CR2_LDMARX); 3645 .loc 1 2226 3 3646 00da FB68 ldr r3, [r7, #12] 3647 00dc 1B68 ldr r3, [r3] 3648 00de 5A68 ldr r2, [r3, #4] 3649 00e0 FB68 ldr r3, [r7, #12] 3650 00e2 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 104 3651 00e4 22F4C042 bic r2, r2, #24576 3652 00e8 5A60 str r2, [r3, #4] 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The packing mode management is enabled by the DMA settings according the spi data size */ 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 3653 .loc 1 2229 17 3654 00ea FB68 ldr r3, [r7, #12] 3655 00ec DB68 ldr r3, [r3, #12] 3656 .loc 1 2229 6 3657 00ee B3F5E06F cmp r3, #1792 3658 00f2 08D9 bls .L197 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set fiforxthreshold according the reception data length: 16bit */ 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3659 .loc 1 2232 5 3660 00f4 FB68 ldr r3, [r7, #12] 3661 00f6 1B68 ldr r3, [r3] 3662 00f8 5A68 ldr r2, [r3, #4] 3663 00fa FB68 ldr r3, [r7, #12] 3664 00fc 1B68 ldr r3, [r3] 3665 00fe 22F48052 bic r2, r2, #4096 3666 0102 5A60 str r2, [r3, #4] 3667 0104 6FE0 b .L198 3668 .L197: 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3669 .loc 1 2237 5 3670 0106 FB68 ldr r3, [r7, #12] 3671 0108 1B68 ldr r3, [r3] 3672 010a 5A68 ldr r2, [r3, #4] 3673 010c FB68 ldr r3, [r7, #12] 3674 010e 1B68 ldr r3, [r3] 3675 0110 42F48052 orr r2, r2, #4096 3676 0114 5A60 str r2, [r3, #4] 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 3677 .loc 1 2239 13 3678 0116 FB68 ldr r3, [r7, #12] 3679 0118 5B6D ldr r3, [r3, #84] 3680 .loc 1 2239 27 3681 011a 5B69 ldr r3, [r3, #20] 3682 .loc 1 2239 8 3683 011c B3F5806F cmp r3, #1024 3684 0120 26D1 bne .L199 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->TxXferSize & 0x1U) == 0x0U) 3685 .loc 1 2241 16 3686 0122 FB68 ldr r3, [r7, #12] 3687 0124 9B8F ldrh r3, [r3, #60] 3688 .loc 1 2241 29 3689 0126 03F00103 and r3, r3, #1 3690 .loc 1 2241 10 3691 012a 002B cmp r3, #0 3692 012c 0FD1 bne .L200 ARM GAS /tmp/ccs34gJO.s page 105 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 3693 .loc 1 2243 9 3694 012e FB68 ldr r3, [r7, #12] 3695 0130 1B68 ldr r3, [r3] 3696 0132 5A68 ldr r2, [r3, #4] 3697 0134 FB68 ldr r3, [r7, #12] 3698 0136 1B68 ldr r3, [r3] 3699 0138 22F48042 bic r2, r2, #16384 3700 013c 5A60 str r2, [r3, #4] 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = hspi->TxXferCount >> 1U; 3701 .loc 1 2244 33 3702 013e FB68 ldr r3, [r7, #12] 3703 0140 DB8F ldrh r3, [r3, #62] @ movhi 3704 0142 9BB2 uxth r3, r3 3705 .loc 1 2244 27 3706 0144 5B08 lsrs r3, r3, #1 3707 0146 9AB2 uxth r2, r3 3708 0148 FB68 ldr r3, [r7, #12] 3709 014a DA87 strh r2, [r3, #62] @ movhi 3710 014c 10E0 b .L199 3711 .L200: 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMATX); 3712 .loc 1 2248 9 3713 014e FB68 ldr r3, [r7, #12] 3714 0150 1B68 ldr r3, [r3] 3715 0152 5A68 ldr r2, [r3, #4] 3716 0154 FB68 ldr r3, [r7, #12] 3717 0156 1B68 ldr r3, [r3] 3718 0158 42F48042 orr r2, r2, #16384 3719 015c 5A60 str r2, [r3, #4] 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = (hspi->TxXferCount >> 1U) + 1U; 3720 .loc 1 2249 34 3721 015e FB68 ldr r3, [r7, #12] 3722 0160 DB8F ldrh r3, [r3, #62] @ movhi 3723 0162 9BB2 uxth r3, r3 3724 .loc 1 2249 55 3725 0164 5B08 lsrs r3, r3, #1 3726 0166 9BB2 uxth r3, r3 3727 0168 0133 adds r3, r3, #1 3728 016a 9AB2 uxth r2, r3 3729 .loc 1 2249 27 3730 016c FB68 ldr r3, [r7, #12] 3731 016e DA87 strh r2, [r3, #62] @ movhi 3732 .L199: 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 3733 .loc 1 2253 13 3734 0170 FB68 ldr r3, [r7, #12] 3735 0172 9B6D ldr r3, [r3, #88] 3736 .loc 1 2253 27 3737 0174 5B69 ldr r3, [r3, #20] ARM GAS /tmp/ccs34gJO.s page 106 3738 .loc 1 2253 8 3739 0176 B3F5806F cmp r3, #1024 3740 017a 34D1 bne .L198 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 16bit */ 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3741 .loc 1 2256 7 3742 017c FB68 ldr r3, [r7, #12] 3743 017e 1B68 ldr r3, [r3] 3744 0180 5A68 ldr r2, [r3, #4] 3745 0182 FB68 ldr r3, [r7, #12] 3746 0184 1B68 ldr r3, [r3] 3747 0186 22F48052 bic r2, r2, #4096 3748 018a 5A60 str r2, [r3, #4] 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount & 0x1U) == 0x0U) 3749 .loc 1 2258 16 3750 018c FB68 ldr r3, [r7, #12] 3751 018e B3F84630 ldrh r3, [r3, #70] @ movhi 3752 0192 9BB2 uxth r3, r3 3753 .loc 1 2258 30 3754 0194 03F00103 and r3, r3, #1 3755 .loc 1 2258 10 3756 0198 002B cmp r3, #0 3757 019a 11D1 bne .L201 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 3758 .loc 1 2260 9 3759 019c FB68 ldr r3, [r7, #12] 3760 019e 1B68 ldr r3, [r3] 3761 01a0 5A68 ldr r2, [r3, #4] 3762 01a2 FB68 ldr r3, [r7, #12] 3763 01a4 1B68 ldr r3, [r3] 3764 01a6 22F40052 bic r2, r2, #8192 3765 01aa 5A60 str r2, [r3, #4] 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = hspi->RxXferCount >> 1U; 3766 .loc 1 2261 33 3767 01ac FB68 ldr r3, [r7, #12] 3768 01ae B3F84630 ldrh r3, [r3, #70] @ movhi 3769 01b2 9BB2 uxth r3, r3 3770 .loc 1 2261 27 3771 01b4 5B08 lsrs r3, r3, #1 3772 01b6 9AB2 uxth r2, r3 3773 01b8 FB68 ldr r3, [r7, #12] 3774 01ba A3F84620 strh r2, [r3, #70] @ movhi 3775 01be 12E0 b .L198 3776 .L201: 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_LDMARX); 3777 .loc 1 2265 9 3778 01c0 FB68 ldr r3, [r7, #12] 3779 01c2 1B68 ldr r3, [r3] 3780 01c4 5A68 ldr r2, [r3, #4] 3781 01c6 FB68 ldr r3, [r7, #12] 3782 01c8 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 107 3783 01ca 42F40052 orr r2, r2, #8192 3784 01ce 5A60 str r2, [r3, #4] 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = (hspi->RxXferCount >> 1U) + 1U; 3785 .loc 1 2266 34 3786 01d0 FB68 ldr r3, [r7, #12] 3787 01d2 B3F84630 ldrh r3, [r3, #70] @ movhi 3788 01d6 9BB2 uxth r3, r3 3789 .loc 1 2266 55 3790 01d8 5B08 lsrs r3, r3, #1 3791 01da 9BB2 uxth r3, r3 3792 01dc 0133 adds r3, r3, #1 3793 01de 9AB2 uxth r2, r3 3794 .loc 1 2266 27 3795 01e0 FB68 ldr r3, [r7, #12] 3796 01e2 A3F84620 strh r2, [r3, #70] @ movhi 3797 .L198: 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if we are in Rx only or in Rx/Tx Mode and configure the DMA transfer complete callback * 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 3798 .loc 1 2272 11 3799 01e6 FB68 ldr r3, [r7, #12] 3800 01e8 93F85D30 ldrb r3, [r3, #93] 3801 01ec DBB2 uxtb r3, r3 3802 .loc 1 2272 6 3803 01ee 042B cmp r3, #4 3804 01f0 08D1 bne .L202 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Rx DMA Half transfer complete callback */ 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfReceiveCplt; 3805 .loc 1 2275 9 3806 01f2 FB68 ldr r3, [r7, #12] 3807 01f4 9B6D ldr r3, [r3, #88] 3808 .loc 1 2275 40 3809 01f6 464A ldr r2, .L207 3810 01f8 DA62 str r2, [r3, #44] 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMAReceiveCplt; 3811 .loc 1 2276 9 3812 01fa FB68 ldr r3, [r7, #12] 3813 01fc 9B6D ldr r3, [r3, #88] 3814 .loc 1 2276 40 3815 01fe 454A ldr r2, .L207+4 3816 0200 9A62 str r2, [r3, #40] 3817 0202 07E0 b .L203 3818 .L202: 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx/Rx DMA Half transfer complete callback */ 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferHalfCpltCallback = SPI_DMAHalfTransmitReceiveCplt; 3819 .loc 1 2281 9 3820 0204 FB68 ldr r3, [r7, #12] 3821 0206 9B6D ldr r3, [r3, #88] 3822 .loc 1 2281 40 3823 0208 434A ldr r2, .L207+8 ARM GAS /tmp/ccs34gJO.s page 108 3824 020a DA62 str r2, [r3, #44] 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferCpltCallback = SPI_DMATransmitReceiveCplt; 3825 .loc 1 2282 9 3826 020c FB68 ldr r3, [r7, #12] 3827 020e 9B6D ldr r3, [r3, #88] 3828 .loc 1 2282 40 3829 0210 424A ldr r2, .L207+12 3830 0212 9A62 str r2, [r3, #40] 3831 .L203: 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA error callback */ 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferErrorCallback = SPI_DMAError; 3832 .loc 1 2286 7 3833 0214 FB68 ldr r3, [r7, #12] 3834 0216 9B6D ldr r3, [r3, #88] 3835 .loc 1 2286 35 3836 0218 414A ldr r2, .L207+16 3837 021a 1A63 str r2, [r3, #48] 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the DMA AbortCpltCallback */ 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 3838 .loc 1 2289 7 3839 021c FB68 ldr r3, [r7, #12] 3840 021e 9B6D ldr r3, [r3, #88] 3841 .loc 1 2289 35 3842 0220 0022 movs r2, #0 3843 0222 5A63 str r2, [r3, #52] 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Rx DMA Stream/Channel */ 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmarx, (uint32_t)&hspi->Instance->DR, (uint32_t)hspi->pRxBu 3844 .loc 1 2292 17 3845 0224 FB68 ldr r3, [r7, #12] 3846 0226 986D ldr r0, [r3, #88] 3847 .loc 1 2292 63 3848 0228 FB68 ldr r3, [r7, #12] 3849 022a 1B68 ldr r3, [r3] 3850 .loc 1 2292 58 3851 022c 0C33 adds r3, r3, #12 3852 .loc 1 2292 17 3853 022e 1946 mov r1, r3 3854 .loc 1 2292 93 3855 0230 FB68 ldr r3, [r7, #12] 3856 0232 1B6C ldr r3, [r3, #64] 3857 .loc 1 2292 17 3858 0234 1A46 mov r2, r3 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3859 .loc 1 2293 38 3860 0236 FB68 ldr r3, [r7, #12] 3861 0238 B3F84630 ldrh r3, [r3, #70] @ movhi 3862 023c 9BB2 uxth r3, r3 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3863 .loc 1 2292 17 3864 023e FFF7FEFF bl HAL_DMA_Start_IT 3865 0242 0346 mov r3, r0 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount)) 3866 .loc 1 2292 6 discriminator 1 ARM GAS /tmp/ccs34gJO.s page 109 3867 0244 002B cmp r3, #0 3868 0246 08D0 beq .L204 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3869 .loc 1 2296 5 3870 0248 FB68 ldr r3, [r7, #12] 3871 024a 1B6E ldr r3, [r3, #96] 3872 024c 43F01002 orr r2, r3, #16 3873 0250 FB68 ldr r3, [r7, #12] 3874 0252 1A66 str r2, [r3, #96] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3875 .loc 1 2297 15 3876 0254 0123 movs r3, #1 3877 0256 FB75 strb r3, [r7, #23] 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3878 .loc 1 2299 5 3879 0258 50E0 b .L192 3880 .L204: 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Rx DMA Request */ 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 3881 .loc 1 2303 3 3882 025a FB68 ldr r3, [r7, #12] 3883 025c 1B68 ldr r3, [r3] 3884 025e 5A68 ldr r2, [r3, #4] 3885 0260 FB68 ldr r3, [r7, #12] 3886 0262 1B68 ldr r3, [r3] 3887 0264 42F00102 orr r2, r2, #1 3888 0268 5A60 str r2, [r3, #4] 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI Tx DMA transfer complete callback as NULL because the communication closing 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** is performed in DMA reception complete callback */ 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferHalfCpltCallback = NULL; 3889 .loc 1 2307 7 3890 026a FB68 ldr r3, [r7, #12] 3891 026c 5B6D ldr r3, [r3, #84] 3892 .loc 1 2307 38 3893 026e 0022 movs r2, #0 3894 0270 DA62 str r2, [r3, #44] 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferCpltCallback = NULL; 3895 .loc 1 2308 7 3896 0272 FB68 ldr r3, [r7, #12] 3897 0274 5B6D ldr r3, [r3, #84] 3898 .loc 1 2308 38 3899 0276 0022 movs r2, #0 3900 0278 9A62 str r2, [r3, #40] 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferErrorCallback = NULL; 3901 .loc 1 2309 7 3902 027a FB68 ldr r3, [r7, #12] 3903 027c 5B6D ldr r3, [r3, #84] 3904 .loc 1 2309 38 3905 027e 0022 movs r2, #0 3906 0280 1A63 str r2, [r3, #48] 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; ARM GAS /tmp/ccs34gJO.s page 110 3907 .loc 1 2310 7 3908 0282 FB68 ldr r3, [r7, #12] 3909 0284 5B6D ldr r3, [r3, #84] 3910 .loc 1 2310 38 3911 0286 0022 movs r2, #0 3912 0288 5A63 str r2, [r3, #52] 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the Tx DMA Stream/Channel */ 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Start_IT(hspi->hdmatx, (uint32_t)hspi->pTxBuffPtr, (uint32_t)&hspi->Instanc 3913 .loc 1 2313 17 3914 028a FB68 ldr r3, [r7, #12] 3915 028c 586D ldr r0, [r3, #84] 3916 .loc 1 2313 62 3917 028e FB68 ldr r3, [r7, #12] 3918 0290 9B6B ldr r3, [r3, #56] 3919 .loc 1 2313 17 3920 0292 1946 mov r1, r3 3921 .loc 1 2313 91 3922 0294 FB68 ldr r3, [r7, #12] 3923 0296 1B68 ldr r3, [r3] 3924 .loc 1 2313 86 3925 0298 0C33 adds r3, r3, #12 3926 .loc 1 2313 17 3927 029a 1A46 mov r2, r3 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3928 .loc 1 2314 38 3929 029c FB68 ldr r3, [r7, #12] 3930 029e DB8F ldrh r3, [r3, #62] @ movhi 3931 02a0 9BB2 uxth r3, r3 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3932 .loc 1 2313 17 3933 02a2 FFF7FEFF bl HAL_DMA_Start_IT 3934 02a6 0346 mov r3, r0 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount)) 3935 .loc 1 2313 6 discriminator 1 3936 02a8 002B cmp r3, #0 3937 02aa 08D0 beq .L205 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Update SPI error code */ 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 3938 .loc 1 2317 5 3939 02ac FB68 ldr r3, [r7, #12] 3940 02ae 1B6E ldr r3, [r3, #96] 3941 02b0 43F01002 orr r2, r3, #16 3942 02b4 FB68 ldr r3, [r7, #12] 3943 02b6 1A66 str r2, [r3, #96] 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 3944 .loc 1 2318 15 3945 02b8 0123 movs r3, #1 3946 02ba FB75 strb r3, [r7, #23] 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** goto error; 3947 .loc 1 2320 5 3948 02bc 1EE0 b .L192 3949 .L205: 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 111 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if the SPI is already enabled */ 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Instance->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE) 3950 .loc 1 2324 12 3951 02be FB68 ldr r3, [r7, #12] 3952 02c0 1B68 ldr r3, [r3] 3953 .loc 1 2324 22 3954 02c2 1B68 ldr r3, [r3] 3955 .loc 1 2324 28 3956 02c4 03F04003 and r3, r3, #64 3957 .loc 1 2324 6 3958 02c8 402B cmp r3, #64 3959 02ca 07D0 beq .L206 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable SPI peripheral */ 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE(hspi); 3960 .loc 1 2327 5 3961 02cc FB68 ldr r3, [r7, #12] 3962 02ce 1B68 ldr r3, [r3] 3963 02d0 1A68 ldr r2, [r3] 3964 02d2 FB68 ldr r3, [r7, #12] 3965 02d4 1B68 ldr r3, [r3] 3966 02d6 42F04002 orr r2, r2, #64 3967 02da 1A60 str r2, [r3] 3968 .L206: 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI Error Interrupt Bit */ 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_ENABLE_IT(hspi, (SPI_IT_ERR)); 3969 .loc 1 2330 3 3970 02dc FB68 ldr r3, [r7, #12] 3971 02de 1B68 ldr r3, [r3] 3972 02e0 5A68 ldr r2, [r3, #4] 3973 02e2 FB68 ldr r3, [r7, #12] 3974 02e4 1B68 ldr r3, [r3] 3975 02e6 42F02002 orr r2, r2, #32 3976 02ea 5A60 str r2, [r3, #4] 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable Tx DMA Request */ 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 3977 .loc 1 2333 3 3978 02ec FB68 ldr r3, [r7, #12] 3979 02ee 1B68 ldr r3, [r3] 3980 02f0 5A68 ldr r2, [r3, #4] 3981 02f2 FB68 ldr r3, [r7, #12] 3982 02f4 1B68 ldr r3, [r3] 3983 02f6 42F00202 orr r2, r2, #2 3984 02fa 5A60 str r2, [r3, #4] 3985 .L192: 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** error : 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 3986 .loc 1 2337 3 3987 02fc FB68 ldr r3, [r7, #12] 3988 02fe 0022 movs r2, #0 3989 0300 83F85C20 strb r2, [r3, #92] 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 3990 .loc 1 2338 10 ARM GAS /tmp/ccs34gJO.s page 112 3991 0304 FB7D ldrb r3, [r7, #23] @ zero_extendqisi2 3992 .L189: 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3993 .loc 1 2339 1 3994 0306 1846 mov r0, r3 3995 0308 1837 adds r7, r7, #24 3996 .cfi_def_cfa_offset 8 3997 030a BD46 mov sp, r7 3998 .cfi_def_cfa_register 13 3999 @ sp needed 4000 030c 80BD pop {r7, pc} 4001 .L208: 4002 030e 00BF .align 2 4003 .L207: 4004 0310 00000000 .word SPI_DMAHalfReceiveCplt 4005 0314 00000000 .word SPI_DMAReceiveCplt 4006 0318 00000000 .word SPI_DMAHalfTransmitReceiveCplt 4007 031c 00000000 .word SPI_DMATransmitReceiveCplt 4008 0320 00000000 .word SPI_DMAError 4009 .cfi_endproc 4010 .LFE142: 4012 .section .text.HAL_SPI_Abort,"ax",%progbits 4013 .align 1 4014 .global HAL_SPI_Abort 4015 .syntax unified 4016 .thumb 4017 .thumb_func 4019 HAL_SPI_Abort: 4020 .LFB143: 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (blocking mode). 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4021 .loc 1 2355 1 4022 .cfi_startproc 4023 @ args = 0, pretend = 0, frame = 32 4024 @ frame_needed = 1, uses_anonymous_args = 0 4025 0000 80B5 push {r7, lr} 4026 .cfi_def_cfa_offset 8 4027 .cfi_offset 7, -8 4028 .cfi_offset 14, -4 4029 0002 8AB0 sub sp, sp, #40 4030 .cfi_def_cfa_offset 48 4031 0004 02AF add r7, sp, #8 4032 .cfi_def_cfa 7, 40 ARM GAS /tmp/ccs34gJO.s page 113 4033 0006 7860 str r0, [r7, #4] 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 4034 .loc 1 2361 13 4035 0008 0023 movs r3, #0 4036 000a FB77 strb r3, [r7, #31] 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 4037 .loc 1 2362 61 4038 000c 884B ldr r3, .L228 4039 000e 1B68 ldr r3, [r3] 4040 0010 884A ldr r2, .L228+4 4041 0012 A2FB0323 umull r2, r3, r2, r3 4042 0016 5B0A lsrs r3, r3, #9 4043 .loc 1 2362 36 4044 0018 6422 movs r2, #100 4045 001a 02FB03F3 mul r3, r2, r3 4046 .loc 1 2362 14 4047 001e 7B61 str r3, [r7, #20] 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4048 .loc 1 2363 9 4049 0020 7B69 ldr r3, [r7, #20] 4050 0022 BB61 str r3, [r7, #24] 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 4051 .loc 1 2366 3 4052 0024 7B68 ldr r3, [r7, #4] 4053 0026 1B68 ldr r3, [r3] 4054 0028 5A68 ldr r2, [r3, #4] 4055 002a 7B68 ldr r3, [r7, #4] 4056 002c 1B68 ldr r3, [r3] 4057 002e 22F02002 bic r2, r2, #32 4058 0032 5A60 str r2, [r3, #4] 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE, RXNEIE and ERRIE(mode fault event, overrun error, TI frame error) interrupts */ 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 4059 .loc 1 2369 7 4060 0034 7B68 ldr r3, [r7, #4] 4061 0036 1B68 ldr r3, [r3] 4062 0038 5B68 ldr r3, [r3, #4] 4063 003a 03F08003 and r3, r3, #128 4064 .loc 1 2369 6 4065 003e 802B cmp r3, #128 4066 0040 17D1 bne .L210 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 4067 .loc 1 2371 17 4068 0042 7B68 ldr r3, [r7, #4] 4069 0044 7C4A ldr r2, .L228+8 4070 0046 1A65 str r2, [r3, #80] 4071 .L213: 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do ARM GAS /tmp/ccs34gJO.s page 114 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 4072 .loc 1 2375 17 4073 0048 BB69 ldr r3, [r7, #24] 4074 .loc 1 2375 10 4075 004a 002B cmp r3, #0 4076 004c 06D1 bne .L211 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4077 .loc 1 2377 9 4078 004e 7B68 ldr r3, [r7, #4] 4079 0050 1B6E ldr r3, [r3, #96] 4080 0052 43F04002 orr r2, r3, #64 4081 0056 7B68 ldr r3, [r7, #4] 4082 0058 1A66 str r2, [r3, #96] 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4083 .loc 1 2378 9 4084 005a 08E0 b .L212 4085 .L211: 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 4086 .loc 1 2380 12 4087 005c BB69 ldr r3, [r7, #24] 4088 005e 013B subs r3, r3, #1 4089 0060 BB61 str r3, [r7, #24] 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4090 .loc 1 2381 18 4091 0062 7B68 ldr r3, [r7, #4] 4092 0064 93F85D30 ldrb r3, [r3, #93] 4093 0068 DBB2 uxtb r3, r3 4094 .loc 1 2381 26 4095 006a 072B cmp r3, #7 4096 006c ECD1 bne .L213 4097 .L212: 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4098 .loc 1 2383 11 4099 006e 7B69 ldr r3, [r7, #20] 4100 0070 BB61 str r3, [r7, #24] 4101 .L210: 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 4102 .loc 1 2386 7 4103 0072 7B68 ldr r3, [r7, #4] 4104 0074 1B68 ldr r3, [r3] 4105 0076 5B68 ldr r3, [r3, #4] 4106 0078 03F04003 and r3, r3, #64 4107 .loc 1 2386 6 4108 007c 402B cmp r3, #64 4109 007e 17D1 bne .L214 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 4110 .loc 1 2388 17 4111 0080 7B68 ldr r3, [r7, #4] 4112 0082 6E4A ldr r2, .L228+12 4113 0084 DA64 str r2, [r3, #76] ARM GAS /tmp/ccs34gJO.s page 115 4114 .L217: 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 4115 .loc 1 2392 17 4116 0086 BB69 ldr r3, [r7, #24] 4117 .loc 1 2392 10 4118 0088 002B cmp r3, #0 4119 008a 06D1 bne .L215 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4120 .loc 1 2394 9 4121 008c 7B68 ldr r3, [r7, #4] 4122 008e 1B6E ldr r3, [r3, #96] 4123 0090 43F04002 orr r2, r3, #64 4124 0094 7B68 ldr r3, [r7, #4] 4125 0096 1A66 str r2, [r3, #96] 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4126 .loc 1 2395 9 4127 0098 08E0 b .L216 4128 .L215: 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 4129 .loc 1 2397 12 4130 009a BB69 ldr r3, [r7, #24] 4131 009c 013B subs r3, r3, #1 4132 009e BB61 str r3, [r7, #24] 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4133 .loc 1 2398 18 4134 00a0 7B68 ldr r3, [r7, #4] 4135 00a2 93F85D30 ldrb r3, [r3, #93] 4136 00a6 DBB2 uxtb r3, r3 4137 .loc 1 2398 26 4138 00a8 072B cmp r3, #7 4139 00aa ECD1 bne .L217 4140 .L216: 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4141 .loc 1 2400 11 4142 00ac 7B69 ldr r3, [r7, #20] 4143 00ae BB61 str r3, [r7, #24] 4144 .L214: 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 4145 .loc 1 2404 7 4146 00b0 7B68 ldr r3, [r7, #4] 4147 00b2 1B68 ldr r3, [r3] 4148 00b4 5B68 ldr r3, [r3, #4] 4149 00b6 03F00203 and r3, r3, #2 4150 .loc 1 2404 6 4151 00ba 022B cmp r3, #2 4152 00bc 41D1 bne .L218 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel : use blocking DMA Abort API (no callback) */ ARM GAS /tmp/ccs34gJO.s page 116 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 4153 .loc 1 2407 13 4154 00be 7B68 ldr r3, [r7, #4] 4155 00c0 5B6D ldr r3, [r3, #84] 4156 .loc 1 2407 8 4157 00c2 002B cmp r3, #0 4158 00c4 3DD0 beq .L218 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4159 .loc 1 2411 11 4160 00c6 7B68 ldr r3, [r7, #4] 4161 00c8 5B6D ldr r3, [r3, #84] 4162 .loc 1 2411 39 4163 00ca 0022 movs r2, #0 4164 00cc 5A63 str r2, [r3, #52] 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmatx) != HAL_OK) 4165 .loc 1 2414 11 4166 00ce 7B68 ldr r3, [r7, #4] 4167 00d0 5B6D ldr r3, [r3, #84] 4168 00d2 1846 mov r0, r3 4169 00d4 FFF7FEFF bl HAL_DMA_Abort 4170 00d8 0346 mov r3, r0 4171 .loc 1 2414 10 discriminator 1 4172 00da 002B cmp r3, #0 4173 00dc 02D0 beq .L219 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4174 .loc 1 2416 25 4175 00de 7B68 ldr r3, [r7, #4] 4176 00e0 4022 movs r2, #64 4177 00e2 1A66 str r2, [r3, #96] 4178 .L219: 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN)); 4179 .loc 1 2420 7 4180 00e4 7B68 ldr r3, [r7, #4] 4181 00e6 1B68 ldr r3, [r3] 4182 00e8 5A68 ldr r2, [r3, #4] 4183 00ea 7B68 ldr r3, [r7, #4] 4184 00ec 1B68 ldr r3, [r3] 4185 00ee 22F00202 bic r2, r2, #2 4186 00f2 5A60 str r2, [r3, #4] 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 4187 .loc 1 2422 11 4188 00f4 FFF7FEFF bl HAL_GetTick 4189 00f8 0346 mov r3, r0 4190 .loc 1 2422 11 is_stmt 0 discriminator 1 4191 00fa 1A46 mov r2, r3 4192 00fc 6421 movs r1, #100 4193 00fe 7868 ldr r0, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 117 4194 0100 FFF7FEFF bl SPI_EndRxTxTransaction 4195 0104 0346 mov r3, r0 4196 .loc 1 2422 10 is_stmt 1 discriminator 2 4197 0106 002B cmp r3, #0 4198 0108 02D0 beq .L220 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4199 .loc 1 2424 25 4200 010a 7B68 ldr r3, [r7, #4] 4201 010c 4022 movs r2, #64 4202 010e 1A66 str r2, [r3, #96] 4203 .L220: 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4204 .loc 1 2428 7 4205 0110 7B68 ldr r3, [r7, #4] 4206 0112 1B68 ldr r3, [r3] 4207 0114 1A68 ldr r2, [r3] 4208 0116 7B68 ldr r3, [r7, #4] 4209 0118 1B68 ldr r3, [r3] 4210 011a 22F04002 bic r2, r2, #64 4211 011e 1A60 str r2, [r3] 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 4212 .loc 1 2431 11 4213 0120 FFF7FEFF bl HAL_GetTick 4214 0124 0346 mov r3, r0 4215 .loc 1 2431 11 is_stmt 0 discriminator 1 4216 0126 0093 str r3, [sp] 4217 0128 6423 movs r3, #100 4218 012a 0022 movs r2, #0 4219 012c 4FF4C061 mov r1, #1536 4220 0130 7868 ldr r0, [r7, #4] 4221 0132 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4222 0136 0346 mov r3, r0 4223 .loc 1 2431 10 is_stmt 1 discriminator 2 4224 0138 002B cmp r3, #0 4225 013a 02D0 beq .L218 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4226 .loc 1 2433 25 4227 013c 7B68 ldr r3, [r7, #4] 4228 013e 4022 movs r2, #64 4229 0140 1A66 str r2, [r3, #96] 4230 .L218: 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 4231 .loc 1 2439 7 4232 0142 7B68 ldr r3, [r7, #4] 4233 0144 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 118 4234 0146 5B68 ldr r3, [r3, #4] 4235 0148 03F00103 and r3, r3, #1 4236 .loc 1 2439 6 4237 014c 012B cmp r3, #1 4238 014e 43D1 bne .L221 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel : use blocking DMA Abort API (no callback) */ 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 4239 .loc 1 2442 13 4240 0150 7B68 ldr r3, [r7, #4] 4241 0152 9B6D ldr r3, [r3, #88] 4242 .loc 1 2442 8 4243 0154 002B cmp r3, #0 4244 0156 3FD0 beq .L221 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_AbortCpltCallback() at end of DMA abort procedure */ 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 4245 .loc 1 2446 11 4246 0158 7B68 ldr r3, [r7, #4] 4247 015a 9B6D ldr r3, [r3, #88] 4248 .loc 1 2446 39 4249 015c 0022 movs r2, #0 4250 015e 5A63 str r2, [r3, #52] 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort(hspi->hdmarx) != HAL_OK) 4251 .loc 1 2449 11 4252 0160 7B68 ldr r3, [r7, #4] 4253 0162 9B6D ldr r3, [r3, #88] 4254 0164 1846 mov r0, r3 4255 0166 FFF7FEFF bl HAL_DMA_Abort 4256 016a 0346 mov r3, r0 4257 .loc 1 2449 10 discriminator 1 4258 016c 002B cmp r3, #0 4259 016e 02D0 beq .L222 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4260 .loc 1 2451 25 4261 0170 7B68 ldr r3, [r7, #4] 4262 0172 4022 movs r2, #64 4263 0174 1A66 str r2, [r3, #96] 4264 .L222: 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable peripheral */ 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 4265 .loc 1 2455 7 4266 0176 7B68 ldr r3, [r7, #4] 4267 0178 1B68 ldr r3, [r3] 4268 017a 1A68 ldr r2, [r3] 4269 017c 7B68 ldr r3, [r7, #4] 4270 017e 1B68 ldr r3, [r3] 4271 0180 22F04002 bic r2, r2, #64 4272 0184 1A60 str r2, [r3] 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ ARM GAS /tmp/ccs34gJO.s page 119 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick 4273 .loc 1 2458 11 4274 0186 FFF7FEFF bl HAL_GetTick 4275 018a 0346 mov r3, r0 4276 .loc 1 2458 11 is_stmt 0 discriminator 1 4277 018c 0093 str r3, [sp] 4278 018e 6423 movs r3, #100 4279 0190 0022 movs r2, #0 4280 0192 8021 movs r1, #128 4281 0194 7868 ldr r0, [r7, #4] 4282 0196 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 4283 019a 0346 mov r3, r0 4284 .loc 1 2458 10 is_stmt 1 discriminator 2 4285 019c 002B cmp r3, #0 4286 019e 02D0 beq .L223 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4287 .loc 1 2460 25 4288 01a0 7B68 ldr r3, [r7, #4] 4289 01a2 4022 movs r2, #64 4290 01a4 1A66 str r2, [r3, #96] 4291 .L223: 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, 4292 .loc 1 2464 11 4293 01a6 FFF7FEFF bl HAL_GetTick 4294 01aa 0346 mov r3, r0 4295 .loc 1 2464 11 is_stmt 0 discriminator 1 4296 01ac 0093 str r3, [sp] 4297 01ae 6423 movs r3, #100 4298 01b0 0022 movs r2, #0 4299 01b2 4FF4C061 mov r1, #1536 4300 01b6 7868 ldr r0, [r7, #4] 4301 01b8 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 4302 01bc 0346 mov r3, r0 4303 .loc 1 2464 10 is_stmt 1 discriminator 2 4304 01be 002B cmp r3, #0 4305 01c0 02D0 beq .L224 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4306 .loc 1 2466 25 4307 01c2 7B68 ldr r3, [r7, #4] 4308 01c4 4022 movs r2, #64 4309 01c6 1A66 str r2, [r3, #96] 4310 .L224: 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXDMAEN)); 4311 .loc 1 2470 7 4312 01c8 7B68 ldr r3, [r7, #4] 4313 01ca 1B68 ldr r3, [r3] 4314 01cc 5A68 ldr r2, [r3, #4] 4315 01ce 7B68 ldr r3, [r7, #4] 4316 01d0 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 120 4317 01d2 22F00102 bic r2, r2, #1 4318 01d6 5A60 str r2, [r3, #4] 4319 .L221: 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 4320 .loc 1 2474 21 4321 01d8 7B68 ldr r3, [r7, #4] 4322 01da 0022 movs r2, #0 4323 01dc A3F84620 strh r2, [r3, #70] @ movhi 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4324 .loc 1 2475 21 4325 01e0 7B68 ldr r3, [r7, #4] 4326 01e2 0022 movs r2, #0 4327 01e4 DA87 strh r2, [r3, #62] @ movhi 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 4328 .loc 1 2478 11 4329 01e6 7B68 ldr r3, [r7, #4] 4330 01e8 1B6E ldr r3, [r3, #96] 4331 .loc 1 2478 6 4332 01ea 402B cmp r3, #64 4333 01ec 02D1 bne .L225 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4334 .loc 1 2481 15 4335 01ee 0123 movs r3, #1 4336 01f0 FB77 strb r3, [r7, #31] 4337 01f2 02E0 b .L226 4338 .L225: 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4339 .loc 1 2486 21 4340 01f4 7B68 ldr r3, [r7, #4] 4341 01f6 0022 movs r2, #0 4342 01f8 1A66 str r2, [r3, #96] 4343 .L226: 4344 .LBB3: 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 4345 .loc 1 2490 3 4346 01fa 0023 movs r3, #0 4347 01fc 3B61 str r3, [r7, #16] 4348 01fe 7B68 ldr r3, [r7, #4] 4349 0200 1B68 ldr r3, [r3] 4350 0202 DB68 ldr r3, [r3, #12] 4351 0204 3B61 str r3, [r7, #16] 4352 0206 7B68 ldr r3, [r7, #4] 4353 0208 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 121 4354 020a 9B68 ldr r3, [r3, #8] 4355 020c 3B61 str r3, [r7, #16] 4356 020e 3B69 ldr r3, [r7, #16] 4357 .LBE3: 4358 .LBB4: 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4359 .loc 1 2491 3 4360 0210 0023 movs r3, #0 4361 0212 FB60 str r3, [r7, #12] 4362 0214 7B68 ldr r3, [r7, #4] 4363 0216 1B68 ldr r3, [r3] 4364 0218 9B68 ldr r3, [r3, #8] 4365 021a FB60 str r3, [r7, #12] 4366 021c FB68 ldr r3, [r7, #12] 4367 .LBE4: 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->state to ready */ 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4368 .loc 1 2494 15 4369 021e 7B68 ldr r3, [r7, #4] 4370 0220 0122 movs r2, #1 4371 0222 83F85D20 strb r2, [r3, #93] 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4372 .loc 1 2496 10 4373 0226 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4374 .loc 1 2497 1 4375 0228 1846 mov r0, r3 4376 022a 2037 adds r7, r7, #32 4377 .cfi_def_cfa_offset 8 4378 022c BD46 mov sp, r7 4379 .cfi_def_cfa_register 13 4380 @ sp needed 4381 022e 80BD pop {r7, pc} 4382 .L229: 4383 .align 2 4384 .L228: 4385 0230 00000000 .word SystemCoreClock 4386 0234 F1197605 .word 91625969 4387 0238 00000000 .word SPI_AbortTx_ISR 4388 023c 00000000 .word SPI_AbortRx_ISR 4389 .cfi_endproc 4390 .LFE143: 4392 .section .text.HAL_SPI_Abort_IT,"ax",%progbits 4393 .align 1 4394 .global HAL_SPI_Abort_IT 4395 .syntax unified 4396 .thumb 4397 .thumb_func 4399 HAL_SPI_Abort_IT: 4400 .LFB144: 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Abort ongoing transfer (Interrupt mode). 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure could be used for aborting any ongoing transfer (Tx and Rx), ARM GAS /tmp/ccs34gJO.s page 122 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * started in Interrupt or DMA mode. 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * This procedure performs following operations : 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable SPI Interrupts (depending of transfer direction) 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - Set handle State to READY 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * - At abort completion, call user abort complete callback 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * considered as completed only when user abort complete callback is executed (not when ex 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi) 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4401 .loc 1 2515 1 4402 .cfi_startproc 4403 @ args = 0, pretend = 0, frame = 32 4404 @ frame_needed = 1, uses_anonymous_args = 0 4405 0000 80B5 push {r7, lr} 4406 .cfi_def_cfa_offset 8 4407 .cfi_offset 7, -8 4408 .cfi_offset 14, -4 4409 0002 88B0 sub sp, sp, #32 4410 .cfi_def_cfa_offset 40 4411 0004 00AF add r7, sp, #0 4412 .cfi_def_cfa_register 7 4413 0006 7860 str r0, [r7, #4] 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode; 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t abortcplt ; 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t resetcount; 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialized local variable */ 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_OK; 4414 .loc 1 2522 13 4415 0008 0023 movs r3, #0 4416 000a FB77 strb r3, [r7, #31] 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 1U; 4417 .loc 1 2523 13 4418 000c 0123 movs r3, #1 4419 000e BB61 str r3, [r7, #24] 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** resetcount = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 4420 .loc 1 2524 61 4421 0010 724B ldr r3, .L251 4422 0012 1B68 ldr r3, [r3] 4423 0014 724A ldr r2, .L251+4 4424 0016 A2FB0323 umull r2, r3, r2, r3 4425 001a 5B0A lsrs r3, r3, #9 4426 .loc 1 2524 36 4427 001c 6422 movs r2, #100 4428 001e 02FB03F3 mul r3, r2, r3 4429 .loc 1 2524 14 4430 0022 3B61 str r3, [r7, #16] 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4431 .loc 1 2525 9 4432 0024 3B69 ldr r3, [r7, #16] 4433 0026 7B61 str r3, [r7, #20] 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 123 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear ERRIE interrupt to avoid error interrupts generation during Abort procedure */ 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_ERRIE); 4434 .loc 1 2528 3 4435 0028 7B68 ldr r3, [r7, #4] 4436 002a 1B68 ldr r3, [r3] 4437 002c 5A68 ldr r2, [r3, #4] 4438 002e 7B68 ldr r3, [r7, #4] 4439 0030 1B68 ldr r3, [r3] 4440 0032 22F02002 bic r2, r2, #32 4441 0036 5A60 str r2, [r3, #4] 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Change Rx and Tx Irq Handler to Disable TXEIE, RXNEIE and ERRIE interrupts */ 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)) 4442 .loc 1 2531 7 4443 0038 7B68 ldr r3, [r7, #4] 4444 003a 1B68 ldr r3, [r3] 4445 003c 5B68 ldr r3, [r3, #4] 4446 003e 03F08003 and r3, r3, #128 4447 .loc 1 2531 6 4448 0042 802B cmp r3, #128 4449 0044 17D1 bne .L231 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR = SPI_AbortTx_ISR; 4450 .loc 1 2533 17 4451 0046 7B68 ldr r3, [r7, #4] 4452 0048 664A ldr r2, .L251+8 4453 004a 1A65 str r2, [r3, #80] 4454 .L234: 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 4455 .loc 1 2537 17 4456 004c 7B69 ldr r3, [r7, #20] 4457 .loc 1 2537 10 4458 004e 002B cmp r3, #0 4459 0050 06D1 bne .L232 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4460 .loc 1 2539 9 4461 0052 7B68 ldr r3, [r7, #4] 4462 0054 1B6E ldr r3, [r3, #96] 4463 0056 43F04002 orr r2, r3, #64 4464 005a 7B68 ldr r3, [r7, #4] 4465 005c 1A66 str r2, [r3, #96] 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4466 .loc 1 2540 9 4467 005e 08E0 b .L233 4468 .L232: 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 4469 .loc 1 2542 12 4470 0060 7B69 ldr r3, [r7, #20] 4471 0062 013B subs r3, r3, #1 4472 0064 7B61 str r3, [r7, #20] 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4473 .loc 1 2543 18 ARM GAS /tmp/ccs34gJO.s page 124 4474 0066 7B68 ldr r3, [r7, #4] 4475 0068 93F85D30 ldrb r3, [r3, #93] 4476 006c DBB2 uxtb r3, r3 4477 .loc 1 2543 26 4478 006e 072B cmp r3, #7 4479 0070 ECD1 bne .L234 4480 .L233: 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4481 .loc 1 2545 11 4482 0072 3B69 ldr r3, [r7, #16] 4483 0074 7B61 str r3, [r7, #20] 4484 .L231: 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 4485 .loc 1 2548 7 4486 0076 7B68 ldr r3, [r7, #4] 4487 0078 1B68 ldr r3, [r3] 4488 007a 5B68 ldr r3, [r3, #4] 4489 007c 03F04003 and r3, r3, #64 4490 .loc 1 2548 6 4491 0080 402B cmp r3, #64 4492 0082 17D1 bne .L235 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_AbortRx_ISR; 4493 .loc 1 2550 17 4494 0084 7B68 ldr r3, [r7, #4] 4495 0086 584A ldr r2, .L251+12 4496 0088 DA64 str r2, [r3, #76] 4497 .L238: 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait HAL_SPI_STATE_ABORT state */ 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 4498 .loc 1 2554 17 4499 008a 7B69 ldr r3, [r7, #20] 4500 .loc 1 2554 10 4501 008c 002B cmp r3, #0 4502 008e 06D1 bne .L236 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 4503 .loc 1 2556 9 4504 0090 7B68 ldr r3, [r7, #4] 4505 0092 1B6E ldr r3, [r3, #96] 4506 0094 43F04002 orr r2, r3, #64 4507 0098 7B68 ldr r3, [r7, #4] 4508 009a 1A66 str r2, [r3, #96] 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 4509 .loc 1 2557 9 4510 009c 08E0 b .L237 4511 .L236: 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 4512 .loc 1 2559 12 4513 009e 7B69 ldr r3, [r7, #20] 4514 00a0 013B subs r3, r3, #1 ARM GAS /tmp/ccs34gJO.s page 125 4515 00a2 7B61 str r3, [r7, #20] 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (hspi->State != HAL_SPI_STATE_ABORT); 4516 .loc 1 2560 18 4517 00a4 7B68 ldr r3, [r7, #4] 4518 00a6 93F85D30 ldrb r3, [r3, #93] 4519 00aa DBB2 uxtb r3, r3 4520 .loc 1 2560 26 4521 00ac 072B cmp r3, #7 4522 00ae ECD1 bne .L238 4523 .L237: 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Timeout Counter */ 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = resetcount; 4524 .loc 1 2562 11 4525 00b0 3B69 ldr r3, [r7, #16] 4526 00b2 7B61 str r3, [r7, #20] 4527 .L235: 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If DMA Tx and/or DMA Rx Handles are associated to SPI Handle, DMA Abort complete callbacks sho 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** before any call to DMA Abort functions */ 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Tx Handle is valid */ 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 4528 .loc 1 2568 11 4529 00b4 7B68 ldr r3, [r7, #4] 4530 00b6 5B6D ldr r3, [r3, #84] 4531 .loc 1 2568 6 4532 00b8 002B cmp r3, #0 4533 00ba 0FD0 beq .L239 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 4534 .loc 1 2572 9 4535 00bc 7B68 ldr r3, [r7, #4] 4536 00be 1B68 ldr r3, [r3] 4537 00c0 5B68 ldr r3, [r3, #4] 4538 00c2 03F00203 and r3, r3, #2 4539 .loc 1 2572 8 4540 00c6 022B cmp r3, #2 4541 00c8 04D1 bne .L240 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMATxAbortCallback; 4542 .loc 1 2574 11 4543 00ca 7B68 ldr r3, [r7, #4] 4544 00cc 5B6D ldr r3, [r3, #84] 4545 .loc 1 2574 39 4546 00ce 474A ldr r2, .L251+16 4547 00d0 5A63 str r2, [r3, #52] 4548 00d2 03E0 b .L239 4549 .L240: 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4550 .loc 1 2578 11 4551 00d4 7B68 ldr r3, [r7, #4] 4552 00d6 5B6D ldr r3, [r3, #84] ARM GAS /tmp/ccs34gJO.s page 126 4553 .loc 1 2578 39 4554 00d8 0022 movs r2, #0 4555 00da 5A63 str r2, [r3, #52] 4556 .L239: 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Rx Handle is valid */ 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 4557 .loc 1 2582 11 4558 00dc 7B68 ldr r3, [r7, #4] 4559 00de 9B6D ldr r3, [r3, #88] 4560 .loc 1 2582 6 4561 00e0 002B cmp r3, #0 4562 00e2 0FD0 beq .L241 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** Otherwise, set it to NULL */ 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 4563 .loc 1 2586 9 4564 00e4 7B68 ldr r3, [r7, #4] 4565 00e6 1B68 ldr r3, [r3] 4566 00e8 5B68 ldr r3, [r3, #4] 4567 00ea 03F00103 and r3, r3, #1 4568 .loc 1 2586 8 4569 00ee 012B cmp r3, #1 4570 00f0 04D1 bne .L242 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMARxAbortCallback; 4571 .loc 1 2588 11 4572 00f2 7B68 ldr r3, [r7, #4] 4573 00f4 9B6D ldr r3, [r3, #88] 4574 .loc 1 2588 39 4575 00f6 3E4A ldr r2, .L251+20 4576 00f8 5A63 str r2, [r3, #52] 4577 00fa 03E0 b .L241 4578 .L242: 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 4579 .loc 1 2592 11 4580 00fc 7B68 ldr r3, [r7, #4] 4581 00fe 9B6D ldr r3, [r3, #88] 4582 .loc 1 2592 39 4583 0100 0022 movs r2, #0 4584 0102 5A63 str r2, [r3, #52] 4585 .L241: 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 **** 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx request if enabled */ 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXDMAEN)) 4586 .loc 1 2597 7 4587 0104 7B68 ldr r3, [r7, #4] 4588 0106 1B68 ldr r3, [r3] 4589 0108 5B68 ldr r3, [r3, #4] 4590 010a 03F00203 and r3, r3, #2 ARM GAS /tmp/ccs34gJO.s page 127 4591 .loc 1 2597 6 4592 010e 022B cmp r3, #2 4593 0110 15D1 bne .L243 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx Stream/Channel */ 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 4594 .loc 1 2600 13 4595 0112 7B68 ldr r3, [r7, #4] 4596 0114 5B6D ldr r3, [r3, #84] 4597 .loc 1 2600 8 4598 0116 002B cmp r3, #0 4599 0118 11D0 beq .L243 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Tx Handle linked to SPI Peripheral */ 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmatx) != HAL_OK) 4600 .loc 1 2603 11 4601 011a 7B68 ldr r3, [r7, #4] 4602 011c 5B6D ldr r3, [r3, #84] 4603 011e 1846 mov r0, r3 4604 0120 FFF7FEFF bl HAL_DMA_Abort_IT 4605 0124 0346 mov r3, r0 4606 .loc 1 2603 10 discriminator 1 4607 0126 002B cmp r3, #0 4608 0128 07D0 beq .L244 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 4609 .loc 1 2605 13 4610 012a 7B68 ldr r3, [r7, #4] 4611 012c 5B6D ldr r3, [r3, #84] 4612 .loc 1 2605 41 4613 012e 0022 movs r2, #0 4614 0130 5A63 str r2, [r3, #52] 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4615 .loc 1 2606 25 4616 0132 7B68 ldr r3, [r7, #4] 4617 0134 4022 movs r2, #64 4618 0136 1A66 str r2, [r3, #96] 4619 0138 01E0 b .L243 4620 .L244: 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 4621 .loc 1 2610 19 4622 013a 0023 movs r3, #0 4623 013c BB61 str r3, [r7, #24] 4624 .L243: 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Rx request if enabled */ 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXDMAEN)) 4625 .loc 1 2615 7 4626 013e 7B68 ldr r3, [r7, #4] 4627 0140 1B68 ldr r3, [r3] 4628 0142 5B68 ldr r3, [r3, #4] 4629 0144 03F00103 and r3, r3, #1 ARM GAS /tmp/ccs34gJO.s page 128 4630 .loc 1 2615 6 4631 0148 012B cmp r3, #1 4632 014a 15D1 bne .L245 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx Stream/Channel */ 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 4633 .loc 1 2618 13 4634 014c 7B68 ldr r3, [r7, #4] 4635 014e 9B6D ldr r3, [r3, #88] 4636 .loc 1 2618 8 4637 0150 002B cmp r3, #0 4638 0152 11D0 beq .L245 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort DMA Rx Handle linked to SPI Peripheral */ 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_DMA_Abort_IT(hspi->hdmarx) != HAL_OK) 4639 .loc 1 2621 11 4640 0154 7B68 ldr r3, [r7, #4] 4641 0156 9B6D ldr r3, [r3, #88] 4642 0158 1846 mov r0, r3 4643 015a FFF7FEFF bl HAL_DMA_Abort_IT 4644 015e 0346 mov r3, r0 4645 .loc 1 2621 10 discriminator 1 4646 0160 002B cmp r3, #0 4647 0162 07D0 beq .L246 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 4648 .loc 1 2623 13 4649 0164 7B68 ldr r3, [r7, #4] 4650 0166 9B6D ldr r3, [r3, #88] 4651 .loc 1 2623 41 4652 0168 0022 movs r2, #0 4653 016a 5A63 str r2, [r3, #52] 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 4654 .loc 1 2624 25 4655 016c 7B68 ldr r3, [r7, #4] 4656 016e 4022 movs r2, #64 4657 0170 1A66 str r2, [r3, #96] 4658 0172 01E0 b .L245 4659 .L246: 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** abortcplt = 0U; 4660 .loc 1 2628 19 4661 0174 0023 movs r3, #0 4662 0176 BB61 str r3, [r7, #24] 4663 .L245: 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (abortcplt == 1U) 4664 .loc 1 2633 6 4665 0178 BB69 ldr r3, [r7, #24] 4666 017a 012B cmp r3, #1 4667 017c 29D1 bne .L247 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 129 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset Tx and Rx transfer counters */ 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 4668 .loc 1 2636 23 4669 017e 7B68 ldr r3, [r7, #4] 4670 0180 0022 movs r2, #0 4671 0182 A3F84620 strh r2, [r3, #70] @ movhi 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 4672 .loc 1 2637 23 4673 0186 7B68 ldr r3, [r7, #4] 4674 0188 0022 movs r2, #0 4675 018a DA87 strh r2, [r3, #62] @ movhi 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check error during Abort procedure */ 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_ABORT) 4676 .loc 1 2640 13 4677 018c 7B68 ldr r3, [r7, #4] 4678 018e 1B6E ldr r3, [r3, #96] 4679 .loc 1 2640 8 4680 0190 402B cmp r3, #64 4681 0192 02D1 bne .L248 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* return HAL_Error in case of error during Abort procedure */ 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4682 .loc 1 2643 17 4683 0194 0123 movs r3, #1 4684 0196 FB77 strb r3, [r7, #31] 4685 0198 02E0 b .L249 4686 .L248: 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 4687 .loc 1 2648 23 4688 019a 7B68 ldr r3, [r7, #4] 4689 019c 0022 movs r2, #0 4690 019e 1A66 str r2, [r3, #96] 4691 .L249: 4692 .LBB5: 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 4693 .loc 1 2652 5 4694 01a0 0023 movs r3, #0 4695 01a2 FB60 str r3, [r7, #12] 4696 01a4 7B68 ldr r3, [r7, #4] 4697 01a6 1B68 ldr r3, [r3] 4698 01a8 DB68 ldr r3, [r3, #12] 4699 01aa FB60 str r3, [r7, #12] 4700 01ac 7B68 ldr r3, [r7, #4] 4701 01ae 1B68 ldr r3, [r3] 4702 01b0 9B68 ldr r3, [r3, #8] 4703 01b2 FB60 str r3, [r7, #12] 4704 01b4 FB68 ldr r3, [r7, #12] 4705 .LBE5: 4706 .LBB6: ARM GAS /tmp/ccs34gJO.s page 130 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 4707 .loc 1 2653 5 4708 01b6 0023 movs r3, #0 4709 01b8 BB60 str r3, [r7, #8] 4710 01ba 7B68 ldr r3, [r7, #4] 4711 01bc 1B68 ldr r3, [r3] 4712 01be 9B68 ldr r3, [r3, #8] 4713 01c0 BB60 str r3, [r7, #8] 4714 01c2 BB68 ldr r3, [r7, #8] 4715 .LBE6: 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4716 .loc 1 2656 17 4717 01c4 7B68 ldr r3, [r7, #4] 4718 01c6 0122 movs r2, #1 4719 01c8 83F85D20 strb r2, [r3, #93] 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 4720 .loc 1 2662 5 4721 01cc 7868 ldr r0, [r7, #4] 4722 01ce FFF7FEFF bl HAL_SPI_AbortCpltCallback 4723 .L247: 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4724 .loc 1 2666 10 4725 01d2 FB7F ldrb r3, [r7, #31] @ zero_extendqisi2 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4726 .loc 1 2667 1 4727 01d4 1846 mov r0, r3 4728 01d6 2037 adds r7, r7, #32 4729 .cfi_def_cfa_offset 8 4730 01d8 BD46 mov sp, r7 4731 .cfi_def_cfa_register 13 4732 @ sp needed 4733 01da 80BD pop {r7, pc} 4734 .L252: 4735 .align 2 4736 .L251: 4737 01dc 00000000 .word SystemCoreClock 4738 01e0 F1197605 .word 91625969 4739 01e4 00000000 .word SPI_AbortTx_ISR 4740 01e8 00000000 .word SPI_AbortRx_ISR 4741 01ec 00000000 .word SPI_DMATxAbortCallback 4742 01f0 00000000 .word SPI_DMARxAbortCallback 4743 .cfi_endproc 4744 .LFE144: 4746 .section .text.HAL_SPI_DMAPause,"ax",%progbits 4747 .align 1 4748 .global HAL_SPI_DMAPause 4749 .syntax unified ARM GAS /tmp/ccs34gJO.s page 131 4750 .thumb 4751 .thumb_func 4753 HAL_SPI_DMAPause: 4754 .LFB145: 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Pause the DMA Transfer. 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi) 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4755 .loc 1 2676 1 4756 .cfi_startproc 4757 @ args = 0, pretend = 0, frame = 8 4758 @ frame_needed = 1, uses_anonymous_args = 0 4759 @ link register save eliminated. 4760 0000 80B4 push {r7} 4761 .cfi_def_cfa_offset 4 4762 .cfi_offset 7, -4 4763 0002 83B0 sub sp, sp, #12 4764 .cfi_def_cfa_offset 16 4765 0004 00AF add r7, sp, #0 4766 .cfi_def_cfa_register 7 4767 0006 7860 str r0, [r7, #4] 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 4768 .loc 1 2678 3 4769 0008 7B68 ldr r3, [r7, #4] 4770 000a 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 4771 000e 012B cmp r3, #1 4772 0010 01D1 bne .L254 4773 .loc 1 2678 3 is_stmt 0 discriminator 1 4774 0012 0223 movs r3, #2 4775 .loc 1 2678 3 4776 0014 10E0 b .L255 4777 .L254: 4778 .loc 1 2678 3 discriminator 2 4779 0016 7B68 ldr r3, [r7, #4] 4780 0018 0122 movs r2, #1 4781 001a 83F85C20 strb r2, [r3, #92] 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 4782 .loc 1 2681 3 is_stmt 1 4783 001e 7B68 ldr r3, [r7, #4] 4784 0020 1B68 ldr r3, [r3] 4785 0022 5A68 ldr r2, [r3, #4] 4786 0024 7B68 ldr r3, [r7, #4] 4787 0026 1B68 ldr r3, [r3] 4788 0028 22F00302 bic r2, r2, #3 4789 002c 5A60 str r2, [r3, #4] 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4790 .loc 1 2684 3 ARM GAS /tmp/ccs34gJO.s page 132 4791 002e 7B68 ldr r3, [r7, #4] 4792 0030 0022 movs r2, #0 4793 0032 83F85C20 strb r2, [r3, #92] 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4794 .loc 1 2686 10 4795 0036 0023 movs r3, #0 4796 .L255: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4797 .loc 1 2687 1 4798 0038 1846 mov r0, r3 4799 003a 0C37 adds r7, r7, #12 4800 .cfi_def_cfa_offset 4 4801 003c BD46 mov sp, r7 4802 .cfi_def_cfa_register 13 4803 @ sp needed 4804 003e 5DF8047B ldr r7, [sp], #4 4805 .cfi_restore 7 4806 .cfi_def_cfa_offset 0 4807 0042 7047 bx lr 4808 .cfi_endproc 4809 .LFE145: 4811 .section .text.HAL_SPI_DMAResume,"ax",%progbits 4812 .align 1 4813 .global HAL_SPI_DMAResume 4814 .syntax unified 4815 .thumb 4816 .thumb_func 4818 HAL_SPI_DMAResume: 4819 .LFB146: 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Resume the DMA Transfer. 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi) 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4820 .loc 1 2696 1 4821 .cfi_startproc 4822 @ args = 0, pretend = 0, frame = 8 4823 @ frame_needed = 1, uses_anonymous_args = 0 4824 @ link register save eliminated. 4825 0000 80B4 push {r7} 4826 .cfi_def_cfa_offset 4 4827 .cfi_offset 7, -4 4828 0002 83B0 sub sp, sp, #12 4829 .cfi_def_cfa_offset 16 4830 0004 00AF add r7, sp, #0 4831 .cfi_def_cfa_register 7 4832 0006 7860 str r0, [r7, #4] 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Locked */ 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_LOCK(hspi); 4833 .loc 1 2698 3 4834 0008 7B68 ldr r3, [r7, #4] 4835 000a 93F85C30 ldrb r3, [r3, #92] @ zero_extendqisi2 ARM GAS /tmp/ccs34gJO.s page 133 4836 000e 012B cmp r3, #1 4837 0010 01D1 bne .L257 4838 .loc 1 2698 3 is_stmt 0 discriminator 1 4839 0012 0223 movs r3, #2 4840 .loc 1 2698 3 4841 0014 10E0 b .L258 4842 .L257: 4843 .loc 1 2698 3 discriminator 2 4844 0016 7B68 ldr r3, [r7, #4] 4845 0018 0122 movs r2, #1 4846 001a 83F85C20 strb r2, [r3, #92] 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable the SPI DMA Tx & Rx requests */ 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 4847 .loc 1 2701 3 is_stmt 1 4848 001e 7B68 ldr r3, [r7, #4] 4849 0020 1B68 ldr r3, [r3] 4850 0022 5A68 ldr r2, [r3, #4] 4851 0024 7B68 ldr r3, [r7, #4] 4852 0026 1B68 ldr r3, [r3] 4853 0028 42F00302 orr r2, r2, #3 4854 002c 5A60 str r2, [r3, #4] 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 4855 .loc 1 2704 3 4856 002e 7B68 ldr r3, [r7, #4] 4857 0030 0022 movs r2, #0 4858 0032 83F85C20 strb r2, [r3, #92] 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 4859 .loc 1 2706 10 4860 0036 0023 movs r3, #0 4861 .L258: 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4862 .loc 1 2707 1 4863 0038 1846 mov r0, r3 4864 003a 0C37 adds r7, r7, #12 4865 .cfi_def_cfa_offset 4 4866 003c BD46 mov sp, r7 4867 .cfi_def_cfa_register 13 4868 @ sp needed 4869 003e 5DF8047B ldr r7, [sp], #4 4870 .cfi_restore 7 4871 .cfi_def_cfa_offset 0 4872 0042 7047 bx lr 4873 .cfi_endproc 4874 .LFE146: 4876 .section .text.HAL_SPI_DMAStop,"ax",%progbits 4877 .align 1 4878 .global HAL_SPI_DMAStop 4879 .syntax unified 4880 .thumb 4881 .thumb_func 4883 HAL_SPI_DMAStop: 4884 .LFB147: 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 134 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Stop the DMA Transfer. 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi) 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4885 .loc 1 2716 1 4886 .cfi_startproc 4887 @ args = 0, pretend = 0, frame = 16 4888 @ frame_needed = 1, uses_anonymous_args = 0 4889 0000 80B5 push {r7, lr} 4890 .cfi_def_cfa_offset 8 4891 .cfi_offset 7, -8 4892 .cfi_offset 14, -4 4893 0002 84B0 sub sp, sp, #16 4894 .cfi_def_cfa_offset 24 4895 0004 00AF add r7, sp, #0 4896 .cfi_def_cfa_register 7 4897 0006 7860 str r0, [r7, #4] 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_StatusTypeDef errorcode = HAL_OK; 4898 .loc 1 2717 21 4899 0008 0023 movs r3, #0 4900 000a FB73 strb r3, [r7, #15] 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* The Lock is not implemented on this API to allow the user application 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** to call the HAL SPI API under callbacks HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() o 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and the correspond call back is executed HAL_SPI_TxCpltCallback() or HAL_SPI_RxCpltCallback() 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA tx Stream/Channel */ 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 4901 .loc 1 2725 11 4902 000c 7B68 ldr r3, [r7, #4] 4903 000e 5B6D ldr r3, [r3, #84] 4904 .loc 1 2725 6 4905 0010 002B cmp r3, #0 4906 0012 0FD0 beq .L260 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmatx)) 4907 .loc 1 2727 19 4908 0014 7B68 ldr r3, [r7, #4] 4909 0016 5B6D ldr r3, [r3, #84] 4910 0018 1846 mov r0, r3 4911 001a FFF7FEFF bl HAL_DMA_Abort 4912 001e 0346 mov r3, r0 4913 .loc 1 2727 8 discriminator 1 4914 0020 002B cmp r3, #0 4915 0022 07D0 beq .L260 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 4916 .loc 1 2729 7 4917 0024 7B68 ldr r3, [r7, #4] 4918 0026 1B6E ldr r3, [r3, #96] 4919 0028 43F01002 orr r2, r3, #16 4920 002c 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 135 4921 002e 1A66 str r2, [r3, #96] 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4922 .loc 1 2730 17 4923 0030 0123 movs r3, #1 4924 0032 FB73 strb r3, [r7, #15] 4925 .L260: 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA rx Stream/Channel */ 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 4926 .loc 1 2734 11 4927 0034 7B68 ldr r3, [r7, #4] 4928 0036 9B6D ldr r3, [r3, #88] 4929 .loc 1 2734 6 4930 0038 002B cmp r3, #0 4931 003a 0FD0 beq .L261 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort(hspi->hdmarx)) 4932 .loc 1 2736 19 4933 003c 7B68 ldr r3, [r7, #4] 4934 003e 9B6D ldr r3, [r3, #88] 4935 0040 1846 mov r0, r3 4936 0042 FFF7FEFF bl HAL_DMA_Abort 4937 0046 0346 mov r3, r0 4938 .loc 1 2736 8 discriminator 1 4939 0048 002B cmp r3, #0 4940 004a 07D0 beq .L261 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 4941 .loc 1 2738 7 4942 004c 7B68 ldr r3, [r7, #4] 4943 004e 1B6E ldr r3, [r3, #96] 4944 0050 43F01002 orr r2, r3, #16 4945 0054 7B68 ldr r3, [r7, #4] 4946 0056 1A66 str r2, [r3, #96] 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** errorcode = HAL_ERROR; 4947 .loc 1 2739 17 4948 0058 0123 movs r3, #1 4949 005a FB73 strb r3, [r7, #15] 4950 .L261: 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA Tx & Rx requests */ 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 4951 .loc 1 2744 3 4952 005c 7B68 ldr r3, [r7, #4] 4953 005e 1B68 ldr r3, [r3] 4954 0060 5A68 ldr r2, [r3, #4] 4955 0062 7B68 ldr r3, [r7, #4] 4956 0064 1B68 ldr r3, [r3] 4957 0066 22F00302 bic r2, r2, #3 4958 006a 5A60 str r2, [r3, #4] 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4959 .loc 1 2745 15 4960 006c 7B68 ldr r3, [r7, #4] 4961 006e 0122 movs r2, #1 ARM GAS /tmp/ccs34gJO.s page 136 4962 0070 83F85D20 strb r2, [r3, #93] 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return errorcode; 4963 .loc 1 2746 10 4964 0074 FB7B ldrb r3, [r7, #15] @ zero_extendqisi2 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4965 .loc 1 2747 1 4966 0076 1846 mov r0, r3 4967 0078 1037 adds r7, r7, #16 4968 .cfi_def_cfa_offset 8 4969 007a BD46 mov sp, r7 4970 .cfi_def_cfa_register 13 4971 @ sp needed 4972 007c 80BD pop {r7, pc} 4973 .cfi_endproc 4974 .LFE147: 4976 .section .text.HAL_SPI_IRQHandler,"ax",%progbits 4977 .align 1 4978 .global HAL_SPI_IRQHandler 4979 .syntax unified 4980 .thumb 4981 .thumb_func 4983 HAL_SPI_IRQHandler: 4984 .LFB148: 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI interrupt request. 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified SPI module. 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi) 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4985 .loc 1 2756 1 4986 .cfi_startproc 4987 @ args = 0, pretend = 0, frame = 32 4988 @ frame_needed = 1, uses_anonymous_args = 0 4989 0000 80B5 push {r7, lr} 4990 .cfi_def_cfa_offset 8 4991 .cfi_offset 7, -8 4992 .cfi_offset 14, -4 4993 0002 88B0 sub sp, sp, #32 4994 .cfi_def_cfa_offset 40 4995 0004 00AF add r7, sp, #0 4996 .cfi_def_cfa_register 7 4997 0006 7860 str r0, [r7, #4] 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itsource = hspi->Instance->CR2; 4998 .loc 1 2757 27 4999 0008 7B68 ldr r3, [r7, #4] 5000 000a 1B68 ldr r3, [r3] 5001 .loc 1 2757 12 5002 000c 5B68 ldr r3, [r3, #4] 5003 000e FB61 str r3, [r7, #28] 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t itflag = hspi->Instance->SR; 5004 .loc 1 2758 27 5005 0010 7B68 ldr r3, [r7, #4] 5006 0012 1B68 ldr r3, [r3] 5007 .loc 1 2758 12 ARM GAS /tmp/ccs34gJO.s page 137 5008 0014 9B68 ldr r3, [r3, #8] 5009 0016 BB61 str r3, [r7, #24] 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Receiver ----------------------------------------------------*/ 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) == RESET) && 5010 .loc 1 2761 8 5011 0018 BB69 ldr r3, [r7, #24] 5012 001a 9B09 lsrs r3, r3, #6 5013 001c 03F00103 and r3, r3, #1 5014 .loc 1 2761 6 5015 0020 002B cmp r3, #0 5016 0022 0FD1 bne .L264 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 5017 .loc 1 2762 8 5018 0024 BB69 ldr r3, [r7, #24] 5019 0026 03F00103 and r3, r3, #1 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (SPI_CHECK_FLAG(itflag, SPI_FLAG_RXNE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_RXN 5020 .loc 1 2761 55 discriminator 1 5021 002a 002B cmp r3, #0 5022 002c 0AD0 beq .L264 5023 .loc 1 2762 60 5024 002e FB69 ldr r3, [r7, #28] 5025 0030 9B09 lsrs r3, r3, #6 5026 0032 03F00103 and r3, r3, #1 5027 .loc 1 2762 56 5028 0036 002B cmp r3, #0 5029 0038 04D0 beq .L264 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR(hspi); 5030 .loc 1 2764 9 5031 003a 7B68 ldr r3, [r7, #4] 5032 003c DB6C ldr r3, [r3, #76] 5033 .loc 1 2764 5 5034 003e 7868 ldr r0, [r7, #4] 5035 0040 9847 blx r3 5036 .LVL0: 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5037 .loc 1 2765 5 5038 0042 D7E0 b .L263 5039 .L264: 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in mode Transmitter -------------------------------------------------*/ 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((SPI_CHECK_FLAG(itflag, SPI_FLAG_TXE) != RESET) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT_TXE) 5040 .loc 1 2769 8 5041 0044 BB69 ldr r3, [r7, #24] 5042 0046 5B08 lsrs r3, r3, #1 5043 0048 03F00103 and r3, r3, #1 5044 .loc 1 2769 6 5045 004c 002B cmp r3, #0 5046 004e 0AD0 beq .L266 5047 .loc 1 2769 59 discriminator 1 5048 0050 FB69 ldr r3, [r7, #28] 5049 0052 DB09 lsrs r3, r3, #7 5050 0054 03F00103 and r3, r3, #1 5051 .loc 1 2769 55 discriminator 1 5052 0058 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 138 5053 005a 04D0 beq .L266 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxISR(hspi); 5054 .loc 1 2771 9 5055 005c 7B68 ldr r3, [r7, #4] 5056 005e 1B6D ldr r3, [r3, #80] 5057 .loc 1 2771 5 5058 0060 7868 ldr r0, [r7, #4] 5059 0062 9847 blx r3 5060 .LVL1: 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5061 .loc 1 2772 5 5062 0064 C6E0 b .L263 5063 .L266: 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI in Error Treatment --------------------------------------------------*/ 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) || (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != 5064 .loc 1 2776 9 5065 0066 BB69 ldr r3, [r7, #24] 5066 0068 5B09 lsrs r3, r3, #5 5067 006a 03F00103 and r3, r3, #1 5068 .loc 1 2776 6 5069 006e 002B cmp r3, #0 5070 0070 0CD1 bne .L267 5071 .loc 1 2776 61 discriminator 1 5072 0072 BB69 ldr r3, [r7, #24] 5073 0074 9B09 lsrs r3, r3, #6 5074 0076 03F00103 and r3, r3, #1 5075 .loc 1 2776 57 discriminator 1 5076 007a 002B cmp r3, #0 5077 007c 06D1 bne .L267 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET)) && (SPI_CHECK_IT_SOURCE(itsource, SPI_IT 5078 .loc 1 2777 12 5079 007e BB69 ldr r3, [r7, #24] 5080 0080 1B0A lsrs r3, r3, #8 5081 0082 03F00103 and r3, r3, #1 5082 .loc 1 2777 8 5083 0086 002B cmp r3, #0 5084 0088 00F0B480 beq .L263 5085 .L267: 5086 .loc 1 2777 64 discriminator 1 5087 008c FB69 ldr r3, [r7, #28] 5088 008e 5B09 lsrs r3, r3, #5 5089 0090 03F00103 and r3, r3, #1 5090 .loc 1 2777 60 discriminator 1 5091 0094 002B cmp r3, #0 5092 0096 00F0AD80 beq .L263 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Overrun error interrupt occurred ----------------------------------*/ 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_OVR) != RESET) 5093 .loc 1 2780 9 5094 009a BB69 ldr r3, [r7, #24] 5095 009c 9B09 lsrs r3, r3, #6 5096 009e 03F00103 and r3, r3, #1 5097 .loc 1 2780 8 5098 00a2 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 139 5099 00a4 23D0 beq .L268 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State != HAL_SPI_STATE_BUSY_TX) 5100 .loc 1 2782 15 5101 00a6 7B68 ldr r3, [r7, #4] 5102 00a8 93F85D30 ldrb r3, [r3, #93] 5103 00ac DBB2 uxtb r3, r3 5104 .loc 1 2782 10 5105 00ae 032B cmp r3, #3 5106 00b0 11D0 beq .L269 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_OVR); 5107 .loc 1 2784 9 5108 00b2 7B68 ldr r3, [r7, #4] 5109 00b4 1B6E ldr r3, [r3, #96] 5110 00b6 43F00402 orr r2, r3, #4 5111 00ba 7B68 ldr r3, [r7, #4] 5112 00bc 1A66 str r2, [r3, #96] 5113 .LBB7: 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 5114 .loc 1 2785 9 5115 00be 0023 movs r3, #0 5116 00c0 7B61 str r3, [r7, #20] 5117 00c2 7B68 ldr r3, [r7, #4] 5118 00c4 1B68 ldr r3, [r3] 5119 00c6 DB68 ldr r3, [r3, #12] 5120 00c8 7B61 str r3, [r7, #20] 5121 00ca 7B68 ldr r3, [r7, #4] 5122 00cc 1B68 ldr r3, [r3] 5123 00ce 9B68 ldr r3, [r3, #8] 5124 00d0 7B61 str r3, [r7, #20] 5125 00d2 7B69 ldr r3, [r7, #20] 5126 .LBE7: 5127 00d4 0BE0 b .L268 5128 .L269: 5129 .LBB8: 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 5130 .loc 1 2789 9 5131 00d6 0023 movs r3, #0 5132 00d8 3B61 str r3, [r7, #16] 5133 00da 7B68 ldr r3, [r7, #4] 5134 00dc 1B68 ldr r3, [r3] 5135 00de DB68 ldr r3, [r3, #12] 5136 00e0 3B61 str r3, [r7, #16] 5137 00e2 7B68 ldr r3, [r7, #4] 5138 00e4 1B68 ldr r3, [r3] 5139 00e6 9B68 ldr r3, [r3, #8] 5140 00e8 3B61 str r3, [r7, #16] 5141 00ea 3B69 ldr r3, [r7, #16] 5142 .LBE8: 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5143 .loc 1 2790 9 5144 00ec 82E0 b .L263 5145 .L268: ARM GAS /tmp/ccs34gJO.s page 140 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Mode Fault error interrupt occurred -------------------------------*/ 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_MODF) != RESET) 5146 .loc 1 2795 9 5147 00ee BB69 ldr r3, [r7, #24] 5148 00f0 5B09 lsrs r3, r3, #5 5149 00f2 03F00103 and r3, r3, #1 5150 .loc 1 2795 8 5151 00f6 002B cmp r3, #0 5152 00f8 14D0 beq .L270 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_MODF); 5153 .loc 1 2797 7 5154 00fa 7B68 ldr r3, [r7, #4] 5155 00fc 1B6E ldr r3, [r3, #96] 5156 00fe 43F00102 orr r2, r3, #1 5157 0102 7B68 ldr r3, [r7, #4] 5158 0104 1A66 str r2, [r3, #96] 5159 .LBB9: 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_MODFFLAG(hspi); 5160 .loc 1 2798 7 5161 0106 0023 movs r3, #0 5162 0108 FB60 str r3, [r7, #12] 5163 010a 7B68 ldr r3, [r7, #4] 5164 010c 1B68 ldr r3, [r3] 5165 010e 9B68 ldr r3, [r3, #8] 5166 0110 FB60 str r3, [r7, #12] 5167 0112 7B68 ldr r3, [r7, #4] 5168 0114 1B68 ldr r3, [r3] 5169 0116 1A68 ldr r2, [r3] 5170 0118 7B68 ldr r3, [r7, #4] 5171 011a 1B68 ldr r3, [r3] 5172 011c 22F04002 bic r2, r2, #64 5173 0120 1A60 str r2, [r3] 5174 0122 FB68 ldr r3, [r7, #12] 5175 .L270: 5176 .LBE9: 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* SPI Frame error interrupt occurred ------------------------------------*/ 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_CHECK_FLAG(itflag, SPI_FLAG_FRE) != RESET) 5177 .loc 1 2802 9 5178 0124 BB69 ldr r3, [r7, #24] 5179 0126 1B0A lsrs r3, r3, #8 5180 0128 03F00103 and r3, r3, #1 5181 .loc 1 2802 8 5182 012c 002B cmp r3, #0 5183 012e 0CD0 beq .L271 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FRE); 5184 .loc 1 2804 7 5185 0130 7B68 ldr r3, [r7, #4] 5186 0132 1B6E ldr r3, [r3, #96] 5187 0134 43F00802 orr r2, r3, #8 5188 0138 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 141 5189 013a 1A66 str r2, [r3, #96] 5190 .LBB10: 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 5191 .loc 1 2805 7 5192 013c 0023 movs r3, #0 5193 013e BB60 str r3, [r7, #8] 5194 0140 7B68 ldr r3, [r7, #4] 5195 0142 1B68 ldr r3, [r3] 5196 0144 9B68 ldr r3, [r3, #8] 5197 0146 BB60 str r3, [r7, #8] 5198 0148 BB68 ldr r3, [r7, #8] 5199 .L271: 5200 .LBE10: 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5201 .loc 1 2808 13 5202 014a 7B68 ldr r3, [r7, #4] 5203 014c 1B6E ldr r3, [r3, #96] 5204 .loc 1 2808 8 5205 014e 002B cmp r3, #0 5206 0150 4FD0 beq .L277 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable all interrupts */ 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE | SPI_IT_TXE | SPI_IT_ERR); 5207 .loc 1 2811 7 5208 0152 7B68 ldr r3, [r7, #4] 5209 0154 1B68 ldr r3, [r3] 5210 0156 5A68 ldr r2, [r3, #4] 5211 0158 7B68 ldr r3, [r7, #4] 5212 015a 1B68 ldr r3, [r3] 5213 015c 22F0E002 bic r2, r2, #224 5214 0160 5A60 str r2, [r3, #4] 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5215 .loc 1 2813 19 5216 0162 7B68 ldr r3, [r7, #4] 5217 0164 0122 movs r2, #1 5218 0166 83F85D20 strb r2, [r3, #93] 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI DMA requests if enabled */ 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((HAL_IS_BIT_SET(itsource, SPI_CR2_TXDMAEN)) || (HAL_IS_BIT_SET(itsource, SPI_CR2_RXDMAEN) 5219 .loc 1 2815 12 5220 016a FB69 ldr r3, [r7, #28] 5221 016c 03F00203 and r3, r3, #2 5222 .loc 1 2815 10 5223 0170 002B cmp r3, #0 5224 0172 04D1 bne .L273 5225 .loc 1 2815 59 discriminator 1 5226 0174 FB69 ldr r3, [r7, #28] 5227 0176 03F00103 and r3, r3, #1 5228 .loc 1 2815 55 discriminator 1 5229 017a 002B cmp r3, #0 5230 017c 34D0 beq .L274 5231 .L273: 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN)); 5232 .loc 1 2817 9 ARM GAS /tmp/ccs34gJO.s page 142 5233 017e 7B68 ldr r3, [r7, #4] 5234 0180 1B68 ldr r3, [r3] 5235 0182 5A68 ldr r2, [r3, #4] 5236 0184 7B68 ldr r3, [r7, #4] 5237 0186 1B68 ldr r3, [r3] 5238 0188 22F00302 bic r2, r2, #3 5239 018c 5A60 str r2, [r3, #4] 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Rx channel */ 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 5240 .loc 1 2820 17 5241 018e 7B68 ldr r3, [r7, #4] 5242 0190 9B6D ldr r3, [r3, #88] 5243 .loc 1 2820 12 5244 0192 002B cmp r3, #0 5245 0194 11D0 beq .L275 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = SPI_DMAAbortOnError; 5246 .loc 1 2824 15 5247 0196 7B68 ldr r3, [r7, #4] 5248 0198 9B6D ldr r3, [r3, #88] 5249 .loc 1 2824 43 5250 019a 184A ldr r2, .L279 5251 019c 5A63 str r2, [r3, #52] 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmarx)) 5252 .loc 1 2825 25 5253 019e 7B68 ldr r3, [r7, #4] 5254 01a0 9B6D ldr r3, [r3, #88] 5255 01a2 1846 mov r0, r3 5256 01a4 FFF7FEFF bl HAL_DMA_Abort_IT 5257 01a8 0346 mov r3, r0 5258 .loc 1 2825 14 discriminator 1 5259 01aa 002B cmp r3, #0 5260 01ac 05D0 beq .L275 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 5261 .loc 1 2827 13 5262 01ae 7B68 ldr r3, [r7, #4] 5263 01b0 1B6E ldr r3, [r3, #96] 5264 01b2 43F04002 orr r2, r3, #64 5265 01b6 7B68 ldr r3, [r7, #4] 5266 01b8 1A66 str r2, [r3, #96] 5267 .L275: 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Abort the SPI DMA Tx channel */ 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 5268 .loc 1 2831 17 5269 01ba 7B68 ldr r3, [r7, #4] 5270 01bc 5B6D ldr r3, [r3, #84] 5271 .loc 1 2831 12 5272 01be 002B cmp r3, #0 5273 01c0 16D0 beq .L278 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set the SPI DMA Abort callback : ARM GAS /tmp/ccs34gJO.s page 143 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** will lead to call HAL_SPI_ErrorCallback() at end of DMA abort procedure */ 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = SPI_DMAAbortOnError; 5274 .loc 1 2835 15 5275 01c2 7B68 ldr r3, [r7, #4] 5276 01c4 5B6D ldr r3, [r3, #84] 5277 .loc 1 2835 43 5278 01c6 0D4A ldr r2, .L279 5279 01c8 5A63 str r2, [r3, #52] 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_OK != HAL_DMA_Abort_IT(hspi->hdmatx)) 5280 .loc 1 2836 25 5281 01ca 7B68 ldr r3, [r7, #4] 5282 01cc 5B6D ldr r3, [r3, #84] 5283 01ce 1846 mov r0, r3 5284 01d0 FFF7FEFF bl HAL_DMA_Abort_IT 5285 01d4 0346 mov r3, r0 5286 .loc 1 2836 14 discriminator 1 5287 01d6 002B cmp r3, #0 5288 01d8 0AD0 beq .L278 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 5289 .loc 1 2838 13 5290 01da 7B68 ldr r3, [r7, #4] 5291 01dc 1B6E ldr r3, [r3, #96] 5292 01de 43F04002 orr r2, r3, #64 5293 01e2 7B68 ldr r3, [r7, #4] 5294 01e4 1A66 str r2, [r3, #96] 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5295 .loc 1 2831 12 5296 01e6 03E0 b .L278 5297 .L274: 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 5298 .loc 1 2848 9 5299 01e8 7868 ldr r0, [r7, #4] 5300 01ea FFF7FEFF bl HAL_SPI_ErrorCallback 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5301 .loc 1 2852 5 5302 01ee 00E0 b .L277 5303 .L278: 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5304 .loc 1 2831 12 5305 01f0 00BF nop 5306 .L277: 5307 .loc 1 2852 5 5308 01f2 00BF nop 5309 .L263: ARM GAS /tmp/ccs34gJO.s page 144 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5310 .loc 1 2854 1 5311 01f4 2037 adds r7, r7, #32 5312 .cfi_def_cfa_offset 8 5313 01f6 BD46 mov sp, r7 5314 .cfi_def_cfa_register 13 5315 @ sp needed 5316 01f8 80BD pop {r7, pc} 5317 .L280: 5318 01fa 00BF .align 2 5319 .L279: 5320 01fc 00000000 .word SPI_DMAAbortOnError 5321 .cfi_endproc 5322 .LFE148: 5324 .section .text.HAL_SPI_TxCpltCallback,"ax",%progbits 5325 .align 1 5326 .weak HAL_SPI_TxCpltCallback 5327 .syntax unified 5328 .thumb 5329 .thumb_func 5331 HAL_SPI_TxCpltCallback: 5332 .LFB149: 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx Transfer completed callback. 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5333 .loc 1 2863 1 5334 .cfi_startproc 5335 @ args = 0, pretend = 0, frame = 8 5336 @ frame_needed = 1, uses_anonymous_args = 0 5337 @ link register save eliminated. 5338 0000 80B4 push {r7} 5339 .cfi_def_cfa_offset 4 5340 .cfi_offset 7, -4 5341 0002 83B0 sub sp, sp, #12 5342 .cfi_def_cfa_offset 16 5343 0004 00AF add r7, sp, #0 5344 .cfi_def_cfa_register 7 5345 0006 7860 str r0, [r7, #4] 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxCpltCallback should be implemented in the user file 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5346 .loc 1 2870 1 5347 0008 00BF nop 5348 000a 0C37 adds r7, r7, #12 5349 .cfi_def_cfa_offset 4 5350 000c BD46 mov sp, r7 ARM GAS /tmp/ccs34gJO.s page 145 5351 .cfi_def_cfa_register 13 5352 @ sp needed 5353 000e 5DF8047B ldr r7, [sp], #4 5354 .cfi_restore 7 5355 .cfi_def_cfa_offset 0 5356 0012 7047 bx lr 5357 .cfi_endproc 5358 .LFE149: 5360 .section .text.HAL_SPI_RxCpltCallback,"ax",%progbits 5361 .align 1 5362 .weak HAL_SPI_RxCpltCallback 5363 .syntax unified 5364 .thumb 5365 .thumb_func 5367 HAL_SPI_RxCpltCallback: 5368 .LFB150: 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx Transfer completed callback. 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5369 .loc 1 2879 1 5370 .cfi_startproc 5371 @ args = 0, pretend = 0, frame = 8 5372 @ frame_needed = 1, uses_anonymous_args = 0 5373 @ link register save eliminated. 5374 0000 80B4 push {r7} 5375 .cfi_def_cfa_offset 4 5376 .cfi_offset 7, -4 5377 0002 83B0 sub sp, sp, #12 5378 .cfi_def_cfa_offset 16 5379 0004 00AF add r7, sp, #0 5380 .cfi_def_cfa_register 7 5381 0006 7860 str r0, [r7, #4] 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxCpltCallback should be implemented in the user file 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5382 .loc 1 2886 1 5383 0008 00BF nop 5384 000a 0C37 adds r7, r7, #12 5385 .cfi_def_cfa_offset 4 5386 000c BD46 mov sp, r7 5387 .cfi_def_cfa_register 13 5388 @ sp needed 5389 000e 5DF8047B ldr r7, [sp], #4 5390 .cfi_restore 7 5391 .cfi_def_cfa_offset 0 5392 0012 7047 bx lr 5393 .cfi_endproc ARM GAS /tmp/ccs34gJO.s page 146 5394 .LFE150: 5396 .section .text.HAL_SPI_TxRxCpltCallback,"ax",%progbits 5397 .align 1 5398 .weak HAL_SPI_TxRxCpltCallback 5399 .syntax unified 5400 .thumb 5401 .thumb_func 5403 HAL_SPI_TxRxCpltCallback: 5404 .LFB151: 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx and Rx Transfer completed callback. 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5405 .loc 1 2895 1 5406 .cfi_startproc 5407 @ args = 0, pretend = 0, frame = 8 5408 @ frame_needed = 1, uses_anonymous_args = 0 5409 @ link register save eliminated. 5410 0000 80B4 push {r7} 5411 .cfi_def_cfa_offset 4 5412 .cfi_offset 7, -4 5413 0002 83B0 sub sp, sp, #12 5414 .cfi_def_cfa_offset 16 5415 0004 00AF add r7, sp, #0 5416 .cfi_def_cfa_register 7 5417 0006 7860 str r0, [r7, #4] 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxCpltCallback should be implemented in the user file 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5418 .loc 1 2902 1 5419 0008 00BF nop 5420 000a 0C37 adds r7, r7, #12 5421 .cfi_def_cfa_offset 4 5422 000c BD46 mov sp, r7 5423 .cfi_def_cfa_register 13 5424 @ sp needed 5425 000e 5DF8047B ldr r7, [sp], #4 5426 .cfi_restore 7 5427 .cfi_def_cfa_offset 0 5428 0012 7047 bx lr 5429 .cfi_endproc 5430 .LFE151: 5432 .section .text.HAL_SPI_TxHalfCpltCallback,"ax",%progbits 5433 .align 1 5434 .weak HAL_SPI_TxHalfCpltCallback 5435 .syntax unified 5436 .thumb 5437 .thumb_func ARM GAS /tmp/ccs34gJO.s page 147 5439 HAL_SPI_TxHalfCpltCallback: 5440 .LFB152: 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx Half Transfer completed callback. 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5441 .loc 1 2911 1 5442 .cfi_startproc 5443 @ args = 0, pretend = 0, frame = 8 5444 @ frame_needed = 1, uses_anonymous_args = 0 5445 @ link register save eliminated. 5446 0000 80B4 push {r7} 5447 .cfi_def_cfa_offset 4 5448 .cfi_offset 7, -4 5449 0002 83B0 sub sp, sp, #12 5450 .cfi_def_cfa_offset 16 5451 0004 00AF add r7, sp, #0 5452 .cfi_def_cfa_register 7 5453 0006 7860 str r0, [r7, #4] 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxHalfCpltCallback should be implemented in the user file 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5454 .loc 1 2918 1 5455 0008 00BF nop 5456 000a 0C37 adds r7, r7, #12 5457 .cfi_def_cfa_offset 4 5458 000c BD46 mov sp, r7 5459 .cfi_def_cfa_register 13 5460 @ sp needed 5461 000e 5DF8047B ldr r7, [sp], #4 5462 .cfi_restore 7 5463 .cfi_def_cfa_offset 0 5464 0012 7047 bx lr 5465 .cfi_endproc 5466 .LFE152: 5468 .section .text.HAL_SPI_RxHalfCpltCallback,"ax",%progbits 5469 .align 1 5470 .weak HAL_SPI_RxHalfCpltCallback 5471 .syntax unified 5472 .thumb 5473 .thumb_func 5475 HAL_SPI_RxHalfCpltCallback: 5476 .LFB153: 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx Half Transfer completed callback. 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccs34gJO.s page 148 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5477 .loc 1 2927 1 5478 .cfi_startproc 5479 @ args = 0, pretend = 0, frame = 8 5480 @ frame_needed = 1, uses_anonymous_args = 0 5481 @ link register save eliminated. 5482 0000 80B4 push {r7} 5483 .cfi_def_cfa_offset 4 5484 .cfi_offset 7, -4 5485 0002 83B0 sub sp, sp, #12 5486 .cfi_def_cfa_offset 16 5487 0004 00AF add r7, sp, #0 5488 .cfi_def_cfa_register 7 5489 0006 7860 str r0, [r7, #4] 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_RxHalfCpltCallback() should be implemented in the user file 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5490 .loc 1 2934 1 5491 0008 00BF nop 5492 000a 0C37 adds r7, r7, #12 5493 .cfi_def_cfa_offset 4 5494 000c BD46 mov sp, r7 5495 .cfi_def_cfa_register 13 5496 @ sp needed 5497 000e 5DF8047B ldr r7, [sp], #4 5498 .cfi_restore 7 5499 .cfi_def_cfa_offset 0 5500 0012 7047 bx lr 5501 .cfi_endproc 5502 .LFE153: 5504 .section .text.HAL_SPI_TxRxHalfCpltCallback,"ax",%progbits 5505 .align 1 5506 .weak HAL_SPI_TxRxHalfCpltCallback 5507 .syntax unified 5508 .thumb 5509 .thumb_func 5511 HAL_SPI_TxRxHalfCpltCallback: 5512 .LFB154: 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx and Rx Half Transfer callback. 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi) 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5513 .loc 1 2943 1 5514 .cfi_startproc 5515 @ args = 0, pretend = 0, frame = 8 ARM GAS /tmp/ccs34gJO.s page 149 5516 @ frame_needed = 1, uses_anonymous_args = 0 5517 @ link register save eliminated. 5518 0000 80B4 push {r7} 5519 .cfi_def_cfa_offset 4 5520 .cfi_offset 7, -4 5521 0002 83B0 sub sp, sp, #12 5522 .cfi_def_cfa_offset 16 5523 0004 00AF add r7, sp, #0 5524 .cfi_def_cfa_register 7 5525 0006 7860 str r0, [r7, #4] 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_TxRxHalfCpltCallback() should be implemented in the user file 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5526 .loc 1 2950 1 5527 0008 00BF nop 5528 000a 0C37 adds r7, r7, #12 5529 .cfi_def_cfa_offset 4 5530 000c BD46 mov sp, r7 5531 .cfi_def_cfa_register 13 5532 @ sp needed 5533 000e 5DF8047B ldr r7, [sp], #4 5534 .cfi_restore 7 5535 .cfi_def_cfa_offset 0 5536 0012 7047 bx lr 5537 .cfi_endproc 5538 .LFE154: 5540 .section .text.HAL_SPI_ErrorCallback,"ax",%progbits 5541 .align 1 5542 .weak HAL_SPI_ErrorCallback 5543 .syntax unified 5544 .thumb 5545 .thumb_func 5547 HAL_SPI_ErrorCallback: 5548 .LFB155: 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI error callback. 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5549 .loc 1 2959 1 5550 .cfi_startproc 5551 @ args = 0, pretend = 0, frame = 8 5552 @ frame_needed = 1, uses_anonymous_args = 0 5553 @ link register save eliminated. 5554 0000 80B4 push {r7} 5555 .cfi_def_cfa_offset 4 5556 .cfi_offset 7, -4 5557 0002 83B0 sub sp, sp, #12 5558 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccs34gJO.s page 150 5559 0004 00AF add r7, sp, #0 5560 .cfi_def_cfa_register 7 5561 0006 7860 str r0, [r7, #4] 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_ErrorCallback should be implemented in the user file 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : The ErrorCode parameter in the hspi handle is updated by the SPI processes 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and user can use HAL_SPI_GetError() API to check the latest error occurred 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5562 .loc 1 2969 1 5563 0008 00BF nop 5564 000a 0C37 adds r7, r7, #12 5565 .cfi_def_cfa_offset 4 5566 000c BD46 mov sp, r7 5567 .cfi_def_cfa_register 13 5568 @ sp needed 5569 000e 5DF8047B ldr r7, [sp], #4 5570 .cfi_restore 7 5571 .cfi_def_cfa_offset 0 5572 0012 7047 bx lr 5573 .cfi_endproc 5574 .LFE155: 5576 .section .text.HAL_SPI_AbortCpltCallback,"ax",%progbits 5577 .align 1 5578 .weak HAL_SPI_AbortCpltCallback 5579 .syntax unified 5580 .thumb 5581 .thumb_func 5583 HAL_SPI_AbortCpltCallback: 5584 .LFB156: 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI Abort Complete callback. 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle. 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __weak void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi) 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5585 .loc 1 2977 1 5586 .cfi_startproc 5587 @ args = 0, pretend = 0, frame = 8 5588 @ frame_needed = 1, uses_anonymous_args = 0 5589 @ link register save eliminated. 5590 0000 80B4 push {r7} 5591 .cfi_def_cfa_offset 4 5592 .cfi_offset 7, -4 5593 0002 83B0 sub sp, sp, #12 5594 .cfi_def_cfa_offset 16 5595 0004 00AF add r7, sp, #0 5596 .cfi_def_cfa_register 7 5597 0006 7860 str r0, [r7, #4] 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Prevent unused argument(s) compilation warning */ 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(hspi); ARM GAS /tmp/ccs34gJO.s page 151 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* NOTE : This function should not be modified, when the callback is needed, 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** the HAL_SPI_AbortCpltCallback can be implemented in the user file. 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5598 .loc 1 2984 1 5599 0008 00BF nop 5600 000a 0C37 adds r7, r7, #12 5601 .cfi_def_cfa_offset 4 5602 000c BD46 mov sp, r7 5603 .cfi_def_cfa_register 13 5604 @ sp needed 5605 000e 5DF8047B ldr r7, [sp], #4 5606 .cfi_restore 7 5607 .cfi_def_cfa_offset 0 5608 0012 7047 bx lr 5609 .cfi_endproc 5610 .LFE156: 5612 .section .text.HAL_SPI_GetState,"ax",%progbits 5613 .align 1 5614 .global HAL_SPI_GetState 5615 .syntax unified 5616 .thumb 5617 .thumb_func 5619 HAL_SPI_GetState: 5620 .LFB157: 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @defgroup SPI_Exported_Functions_Group3 Peripheral State and Errors functions 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief SPI control functions 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @verbatim 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ##### Peripheral State and Errors functions ##### 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** =============================================================================== 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** [..] 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** This subsection provides a set of functions allowing to control the SPI. 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetState() API can be helpful to check in run-time the state of the SPI peripheral 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** (+) HAL_SPI_GetError() check in run-time Errors occurring during communication 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** @endverbatim 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI handle state. 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI state 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_StateTypeDef HAL_SPI_GetState(SPI_HandleTypeDef *hspi) 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5621 .loc 1 3012 1 5622 .cfi_startproc 5623 @ args = 0, pretend = 0, frame = 8 ARM GAS /tmp/ccs34gJO.s page 152 5624 @ frame_needed = 1, uses_anonymous_args = 0 5625 @ link register save eliminated. 5626 0000 80B4 push {r7} 5627 .cfi_def_cfa_offset 4 5628 .cfi_offset 7, -4 5629 0002 83B0 sub sp, sp, #12 5630 .cfi_def_cfa_offset 16 5631 0004 00AF add r7, sp, #0 5632 .cfi_def_cfa_register 7 5633 0006 7860 str r0, [r7, #4] 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI handle state */ 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->State; 5634 .loc 1 3014 14 5635 0008 7B68 ldr r3, [r7, #4] 5636 000a 93F85D30 ldrb r3, [r3, #93] 5637 000e DBB2 uxtb r3, r3 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5638 .loc 1 3015 1 5639 0010 1846 mov r0, r3 5640 0012 0C37 adds r7, r7, #12 5641 .cfi_def_cfa_offset 4 5642 0014 BD46 mov sp, r7 5643 .cfi_def_cfa_register 13 5644 @ sp needed 5645 0016 5DF8047B ldr r7, [sp], #4 5646 .cfi_restore 7 5647 .cfi_def_cfa_offset 0 5648 001a 7047 bx lr 5649 .cfi_endproc 5650 .LFE157: 5652 .section .text.HAL_SPI_GetError,"ax",%progbits 5653 .align 1 5654 .global HAL_SPI_GetError 5655 .syntax unified 5656 .thumb 5657 .thumb_func 5659 HAL_SPI_GetError: 5660 .LFB158: 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Return the SPI error code. 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval SPI error code in bitmap format 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi) 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5661 .loc 1 3024 1 5662 .cfi_startproc 5663 @ args = 0, pretend = 0, frame = 8 5664 @ frame_needed = 1, uses_anonymous_args = 0 5665 @ link register save eliminated. 5666 0000 80B4 push {r7} 5667 .cfi_def_cfa_offset 4 5668 .cfi_offset 7, -4 5669 0002 83B0 sub sp, sp, #12 5670 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccs34gJO.s page 153 5671 0004 00AF add r7, sp, #0 5672 .cfi_def_cfa_register 7 5673 0006 7860 str r0, [r7, #4] 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Return SPI ErrorCode */ 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return hspi->ErrorCode; 5674 .loc 1 3026 14 5675 0008 7B68 ldr r3, [r7, #4] 5676 000a 1B6E ldr r3, [r3, #96] 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5677 .loc 1 3027 1 5678 000c 1846 mov r0, r3 5679 000e 0C37 adds r7, r7, #12 5680 .cfi_def_cfa_offset 4 5681 0010 BD46 mov sp, r7 5682 .cfi_def_cfa_register 13 5683 @ sp needed 5684 0012 5DF8047B ldr r7, [sp], #4 5685 .cfi_restore 7 5686 .cfi_def_cfa_offset 0 5687 0016 7047 bx lr 5688 .cfi_endproc 5689 .LFE158: 5691 .section .text.SPI_DMATransmitCplt,"ax",%progbits 5692 .align 1 5693 .syntax unified 5694 .thumb 5695 .thumb_func 5697 SPI_DMATransmitCplt: 5698 .LFB159: 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @} 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** @addtogroup SPI_Private_Functions 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Private functions 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @{ 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit process complete callback. 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5699 .loc 1 3049 1 5700 .cfi_startproc 5701 @ args = 0, pretend = 0, frame = 24 5702 @ frame_needed = 1, uses_anonymous_args = 0 5703 0000 80B5 push {r7, lr} 5704 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccs34gJO.s page 154 5705 .cfi_offset 7, -8 5706 .cfi_offset 14, -4 5707 0002 86B0 sub sp, sp, #24 5708 .cfi_def_cfa_offset 32 5709 0004 00AF add r7, sp, #0 5710 .cfi_def_cfa_register 7 5711 0006 7860 str r0, [r7, #4] 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5712 .loc 1 3050 22 5713 0008 7B68 ldr r3, [r7, #4] 5714 000a 5B6A ldr r3, [r3, #36] 5715 000c 7B61 str r3, [r7, #20] 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 5716 .loc 1 3054 15 5717 000e FFF7FEFF bl HAL_GetTick 5718 0012 3861 str r0, [r7, #16] 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 5719 .loc 1 3057 12 5720 0014 7B68 ldr r3, [r7, #4] 5721 0016 1B68 ldr r3, [r3] 5722 .loc 1 3057 22 5723 0018 1B68 ldr r3, [r3] 5724 .loc 1 3057 28 5725 001a 03F02003 and r3, r3, #32 5726 .loc 1 3057 6 5727 001e 202B cmp r3, #32 5728 0020 3BD0 beq .L294 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 5729 .loc 1 3060 5 5730 0022 7B69 ldr r3, [r7, #20] 5731 0024 1B68 ldr r3, [r3] 5732 0026 5A68 ldr r2, [r3, #4] 5733 0028 7B69 ldr r3, [r7, #20] 5734 002a 1B68 ldr r3, [r3] 5735 002c 22F02002 bic r2, r2, #32 5736 0030 5A60 str r2, [r3, #4] 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 5737 .loc 1 3063 5 5738 0032 7B69 ldr r3, [r7, #20] 5739 0034 1B68 ldr r3, [r3] 5740 0036 5A68 ldr r2, [r3, #4] 5741 0038 7B69 ldr r3, [r7, #20] 5742 003a 1B68 ldr r3, [r3] 5743 003c 22F00202 bic r2, r2, #2 5744 0040 5A60 str r2, [r3, #4] 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) ARM GAS /tmp/ccs34gJO.s page 155 5745 .loc 1 3066 9 5746 0042 3A69 ldr r2, [r7, #16] 5747 0044 6421 movs r1, #100 5748 0046 7869 ldr r0, [r7, #20] 5749 0048 FFF7FEFF bl SPI_EndRxTxTransaction 5750 004c 0346 mov r3, r0 5751 .loc 1 3066 8 discriminator 1 5752 004e 002B cmp r3, #0 5753 0050 05D0 beq .L295 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 5754 .loc 1 3068 7 5755 0052 7B69 ldr r3, [r7, #20] 5756 0054 1B6E ldr r3, [r3, #96] 5757 0056 43F02002 orr r2, r3, #32 5758 005a 7B69 ldr r3, [r7, #20] 5759 005c 1A66 str r2, [r3, #96] 5760 .L295: 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received data is not read */ 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) 5761 .loc 1 3072 19 5762 005e 7B69 ldr r3, [r7, #20] 5763 0060 9B68 ldr r3, [r3, #8] 5764 .loc 1 3072 8 5765 0062 002B cmp r3, #0 5766 0064 0AD1 bne .L296 5767 .LBB11: 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 5768 .loc 1 3074 7 5769 0066 0023 movs r3, #0 5770 0068 FB60 str r3, [r7, #12] 5771 006a 7B69 ldr r3, [r7, #20] 5772 006c 1B68 ldr r3, [r3] 5773 006e DB68 ldr r3, [r3, #12] 5774 0070 FB60 str r3, [r7, #12] 5775 0072 7B69 ldr r3, [r7, #20] 5776 0074 1B68 ldr r3, [r3] 5777 0076 9B68 ldr r3, [r3, #8] 5778 0078 FB60 str r3, [r7, #12] 5779 007a FB68 ldr r3, [r7, #12] 5780 .L296: 5781 .LBE11: 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 5782 .loc 1 3077 23 5783 007c 7B69 ldr r3, [r7, #20] 5784 007e 0022 movs r2, #0 5785 0080 DA87 strh r2, [r3, #62] @ movhi 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5786 .loc 1 3078 17 5787 0082 7B69 ldr r3, [r7, #20] 5788 0084 0122 movs r2, #1 5789 0086 83F85D20 strb r2, [r3, #93] ARM GAS /tmp/ccs34gJO.s page 156 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5790 .loc 1 3080 13 5791 008a 7B69 ldr r3, [r7, #20] 5792 008c 1B6E ldr r3, [r3, #96] 5793 .loc 1 3080 8 5794 008e 002B cmp r3, #0 5795 0090 03D0 beq .L294 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 5796 .loc 1 3086 7 5797 0092 7869 ldr r0, [r7, #20] 5798 0094 FFF7FEFF bl HAL_SPI_ErrorCallback 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5799 .loc 1 3088 7 5800 0098 02E0 b .L293 5801 .L294: 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx complete callback */ 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 5802 .loc 1 3095 3 5803 009a 7869 ldr r0, [r7, #20] 5804 009c FFF7FEFF bl HAL_SPI_TxCpltCallback 5805 .L293: 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5806 .loc 1 3097 1 5807 00a0 1837 adds r7, r7, #24 5808 .cfi_def_cfa_offset 8 5809 00a2 BD46 mov sp, r7 5810 .cfi_def_cfa_register 13 5811 @ sp needed 5812 00a4 80BD pop {r7, pc} 5813 .cfi_endproc 5814 .LFE159: 5816 .section .text.SPI_DMAReceiveCplt,"ax",%progbits 5817 .align 1 5818 .syntax unified 5819 .thumb 5820 .thumb_func 5822 SPI_DMAReceiveCplt: 5823 .LFB160: 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI receive process complete callback. 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None ARM GAS /tmp/ccs34gJO.s page 157 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5824 .loc 1 3106 1 5825 .cfi_startproc 5826 @ args = 0, pretend = 0, frame = 16 5827 @ frame_needed = 1, uses_anonymous_args = 0 5828 0000 80B5 push {r7, lr} 5829 .cfi_def_cfa_offset 8 5830 .cfi_offset 7, -8 5831 .cfi_offset 14, -4 5832 0002 84B0 sub sp, sp, #16 5833 .cfi_def_cfa_offset 24 5834 0004 00AF add r7, sp, #0 5835 .cfi_def_cfa_register 7 5836 0006 7860 str r0, [r7, #4] 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5837 .loc 1 3107 22 5838 0008 7B68 ldr r3, [r7, #4] 5839 000a 5B6A ldr r3, [r3, #36] 5840 000c FB60 str r3, [r7, #12] 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 5841 .loc 1 3116 15 5842 000e FFF7FEFF bl HAL_GetTick 5843 0012 B860 str r0, [r7, #8] 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 5844 .loc 1 3119 12 5845 0014 7B68 ldr r3, [r7, #4] 5846 0016 1B68 ldr r3, [r3] 5847 .loc 1 3119 22 5848 0018 1B68 ldr r3, [r3] 5849 .loc 1 3119 28 5850 001a 03F02003 and r3, r3, #32 5851 .loc 1 3119 6 5852 001e 202B cmp r3, #32 5853 0020 3CD0 beq .L299 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 5854 .loc 1 3122 5 5855 0022 FB68 ldr r3, [r7, #12] 5856 0024 1B68 ldr r3, [r3] 5857 0026 5A68 ldr r2, [r3, #4] 5858 0028 FB68 ldr r3, [r7, #12] 5859 002a 1B68 ldr r3, [r3] 5860 002c 22F02002 bic r2, r2, #32 5861 0030 5A60 str r2, [r3, #4] ARM GAS /tmp/ccs34gJO.s page 158 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Wait until RXNE flag */ 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstart) ! 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC */ 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.DataSize > SPI_DATASIZE_8BIT) 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC */ 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCLength == SPI_CRC_LENGTH_16BIT) 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_RXNE, SET, SPI_DEFAULT_TIMEOUT, tickstar 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC again in case of 16bit CRC in 8bit Data mode */ 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if we are in Master RX 2 line mode */ 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER)) 5862 .loc 1 3168 20 5863 0032 FB68 ldr r3, [r7, #12] 5864 0034 9B68 ldr r3, [r3, #8] 5865 .loc 1 3168 8 5866 0036 002B cmp r3, #0 5867 0038 0DD1 bne .L300 5868 .loc 1 3168 70 discriminator 1 5869 003a FB68 ldr r3, [r7, #12] 5870 003c 5B68 ldr r3, [r3, #4] 5871 .loc 1 3168 56 discriminator 1 5872 003e B3F5827F cmp r3, #260 ARM GAS /tmp/ccs34gJO.s page 159 5873 0042 08D1 bne .L300 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request (done by default to handle the case master rx direction 2 lines) 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 5874 .loc 1 3171 7 5875 0044 FB68 ldr r3, [r7, #12] 5876 0046 1B68 ldr r3, [r3] 5877 0048 5A68 ldr r2, [r3, #4] 5878 004a FB68 ldr r3, [r7, #12] 5879 004c 1B68 ldr r3, [r3] 5880 004e 22F00302 bic r2, r2, #3 5881 0052 5A60 str r2, [r3, #4] 5882 0054 07E0 b .L301 5883 .L300: 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Normal case */ 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 5884 .loc 1 3176 7 5885 0056 FB68 ldr r3, [r7, #12] 5886 0058 1B68 ldr r3, [r3] 5887 005a 5A68 ldr r2, [r3, #4] 5888 005c FB68 ldr r3, [r7, #12] 5889 005e 1B68 ldr r3, [r3] 5890 0060 22F00102 bic r2, r2, #1 5891 0064 5A60 str r2, [r3, #4] 5892 .L301: 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 5893 .loc 1 3180 9 5894 0066 BA68 ldr r2, [r7, #8] 5895 0068 6421 movs r1, #100 5896 006a F868 ldr r0, [r7, #12] 5897 006c FFF7FEFF bl SPI_EndRxTransaction 5898 0070 0346 mov r3, r0 5899 .loc 1 3180 8 discriminator 1 5900 0072 002B cmp r3, #0 5901 0074 02D0 beq .L302 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_FLAG; 5902 .loc 1 3182 23 5903 0076 FB68 ldr r3, [r7, #12] 5904 0078 2022 movs r2, #32 5905 007a 1A66 str r2, [r3, #96] 5906 .L302: 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 5907 .loc 1 3185 23 5908 007c FB68 ldr r3, [r7, #12] 5909 007e 0022 movs r2, #0 5910 0080 A3F84620 strh r2, [r3, #70] @ movhi 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 5911 .loc 1 3186 17 ARM GAS /tmp/ccs34gJO.s page 160 5912 0084 FB68 ldr r3, [r7, #12] 5913 0086 0122 movs r2, #1 5914 0088 83F85D20 strb r2, [r3, #93] 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 5915 .loc 1 3197 13 5916 008c FB68 ldr r3, [r7, #12] 5917 008e 1B6E ldr r3, [r3, #96] 5918 .loc 1 3197 8 5919 0090 002B cmp r3, #0 5920 0092 03D0 beq .L299 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 5921 .loc 1 3203 7 5922 0094 F868 ldr r0, [r7, #12] 5923 0096 FFF7FEFF bl HAL_SPI_ErrorCallback 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 5924 .loc 1 3205 7 5925 009a 02E0 b .L298 5926 .L299: 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 5927 .loc 1 3212 3 5928 009c F868 ldr r0, [r7, #12] 5929 009e FFF7FEFF bl HAL_SPI_RxCpltCallback 5930 .L298: 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 5931 .loc 1 3214 1 5932 00a2 1037 adds r7, r7, #16 5933 .cfi_def_cfa_offset 8 5934 00a4 BD46 mov sp, r7 5935 .cfi_def_cfa_register 13 5936 @ sp needed 5937 00a6 80BD pop {r7, pc} 5938 .cfi_endproc 5939 .LFE160: 5941 .section .text.SPI_DMATransmitReceiveCplt,"ax",%progbits ARM GAS /tmp/ccs34gJO.s page 161 5942 .align 1 5943 .syntax unified 5944 .thumb 5945 .thumb_func 5947 SPI_DMATransmitReceiveCplt: 5948 .LFB161: 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI transmit receive process complete callback. 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 5949 .loc 1 3223 1 5950 .cfi_startproc 5951 @ args = 0, pretend = 0, frame = 16 5952 @ frame_needed = 1, uses_anonymous_args = 0 5953 0000 80B5 push {r7, lr} 5954 .cfi_def_cfa_offset 8 5955 .cfi_offset 7, -8 5956 .cfi_offset 14, -4 5957 0002 84B0 sub sp, sp, #16 5958 .cfi_def_cfa_offset 24 5959 0004 00AF add r7, sp, #0 5960 .cfi_def_cfa_register 7 5961 0006 7860 str r0, [r7, #4] 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 5962 .loc 1 3224 22 5963 0008 7B68 ldr r3, [r7, #4] 5964 000a 5B6A ldr r3, [r3, #36] 5965 000c FB60 str r3, [r7, #12] 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 5966 .loc 1 3233 15 5967 000e FFF7FEFF bl HAL_GetTick 5968 0012 B860 str r0, [r7, #8] 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* DMA Normal Mode */ 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hdma->Instance->CCR & DMA_CCR_CIRC) != DMA_CCR_CIRC) 5969 .loc 1 3236 12 5970 0014 7B68 ldr r3, [r7, #4] 5971 0016 1B68 ldr r3, [r3] 5972 .loc 1 3236 22 5973 0018 1B68 ldr r3, [r3] 5974 .loc 1 3236 28 5975 001a 03F02003 and r3, r3, #32 5976 .loc 1 3236 6 5977 001e 202B cmp r3, #32 ARM GAS /tmp/ccs34gJO.s page 162 5978 0020 30D0 beq .L305 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 5979 .loc 1 3239 5 5980 0022 FB68 ldr r3, [r7, #12] 5981 0024 1B68 ldr r3, [r3] 5982 0026 5A68 ldr r2, [r3, #4] 5983 0028 FB68 ldr r3, [r7, #12] 5984 002a 1B68 ldr r3, [r3] 5985 002c 22F02002 bic r2, r2, #32 5986 0030 5A60 str r2, [r3, #4] 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* CRC handling */ 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.DataSize == SPI_DATASIZE_8BIT) && (hspi->Init.CRCLength == SPI_CRC_LENGTH_8BI 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_QUARTER_FULL, SPI_DEFAULT 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart) != HAL_OK) 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC */ 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_HALF_FULL, SPI_DEFAULT_TI 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Error on the CRC reception */ 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read CRC to Flush DR and RXNE flag */ 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 5987 .loc 1 3276 9 5988 0032 BA68 ldr r2, [r7, #8] 5989 0034 6421 movs r1, #100 5990 0036 F868 ldr r0, [r7, #12] 5991 0038 FFF7FEFF bl SPI_EndRxTxTransaction 5992 003c 0346 mov r3, r0 5993 .loc 1 3276 8 discriminator 1 5994 003e 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 163 5995 0040 05D0 beq .L306 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 5996 .loc 1 3278 7 5997 0042 FB68 ldr r3, [r7, #12] 5998 0044 1B6E ldr r3, [r3, #96] 5999 0046 43F02002 orr r2, r3, #32 6000 004a FB68 ldr r3, [r7, #12] 6001 004c 1A66 str r2, [r3, #96] 6002 .L306: 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx/Tx DMA Request */ 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 6003 .loc 1 3282 5 6004 004e FB68 ldr r3, [r7, #12] 6005 0050 1B68 ldr r3, [r3] 6006 0052 5A68 ldr r2, [r3, #4] 6007 0054 FB68 ldr r3, [r7, #12] 6008 0056 1B68 ldr r3, [r3] 6009 0058 22F00302 bic r2, r2, #3 6010 005c 5A60 str r2, [r3, #4] 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6011 .loc 1 3284 23 6012 005e FB68 ldr r3, [r7, #12] 6013 0060 0022 movs r2, #0 6014 0062 DA87 strh r2, [r3, #62] @ movhi 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6015 .loc 1 3285 23 6016 0064 FB68 ldr r3, [r7, #12] 6017 0066 0022 movs r2, #0 6018 0068 A3F84620 strh r2, [r3, #70] @ movhi 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6019 .loc 1 3286 17 6020 006c FB68 ldr r3, [r7, #12] 6021 006e 0122 movs r2, #1 6022 0070 83F85D20 strb r2, [r3, #93] 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR)) 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 6023 .loc 1 3297 13 6024 0074 FB68 ldr r3, [r7, #12] 6025 0076 1B6E ldr r3, [r3, #96] 6026 .loc 1 3297 8 6027 0078 002B cmp r3, #0 6028 007a 03D0 beq .L305 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ ARM GAS /tmp/ccs34gJO.s page 164 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 6029 .loc 1 3303 7 6030 007c F868 ldr r0, [r7, #12] 6031 007e FFF7FEFF bl HAL_SPI_ErrorCallback 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 6032 .loc 1 3305 7 6033 0082 02E0 b .L304 6034 .L305: 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 6035 .loc 1 3312 3 6036 0084 F868 ldr r0, [r7, #12] 6037 0086 FFF7FEFF bl HAL_SPI_TxRxCpltCallback 6038 .L304: 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6039 .loc 1 3314 1 6040 008a 1037 adds r7, r7, #16 6041 .cfi_def_cfa_offset 8 6042 008c BD46 mov sp, r7 6043 .cfi_def_cfa_register 13 6044 @ sp needed 6045 008e 80BD pop {r7, pc} 6046 .cfi_endproc 6047 .LFE161: 6049 .section .text.SPI_DMAHalfTransmitCplt,"ax",%progbits 6050 .align 1 6051 .syntax unified 6052 .thumb 6053 .thumb_func 6055 SPI_DMAHalfTransmitCplt: 6056 .LFB162: 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit process complete callback. 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitCplt(DMA_HandleTypeDef *hdma) 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6057 .loc 1 3323 1 6058 .cfi_startproc 6059 @ args = 0, pretend = 0, frame = 16 6060 @ frame_needed = 1, uses_anonymous_args = 0 6061 0000 80B5 push {r7, lr} 6062 .cfi_def_cfa_offset 8 6063 .cfi_offset 7, -8 ARM GAS /tmp/ccs34gJO.s page 165 6064 .cfi_offset 14, -4 6065 0002 84B0 sub sp, sp, #16 6066 .cfi_def_cfa_offset 24 6067 0004 00AF add r7, sp, #0 6068 .cfi_def_cfa_register 7 6069 0006 7860 str r0, [r7, #4] 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6070 .loc 1 3324 22 6071 0008 7B68 ldr r3, [r7, #4] 6072 000a 5B6A ldr r3, [r3, #36] 6073 000c FB60 str r3, [r7, #12] 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Tx half complete callback */ 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxHalfCpltCallback(hspi); 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxHalfCpltCallback(hspi); 6074 .loc 1 3330 3 6075 000e F868 ldr r0, [r7, #12] 6076 0010 FFF7FEFF bl HAL_SPI_TxHalfCpltCallback 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6077 .loc 1 3332 1 6078 0014 00BF nop 6079 0016 1037 adds r7, r7, #16 6080 .cfi_def_cfa_offset 8 6081 0018 BD46 mov sp, r7 6082 .cfi_def_cfa_register 13 6083 @ sp needed 6084 001a 80BD pop {r7, pc} 6085 .cfi_endproc 6086 .LFE162: 6088 .section .text.SPI_DMAHalfReceiveCplt,"ax",%progbits 6089 .align 1 6090 .syntax unified 6091 .thumb 6092 .thumb_func 6094 SPI_DMAHalfReceiveCplt: 6095 .LFB163: 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half receive process complete callback 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfReceiveCplt(DMA_HandleTypeDef *hdma) 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6096 .loc 1 3341 1 6097 .cfi_startproc 6098 @ args = 0, pretend = 0, frame = 16 6099 @ frame_needed = 1, uses_anonymous_args = 0 6100 0000 80B5 push {r7, lr} 6101 .cfi_def_cfa_offset 8 6102 .cfi_offset 7, -8 6103 .cfi_offset 14, -4 6104 0002 84B0 sub sp, sp, #16 ARM GAS /tmp/ccs34gJO.s page 166 6105 .cfi_def_cfa_offset 24 6106 0004 00AF add r7, sp, #0 6107 .cfi_def_cfa_register 7 6108 0006 7860 str r0, [r7, #4] 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6109 .loc 1 3342 22 6110 0008 7B68 ldr r3, [r7, #4] 6111 000a 5B6A ldr r3, [r3, #36] 6112 000c FB60 str r3, [r7, #12] 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx half complete callback */ 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxHalfCpltCallback(hspi); 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxHalfCpltCallback(hspi); 6113 .loc 1 3348 3 6114 000e F868 ldr r0, [r7, #12] 6115 0010 FFF7FEFF bl HAL_SPI_RxHalfCpltCallback 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6116 .loc 1 3350 1 6117 0014 00BF nop 6118 0016 1037 adds r7, r7, #16 6119 .cfi_def_cfa_offset 8 6120 0018 BD46 mov sp, r7 6121 .cfi_def_cfa_register 13 6122 @ sp needed 6123 001a 80BD pop {r7, pc} 6124 .cfi_endproc 6125 .LFE163: 6127 .section .text.SPI_DMAHalfTransmitReceiveCplt,"ax",%progbits 6128 .align 1 6129 .syntax unified 6130 .thumb 6131 .thumb_func 6133 SPI_DMAHalfTransmitReceiveCplt: 6134 .LFB164: 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI half transmit receive process complete callback. 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAHalfTransmitReceiveCplt(DMA_HandleTypeDef *hdma) 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6135 .loc 1 3359 1 6136 .cfi_startproc 6137 @ args = 0, pretend = 0, frame = 16 6138 @ frame_needed = 1, uses_anonymous_args = 0 6139 0000 80B5 push {r7, lr} 6140 .cfi_def_cfa_offset 8 6141 .cfi_offset 7, -8 6142 .cfi_offset 14, -4 6143 0002 84B0 sub sp, sp, #16 6144 .cfi_def_cfa_offset 24 6145 0004 00AF add r7, sp, #0 ARM GAS /tmp/ccs34gJO.s page 167 6146 .cfi_def_cfa_register 7 6147 0006 7860 str r0, [r7, #4] 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6148 .loc 1 3360 22 6149 0008 7B68 ldr r3, [r7, #4] 6150 000a 5B6A ldr r3, [r3, #36] 6151 000c FB60 str r3, [r7, #12] 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx half complete callback */ 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxHalfCpltCallback(hspi); 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxHalfCpltCallback(hspi); 6152 .loc 1 3366 3 6153 000e F868 ldr r0, [r7, #12] 6154 0010 FFF7FEFF bl HAL_SPI_TxRxHalfCpltCallback 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6155 .loc 1 3368 1 6156 0014 00BF nop 6157 0016 1037 adds r7, r7, #16 6158 .cfi_def_cfa_offset 8 6159 0018 BD46 mov sp, r7 6160 .cfi_def_cfa_register 13 6161 @ sp needed 6162 001a 80BD pop {r7, pc} 6163 .cfi_endproc 6164 .LFE164: 6166 .section .text.SPI_DMAError,"ax",%progbits 6167 .align 1 6168 .syntax unified 6169 .thumb 6170 .thumb_func 6172 SPI_DMAError: 6173 .LFB165: 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication error callback. 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for the specified DMA module. 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAError(DMA_HandleTypeDef *hdma) 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6174 .loc 1 3377 1 6175 .cfi_startproc 6176 @ args = 0, pretend = 0, frame = 16 6177 @ frame_needed = 1, uses_anonymous_args = 0 6178 0000 80B5 push {r7, lr} 6179 .cfi_def_cfa_offset 8 6180 .cfi_offset 7, -8 6181 .cfi_offset 14, -4 6182 0002 84B0 sub sp, sp, #16 6183 .cfi_def_cfa_offset 24 6184 0004 00AF add r7, sp, #0 6185 .cfi_def_cfa_register 7 6186 0006 7860 str r0, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 168 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6187 .loc 1 3378 22 6188 0008 7B68 ldr r3, [r7, #4] 6189 000a 5B6A ldr r3, [r3, #36] 6190 000c FB60 str r3, [r7, #12] 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Stop the disable DMA transfer on SPI side */ 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN | SPI_CR2_RXDMAEN); 6191 .loc 1 3381 3 6192 000e FB68 ldr r3, [r7, #12] 6193 0010 1B68 ldr r3, [r3] 6194 0012 5A68 ldr r2, [r3, #4] 6195 0014 FB68 ldr r3, [r7, #12] 6196 0016 1B68 ldr r3, [r3] 6197 0018 22F00302 bic r2, r2, #3 6198 001c 5A60 str r2, [r3, #4] 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_DMA); 6199 .loc 1 3383 3 6200 001e FB68 ldr r3, [r7, #12] 6201 0020 1B6E ldr r3, [r3, #96] 6202 0022 43F01002 orr r2, r3, #16 6203 0026 FB68 ldr r3, [r7, #12] 6204 0028 1A66 str r2, [r3, #96] 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6205 .loc 1 3384 15 6206 002a FB68 ldr r3, [r7, #12] 6207 002c 0122 movs r2, #1 6208 002e 83F85D20 strb r2, [r3, #93] 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 6209 .loc 1 3389 3 6210 0032 F868 ldr r0, [r7, #12] 6211 0034 FFF7FEFF bl HAL_SPI_ErrorCallback 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6212 .loc 1 3391 1 6213 0038 00BF nop 6214 003a 1037 adds r7, r7, #16 6215 .cfi_def_cfa_offset 8 6216 003c BD46 mov sp, r7 6217 .cfi_def_cfa_register 13 6218 @ sp needed 6219 003e 80BD pop {r7, pc} 6220 .cfi_endproc 6221 .LFE165: 6223 .section .text.SPI_DMAAbortOnError,"ax",%progbits 6224 .align 1 6225 .syntax unified 6226 .thumb 6227 .thumb_func 6229 SPI_DMAAbortOnError: 6230 .LFB166: 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 169 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI communication abort callback, when initiated by HAL services on Error 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6231 .loc 1 3400 1 6232 .cfi_startproc 6233 @ args = 0, pretend = 0, frame = 16 6234 @ frame_needed = 1, uses_anonymous_args = 0 6235 0000 80B5 push {r7, lr} 6236 .cfi_def_cfa_offset 8 6237 .cfi_offset 7, -8 6238 .cfi_offset 14, -4 6239 0002 84B0 sub sp, sp, #16 6240 .cfi_def_cfa_offset 24 6241 0004 00AF add r7, sp, #0 6242 .cfi_def_cfa_register 7 6243 0006 7860 str r0, [r7, #4] 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6244 .loc 1 3401 22 6245 0008 7B68 ldr r3, [r7, #4] 6246 000a 5B6A ldr r3, [r3, #36] 6247 000c FB60 str r3, [r7, #12] 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6248 .loc 1 3402 21 6249 000e FB68 ldr r3, [r7, #12] 6250 0010 0022 movs r2, #0 6251 0012 A3F84620 strh r2, [r3, #70] @ movhi 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6252 .loc 1 3403 21 6253 0016 FB68 ldr r3, [r7, #12] 6254 0018 0022 movs r2, #0 6255 001a DA87 strh r2, [r3, #62] @ movhi 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 6256 .loc 1 3409 3 6257 001c F868 ldr r0, [r7, #12] 6258 001e FFF7FEFF bl HAL_SPI_ErrorCallback 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6259 .loc 1 3411 1 6260 0022 00BF nop 6261 0024 1037 adds r7, r7, #16 6262 .cfi_def_cfa_offset 8 6263 0026 BD46 mov sp, r7 6264 .cfi_def_cfa_register 13 6265 @ sp needed 6266 0028 80BD pop {r7, pc} 6267 .cfi_endproc 6268 .LFE166: ARM GAS /tmp/ccs34gJO.s page 170 6270 .section .text.SPI_DMATxAbortCallback,"ax",%progbits 6271 .align 1 6272 .syntax unified 6273 .thumb 6274 .thumb_func 6276 SPI_DMATxAbortCallback: 6277 .LFB167: 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Tx communication abort callback, when initiated by user 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Rx DMA Handle. 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6278 .loc 1 3422 1 6279 .cfi_startproc 6280 @ args = 0, pretend = 0, frame = 24 6281 @ frame_needed = 1, uses_anonymous_args = 0 6282 0000 80B5 push {r7, lr} 6283 .cfi_def_cfa_offset 8 6284 .cfi_offset 7, -8 6285 .cfi_offset 14, -4 6286 0002 88B0 sub sp, sp, #32 6287 .cfi_def_cfa_offset 40 6288 0004 02AF add r7, sp, #8 6289 .cfi_def_cfa 7, 32 6290 0006 7860 str r0, [r7, #4] 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6291 .loc 1 3423 22 6292 0008 7B68 ldr r3, [r7, #4] 6293 000a 5B6A ldr r3, [r3, #36] 6294 000c 7B61 str r3, [r7, #20] 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmatx->XferAbortCallback = NULL; 6295 .loc 1 3425 7 6296 000e 7B69 ldr r3, [r7, #20] 6297 0010 5B6D ldr r3, [r3, #84] 6298 .loc 1 3425 35 6299 0012 0022 movs r2, #0 6300 0014 5A63 str r2, [r3, #52] 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Tx DMA Request */ 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_TXDMAEN); 6301 .loc 1 3428 3 6302 0016 7B69 ldr r3, [r7, #20] 6303 0018 1B68 ldr r3, [r3] 6304 001a 5A68 ldr r2, [r3, #4] 6305 001c 7B69 ldr r3, [r7, #20] 6306 001e 1B68 ldr r3, [r3] 6307 0020 22F00202 bic r2, r2, #2 6308 0024 5A60 str r2, [r3, #4] 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) ARM GAS /tmp/ccs34gJO.s page 171 6309 .loc 1 3430 7 6310 0026 FFF7FEFF bl HAL_GetTick 6311 002a 0346 mov r3, r0 6312 .loc 1 3430 7 is_stmt 0 discriminator 1 6313 002c 1A46 mov r2, r3 6314 002e 6421 movs r1, #100 6315 0030 7869 ldr r0, [r7, #20] 6316 0032 FFF7FEFF bl SPI_EndRxTxTransaction 6317 0036 0346 mov r3, r0 6318 .loc 1 3430 6 is_stmt 1 discriminator 2 6319 0038 002B cmp r3, #0 6320 003a 02D0 beq .L314 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 6321 .loc 1 3432 21 6322 003c 7B69 ldr r3, [r7, #20] 6323 003e 4022 movs r2, #64 6324 0040 1A66 str r2, [r3, #96] 6325 .L314: 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 6326 .loc 1 3436 3 6327 0042 7B69 ldr r3, [r7, #20] 6328 0044 1B68 ldr r3, [r3] 6329 0046 1A68 ldr r2, [r3] 6330 0048 7B69 ldr r3, [r7, #20] 6331 004a 1B68 ldr r3, [r3] 6332 004c 22F04002 bic r2, r2, #64 6333 0050 1A60 str r2, [r3] 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 6334 .loc 1 3439 7 6335 0052 FFF7FEFF bl HAL_GetTick 6336 0056 0346 mov r3, r0 6337 .loc 1 3439 7 is_stmt 0 discriminator 1 6338 0058 0093 str r3, [sp] 6339 005a 6423 movs r3, #100 6340 005c 0022 movs r2, #0 6341 005e 4FF4C061 mov r1, #1536 6342 0062 7869 ldr r0, [r7, #20] 6343 0064 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 6344 0068 0346 mov r3, r0 6345 .loc 1 3439 6 is_stmt 1 discriminator 2 6346 006a 002B cmp r3, #0 6347 006c 02D0 beq .L315 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 6348 .loc 1 3441 21 6349 006e 7B69 ldr r3, [r7, #20] 6350 0070 4022 movs r2, #64 6351 0072 1A66 str r2, [r3, #96] 6352 .L315: 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 172 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx != NULL) 6353 .loc 1 3445 11 6354 0074 7B69 ldr r3, [r7, #20] 6355 0076 9B6D ldr r3, [r3, #88] 6356 .loc 1 3445 6 6357 0078 002B cmp r3, #0 6358 007a 04D0 beq .L316 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmarx->XferAbortCallback != NULL) 6359 .loc 1 3447 13 6360 007c 7B69 ldr r3, [r7, #20] 6361 007e 9B6D ldr r3, [r3, #88] 6362 .loc 1 3447 21 6363 0080 5B6B ldr r3, [r3, #52] 6364 .loc 1 3447 8 6365 0082 002B cmp r3, #0 6366 0084 27D1 bne .L319 6367 .L316: 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6368 .loc 1 3454 21 6369 0086 7B69 ldr r3, [r7, #20] 6370 0088 0022 movs r2, #0 6371 008a A3F84620 strh r2, [r3, #70] @ movhi 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6372 .loc 1 3455 21 6373 008e 7B69 ldr r3, [r7, #20] 6374 0090 0022 movs r2, #0 6375 0092 DA87 strh r2, [r3, #62] @ movhi 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 6376 .loc 1 3458 11 6377 0094 7B69 ldr r3, [r7, #20] 6378 0096 1B6E ldr r3, [r3, #96] 6379 .loc 1 3458 6 6380 0098 402B cmp r3, #64 6381 009a 02D0 beq .L318 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 6382 .loc 1 3461 21 6383 009c 7B69 ldr r3, [r7, #20] 6384 009e 0022 movs r2, #0 6385 00a0 1A66 str r2, [r3, #96] 6386 .L318: 6387 .LBB12: 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); ARM GAS /tmp/ccs34gJO.s page 173 6388 .loc 1 3465 3 6389 00a2 0023 movs r3, #0 6390 00a4 3B61 str r3, [r7, #16] 6391 00a6 7B69 ldr r3, [r7, #20] 6392 00a8 1B68 ldr r3, [r3] 6393 00aa DB68 ldr r3, [r3, #12] 6394 00ac 3B61 str r3, [r7, #16] 6395 00ae 7B69 ldr r3, [r7, #20] 6396 00b0 1B68 ldr r3, [r3] 6397 00b2 9B68 ldr r3, [r3, #8] 6398 00b4 3B61 str r3, [r7, #16] 6399 00b6 3B69 ldr r3, [r7, #16] 6400 .LBE12: 6401 .LBB13: 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6402 .loc 1 3466 3 6403 00b8 0023 movs r3, #0 6404 00ba FB60 str r3, [r7, #12] 6405 00bc 7B69 ldr r3, [r7, #20] 6406 00be 1B68 ldr r3, [r3] 6407 00c0 9B68 ldr r3, [r3, #8] 6408 00c2 FB60 str r3, [r7, #12] 6409 00c4 FB68 ldr r3, [r7, #12] 6410 .LBE13: 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6411 .loc 1 3469 16 6412 00c6 7B69 ldr r3, [r7, #20] 6413 00c8 0122 movs r2, #1 6414 00ca 83F85D20 strb r2, [r3, #93] 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 6415 .loc 1 3475 3 6416 00ce 7869 ldr r0, [r7, #20] 6417 00d0 FFF7FEFF bl HAL_SPI_AbortCpltCallback 6418 00d4 00E0 b .L313 6419 .L319: 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6420 .loc 1 3449 7 6421 00d6 00BF nop 6422 .L313: 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6423 .loc 1 3477 1 6424 00d8 1837 adds r7, r7, #24 6425 .cfi_def_cfa_offset 8 6426 00da BD46 mov sp, r7 6427 .cfi_def_cfa_register 13 6428 @ sp needed 6429 00dc 80BD pop {r7, pc} 6430 .cfi_endproc 6431 .LFE167: ARM GAS /tmp/ccs34gJO.s page 174 6433 .section .text.SPI_DMARxAbortCallback,"ax",%progbits 6434 .align 1 6435 .syntax unified 6436 .thumb 6437 .thumb_func 6439 SPI_DMARxAbortCallback: 6440 .LFB168: 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief DMA SPI Rx communication abort callback, when initiated by user 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * Abort still ongoing for Tx DMA Handle. 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hdma DMA handle. 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6441 .loc 1 3488 1 6442 .cfi_startproc 6443 @ args = 0, pretend = 0, frame = 24 6444 @ frame_needed = 1, uses_anonymous_args = 0 6445 0000 80B5 push {r7, lr} 6446 .cfi_def_cfa_offset 8 6447 .cfi_offset 7, -8 6448 .cfi_offset 14, -4 6449 0002 88B0 sub sp, sp, #32 6450 .cfi_def_cfa_offset 40 6451 0004 02AF add r7, sp, #8 6452 .cfi_def_cfa 7, 32 6453 0006 7860 str r0, [r7, #4] 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_HandleTypeDef *hspi = (SPI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); /* Derogati 6454 .loc 1 3489 22 6455 0008 7B68 ldr r3, [r7, #4] 6456 000a 5B6A ldr r3, [r3, #36] 6457 000c 7B61 str r3, [r7, #20] 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 6458 .loc 1 3492 3 6459 000e 7B69 ldr r3, [r7, #20] 6460 0010 1B68 ldr r3, [r3] 6461 0012 1A68 ldr r2, [r3] 6462 0014 7B69 ldr r3, [r7, #20] 6463 0016 1B68 ldr r3, [r3] 6464 0018 22F04002 bic r2, r2, #64 6465 001c 1A60 str r2, [r3] 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->hdmarx->XferAbortCallback = NULL; 6466 .loc 1 3494 7 6467 001e 7B69 ldr r3, [r7, #20] 6468 0020 9B6D ldr r3, [r3, #88] 6469 .loc 1 3494 35 6470 0022 0022 movs r2, #0 6471 0024 5A63 str r2, [r3, #52] 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable Rx DMA Request */ ARM GAS /tmp/ccs34gJO.s page 175 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, SPI_CR2_RXDMAEN); 6472 .loc 1 3497 3 6473 0026 7B69 ldr r3, [r7, #20] 6474 0028 1B68 ldr r3, [r3] 6475 002a 5A68 ldr r2, [r3, #4] 6476 002c 7B69 ldr r3, [r7, #20] 6477 002e 1B68 ldr r3, [r3] 6478 0030 22F00102 bic r2, r2, #1 6479 0034 5A60 str r2, [r3, #4] 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 6480 .loc 1 3500 7 6481 0036 FFF7FEFF bl HAL_GetTick 6482 003a 0346 mov r3, r0 6483 .loc 1 3500 7 is_stmt 0 discriminator 1 6484 003c 0093 str r3, [sp] 6485 003e 6423 movs r3, #100 6486 0040 0022 movs r2, #0 6487 0042 8021 movs r1, #128 6488 0044 7869 ldr r0, [r7, #20] 6489 0046 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 6490 004a 0346 mov r3, r0 6491 .loc 1 3500 6 is_stmt 1 discriminator 2 6492 004c 002B cmp r3, #0 6493 004e 02D0 beq .L321 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 6494 .loc 1 3502 21 6495 0050 7B69 ldr r3, [r7, #20] 6496 0052 4022 movs r2, #64 6497 0054 1A66 str r2, [r3, #96] 6498 .L321: 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 6499 .loc 1 3506 7 6500 0056 FFF7FEFF bl HAL_GetTick 6501 005a 0346 mov r3, r0 6502 .loc 1 3506 7 is_stmt 0 discriminator 1 6503 005c 0093 str r3, [sp] 6504 005e 6423 movs r3, #100 6505 0060 0022 movs r2, #0 6506 0062 4FF4C061 mov r1, #1536 6507 0066 7869 ldr r0, [r7, #20] 6508 0068 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 6509 006c 0346 mov r3, r0 6510 .loc 1 3506 6 is_stmt 1 discriminator 2 6511 006e 002B cmp r3, #0 6512 0070 02D0 beq .L322 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 6513 .loc 1 3508 21 6514 0072 7B69 ldr r3, [r7, #20] 6515 0074 4022 movs r2, #64 6516 0076 1A66 str r2, [r3, #96] ARM GAS /tmp/ccs34gJO.s page 176 6517 .L322: 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if an Abort process is still ongoing */ 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx != NULL) 6518 .loc 1 3512 11 6519 0078 7B69 ldr r3, [r7, #20] 6520 007a 5B6D ldr r3, [r3, #84] 6521 .loc 1 3512 6 6522 007c 002B cmp r3, #0 6523 007e 04D0 beq .L323 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->hdmatx->XferAbortCallback != NULL) 6524 .loc 1 3514 13 6525 0080 7B69 ldr r3, [r7, #20] 6526 0082 5B6D ldr r3, [r3, #84] 6527 .loc 1 3514 21 6528 0084 5B6B ldr r3, [r3, #52] 6529 .loc 1 3514 8 6530 0086 002B cmp r3, #0 6531 0088 27D1 bne .L326 6532 .L323: 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* No Abort process still ongoing : All DMA Stream/Channel are aborted, call user Abort Complete 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount = 0U; 6533 .loc 1 3521 21 6534 008a 7B69 ldr r3, [r7, #20] 6535 008c 0022 movs r2, #0 6536 008e A3F84620 strh r2, [r3, #70] @ movhi 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount = 0U; 6537 .loc 1 3522 21 6538 0092 7B69 ldr r3, [r7, #20] 6539 0094 0022 movs r2, #0 6540 0096 DA87 strh r2, [r3, #62] @ movhi 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check no error during Abort procedure */ 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_ABORT) 6541 .loc 1 3525 11 6542 0098 7B69 ldr r3, [r7, #20] 6543 009a 1B6E ldr r3, [r3, #96] 6544 .loc 1 3525 6 6545 009c 402B cmp r3, #64 6546 009e 02D0 beq .L325 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset errorCode */ 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_NONE; 6547 .loc 1 3528 21 6548 00a0 7B69 ldr r3, [r7, #20] 6549 00a2 0022 movs r2, #0 6550 00a4 1A66 str r2, [r3, #96] 6551 .L325: 6552 .LBB14: 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccs34gJO.s page 177 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear the Error flags in the SR register */ 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 6553 .loc 1 3532 3 6554 00a6 0023 movs r3, #0 6555 00a8 3B61 str r3, [r7, #16] 6556 00aa 7B69 ldr r3, [r7, #20] 6557 00ac 1B68 ldr r3, [r3] 6558 00ae DB68 ldr r3, [r3, #12] 6559 00b0 3B61 str r3, [r7, #16] 6560 00b2 7B69 ldr r3, [r7, #20] 6561 00b4 1B68 ldr r3, [r3] 6562 00b6 9B68 ldr r3, [r3, #8] 6563 00b8 3B61 str r3, [r7, #16] 6564 00ba 3B69 ldr r3, [r7, #16] 6565 .LBE14: 6566 .LBB15: 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_FREFLAG(hspi); 6567 .loc 1 3533 3 6568 00bc 0023 movs r3, #0 6569 00be FB60 str r3, [r7, #12] 6570 00c0 7B69 ldr r3, [r7, #20] 6571 00c2 1B68 ldr r3, [r3] 6572 00c4 9B68 ldr r3, [r3, #8] 6573 00c6 FB60 str r3, [r7, #12] 6574 00c8 FB68 ldr r3, [r7, #12] 6575 .LBE15: 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Restore hspi->State to Ready */ 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 6576 .loc 1 3536 16 6577 00ca 7B69 ldr r3, [r7, #20] 6578 00cc 0122 movs r2, #1 6579 00ce 83F85D20 strb r2, [r3, #93] 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Abort complete callback */ 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->AbortCpltCallback(hspi); 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_AbortCpltCallback(hspi); 6580 .loc 1 3542 3 6581 00d2 7869 ldr r0, [r7, #20] 6582 00d4 FFF7FEFF bl HAL_SPI_AbortCpltCallback 6583 00d8 00E0 b .L320 6584 .L326: 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6585 .loc 1 3516 7 6586 00da 00BF nop 6587 .L320: 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6588 .loc 1 3544 1 6589 00dc 1837 adds r7, r7, #24 6590 .cfi_def_cfa_offset 8 6591 00de BD46 mov sp, r7 6592 .cfi_def_cfa_register 13 6593 @ sp needed ARM GAS /tmp/ccs34gJO.s page 178 6594 00e0 80BD pop {r7, pc} 6595 .cfi_endproc 6596 .LFE168: 6598 .section .text.SPI_2linesRxISR_8BIT,"ax",%progbits 6599 .align 1 6600 .syntax unified 6601 .thumb 6602 .thumb_func 6604 SPI_2linesRxISR_8BIT: 6605 .LFB169: 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6606 .loc 1 3553 1 6607 .cfi_startproc 6608 @ args = 0, pretend = 0, frame = 8 6609 @ frame_needed = 1, uses_anonymous_args = 0 6610 0000 80B5 push {r7, lr} 6611 .cfi_def_cfa_offset 8 6612 .cfi_offset 7, -8 6613 .cfi_offset 14, -4 6614 0002 82B0 sub sp, sp, #8 6615 .cfi_def_cfa_offset 16 6616 0004 00AF add r7, sp, #0 6617 .cfi_def_cfa_register 7 6618 0006 7860 str r0, [r7, #4] 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in packing mode */ 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount > 1U) 6619 .loc 1 3555 11 6620 0008 7B68 ldr r3, [r7, #4] 6621 000a B3F84630 ldrh r3, [r3, #70] @ movhi 6622 000e 9BB2 uxth r3, r3 6623 .loc 1 3555 6 6624 0010 012B cmp r3, #1 6625 0012 23D9 bls .L328 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 6626 .loc 1 3557 54 6627 0014 7B68 ldr r3, [r7, #4] 6628 0016 1B68 ldr r3, [r3] 6629 .loc 1 3557 64 6630 0018 DA68 ldr r2, [r3, #12] 6631 .loc 1 3557 23 6632 001a 7B68 ldr r3, [r7, #4] 6633 001c 1B6C ldr r3, [r3, #64] 6634 .loc 1 3557 39 6635 001e 92B2 uxth r2, r2 6636 .loc 1 3557 37 6637 0020 1A80 strh r2, [r3] @ movhi 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6638 .loc 1 3558 9 ARM GAS /tmp/ccs34gJO.s page 179 6639 0022 7B68 ldr r3, [r7, #4] 6640 0024 1B6C ldr r3, [r3, #64] 6641 .loc 1 3558 22 6642 0026 9A1C adds r2, r3, #2 6643 0028 7B68 ldr r3, [r7, #4] 6644 002a 1A64 str r2, [r3, #64] 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount -= 2U; 6645 .loc 1 3559 9 6646 002c 7B68 ldr r3, [r7, #4] 6647 002e B3F84630 ldrh r3, [r3, #70] @ movhi 6648 0032 9BB2 uxth r3, r3 6649 .loc 1 3559 23 6650 0034 023B subs r3, r3, #2 6651 0036 9AB2 uxth r2, r3 6652 0038 7B68 ldr r3, [r7, #4] 6653 003a A3F84620 strh r2, [r3, #70] @ movhi 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 1U) 6654 .loc 1 3560 13 6655 003e 7B68 ldr r3, [r7, #4] 6656 0040 B3F84630 ldrh r3, [r3, #70] @ movhi 6657 0044 9BB2 uxth r3, r3 6658 .loc 1 3560 8 6659 0046 012B cmp r3, #1 6660 0048 1FD1 bne .L329 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set RX Fifo threshold according the reception data length: 8bit */ 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 6661 .loc 1 3563 7 6662 004a 7B68 ldr r3, [r7, #4] 6663 004c 1B68 ldr r3, [r3] 6664 004e 5A68 ldr r2, [r3, #4] 6665 0050 7B68 ldr r3, [r7, #4] 6666 0052 1B68 ldr r3, [r3] 6667 0054 42F48052 orr r2, r2, #4096 6668 0058 5A60 str r2, [r3, #4] 6669 005a 16E0 b .L329 6670 .L328: 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 8 Bit mode */ 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = *((__IO uint8_t *)&hspi->Instance->DR); 6671 .loc 1 3569 48 6672 005c 7B68 ldr r3, [r7, #4] 6673 005e 1B68 ldr r3, [r3] 6674 .loc 1 3569 43 6675 0060 03F10C02 add r2, r3, #12 6676 .loc 1 3569 10 6677 0064 7B68 ldr r3, [r7, #4] 6678 0066 1B6C ldr r3, [r3, #64] 6679 .loc 1 3569 25 6680 0068 1278 ldrb r2, [r2] 6681 006a D2B2 uxtb r2, r2 6682 .loc 1 3569 23 6683 006c 1A70 strb r2, [r3] 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; ARM GAS /tmp/ccs34gJO.s page 180 6684 .loc 1 3570 9 6685 006e 7B68 ldr r3, [r7, #4] 6686 0070 1B6C ldr r3, [r3, #64] 6687 .loc 1 3570 21 6688 0072 5A1C adds r2, r3, #1 6689 0074 7B68 ldr r3, [r7, #4] 6690 0076 1A64 str r2, [r3, #64] 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6691 .loc 1 3571 9 6692 0078 7B68 ldr r3, [r7, #4] 6693 007a B3F84630 ldrh r3, [r3, #70] @ movhi 6694 007e 9BB2 uxth r3, r3 6695 .loc 1 3571 22 6696 0080 013B subs r3, r3, #1 6697 0082 9AB2 uxth r2, r3 6698 0084 7B68 ldr r3, [r7, #4] 6699 0086 A3F84620 strh r2, [r3, #70] @ movhi 6700 .L329: 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 6701 .loc 1 3575 11 6702 008a 7B68 ldr r3, [r7, #4] 6703 008c B3F84630 ldrh r3, [r3, #70] @ movhi 6704 0090 9BB2 uxth r3, r3 6705 .loc 1 3575 6 6706 0092 002B cmp r3, #0 6707 0094 0FD1 bne .L331 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR2, SPI_RXFIFO_THRESHOLD); 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_8BITCRC; 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 6708 .loc 1 3587 5 6709 0096 7B68 ldr r3, [r7, #4] 6710 0098 1B68 ldr r3, [r3] 6711 009a 5A68 ldr r2, [r3, #4] 6712 009c 7B68 ldr r3, [r7, #4] 6713 009e 1B68 ldr r3, [r3] 6714 00a0 22F06002 bic r2, r2, #96 6715 00a4 5A60 str r2, [r3, #4] 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 6716 .loc 1 3589 13 6717 00a6 7B68 ldr r3, [r7, #4] 6718 00a8 DB8F ldrh r3, [r3, #62] @ movhi 6719 00aa 9BB2 uxth r3, r3 6720 .loc 1 3589 8 6721 00ac 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 181 6722 00ae 02D1 bne .L331 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 6723 .loc 1 3591 7 6724 00b0 7868 ldr r0, [r7, #4] 6725 00b2 FFF7FEFF bl SPI_CloseRxTx_ISR 6726 .L331: 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6727 .loc 1 3594 1 6728 00b6 00BF nop 6729 00b8 0837 adds r7, r7, #8 6730 .cfi_def_cfa_offset 8 6731 00ba BD46 mov sp, r7 6732 .cfi_def_cfa_register 13 6733 @ sp needed 6734 00bc 80BD pop {r7, pc} 6735 .cfi_endproc 6736 .LFE169: 6738 .section .text.SPI_2linesTxISR_8BIT,"ax",%progbits 6739 .align 1 6740 .syntax unified 6741 .thumb 6742 .thumb_func 6744 SPI_2linesTxISR_8BIT: 6745 .LFB170: 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 8-bit handler for Transmit and Receive in Interrupt mode. 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check end of the reception */ 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 182 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 8-bit handler for Transmit and Receive in Interrupt mode. 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6746 .loc 1 3638 1 6747 .cfi_startproc 6748 @ args = 0, pretend = 0, frame = 8 6749 @ frame_needed = 1, uses_anonymous_args = 0 6750 0000 80B5 push {r7, lr} 6751 .cfi_def_cfa_offset 8 6752 .cfi_offset 7, -8 6753 .cfi_offset 14, -4 6754 0002 82B0 sub sp, sp, #8 6755 .cfi_def_cfa_offset 16 6756 0004 00AF add r7, sp, #0 6757 .cfi_def_cfa_register 7 6758 0006 7860 str r0, [r7, #4] 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in packing Bit mode */ 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount >= 2U) 6759 .loc 1 3640 11 6760 0008 7B68 ldr r3, [r7, #4] 6761 000a DB8F ldrh r3, [r3, #62] @ movhi 6762 000c 9BB2 uxth r3, r3 6763 .loc 1 3640 6 6764 000e 012B cmp r3, #1 6765 0010 12D9 bls .L333 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 6766 .loc 1 3642 44 6767 0012 7B68 ldr r3, [r7, #4] 6768 0014 9B6B ldr r3, [r3, #56] 6769 .loc 1 3642 26 6770 0016 1A88 ldrh r2, [r3] 6771 .loc 1 3642 9 6772 0018 7B68 ldr r3, [r7, #4] 6773 001a 1B68 ldr r3, [r3] 6774 .loc 1 3642 24 6775 001c DA60 str r2, [r3, #12] 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6776 .loc 1 3643 9 6777 001e 7B68 ldr r3, [r7, #4] 6778 0020 9B6B ldr r3, [r3, #56] 6779 .loc 1 3643 22 6780 0022 9A1C adds r2, r3, #2 6781 0024 7B68 ldr r3, [r7, #4] 6782 0026 9A63 str r2, [r3, #56] 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount -= 2U; ARM GAS /tmp/ccs34gJO.s page 183 6783 .loc 1 3644 9 6784 0028 7B68 ldr r3, [r7, #4] 6785 002a DB8F ldrh r3, [r3, #62] @ movhi 6786 002c 9BB2 uxth r3, r3 6787 .loc 1 3644 23 6788 002e 023B subs r3, r3, #2 6789 0030 9AB2 uxth r2, r3 6790 0032 7B68 ldr r3, [r7, #4] 6791 0034 DA87 strh r2, [r3, #62] @ movhi 6792 0036 12E0 b .L334 6793 .L333: 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 8 Bit mode */ 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 6794 .loc 1 3649 50 6795 0038 7B68 ldr r3, [r7, #4] 6796 003a 9A6B ldr r2, [r3, #56] 6797 .loc 1 3649 27 6798 003c 7B68 ldr r3, [r7, #4] 6799 003e 1B68 ldr r3, [r3] 6800 .loc 1 3649 22 6801 0040 0C33 adds r3, r3, #12 6802 .loc 1 3649 45 6803 0042 1278 ldrb r2, [r2] @ zero_extendqisi2 6804 .loc 1 3649 42 6805 0044 1A70 strb r2, [r3] 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 6806 .loc 1 3650 9 6807 0046 7B68 ldr r3, [r7, #4] 6808 0048 9B6B ldr r3, [r3, #56] 6809 .loc 1 3650 21 6810 004a 5A1C adds r2, r3, #1 6811 004c 7B68 ldr r3, [r7, #4] 6812 004e 9A63 str r2, [r3, #56] 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6813 .loc 1 3651 9 6814 0050 7B68 ldr r3, [r7, #4] 6815 0052 DB8F ldrh r3, [r3, #62] @ movhi 6816 0054 9BB2 uxth r3, r3 6817 .loc 1 3651 22 6818 0056 013B subs r3, r3, #1 6819 0058 9AB2 uxth r2, r3 6820 005a 7B68 ldr r3, [r7, #4] 6821 005c DA87 strh r2, [r3, #62] @ movhi 6822 .L334: 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transmission */ 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 6823 .loc 1 3655 11 6824 005e 7B68 ldr r3, [r7, #4] 6825 0060 DB8F ldrh r3, [r3, #62] @ movhi 6826 0062 9BB2 uxth r3, r3 6827 .loc 1 3655 6 6828 0064 002B cmp r3, #0 ARM GAS /tmp/ccs34gJO.s page 184 6829 0066 10D1 bne .L336 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 6830 .loc 1 3669 5 6831 0068 7B68 ldr r3, [r7, #4] 6832 006a 1B68 ldr r3, [r3] 6833 006c 5A68 ldr r2, [r3, #4] 6834 006e 7B68 ldr r3, [r7, #4] 6835 0070 1B68 ldr r3, [r3] 6836 0072 22F08002 bic r2, r2, #128 6837 0076 5A60 str r2, [r3, #4] 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 6838 .loc 1 3671 13 6839 0078 7B68 ldr r3, [r7, #4] 6840 007a B3F84630 ldrh r3, [r3, #70] @ movhi 6841 007e 9BB2 uxth r3, r3 6842 .loc 1 3671 8 6843 0080 002B cmp r3, #0 6844 0082 02D1 bne .L336 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 6845 .loc 1 3673 7 6846 0084 7868 ldr r0, [r7, #4] 6847 0086 FFF7FEFF bl SPI_CloseRxTx_ISR 6848 .L336: 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 6849 .loc 1 3676 1 6850 008a 00BF nop 6851 008c 0837 adds r7, r7, #8 6852 .cfi_def_cfa_offset 8 6853 008e BD46 mov sp, r7 6854 .cfi_def_cfa_register 13 6855 @ sp needed 6856 0090 80BD pop {r7, pc} 6857 .cfi_endproc 6858 .LFE170: 6860 .section .text.SPI_2linesRxISR_16BIT,"ax",%progbits 6861 .align 1 6862 .syntax unified 6863 .thumb 6864 .thumb_func 6866 SPI_2linesRxISR_16BIT: ARM GAS /tmp/ccs34gJO.s page 185 6867 .LFB171: 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Rx 16-bit handler for Transmit and Receive in Interrupt mode. 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6868 .loc 1 3685 1 6869 .cfi_startproc 6870 @ args = 0, pretend = 0, frame = 8 6871 @ frame_needed = 1, uses_anonymous_args = 0 6872 0000 80B5 push {r7, lr} 6873 .cfi_def_cfa_offset 8 6874 .cfi_offset 7, -8 6875 .cfi_offset 14, -4 6876 0002 82B0 sub sp, sp, #8 6877 .cfi_def_cfa_offset 16 6878 0004 00AF add r7, sp, #0 6879 .cfi_def_cfa_register 7 6880 0006 7860 str r0, [r7, #4] 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Receive data in 16 Bit mode */ 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 6881 .loc 1 3687 52 6882 0008 7B68 ldr r3, [r7, #4] 6883 000a 1B68 ldr r3, [r3] 6884 .loc 1 3687 62 6885 000c DA68 ldr r2, [r3, #12] 6886 .loc 1 3687 21 6887 000e 7B68 ldr r3, [r7, #4] 6888 0010 1B6C ldr r3, [r3, #64] 6889 .loc 1 3687 37 6890 0012 92B2 uxth r2, r2 6891 .loc 1 3687 35 6892 0014 1A80 strh r2, [r3] @ movhi 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 6893 .loc 1 3688 7 6894 0016 7B68 ldr r3, [r7, #4] 6895 0018 1B6C ldr r3, [r3, #64] 6896 .loc 1 3688 20 6897 001a 9A1C adds r2, r3, #2 6898 001c 7B68 ldr r3, [r7, #4] 6899 001e 1A64 str r2, [r3, #64] 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 6900 .loc 1 3689 7 6901 0020 7B68 ldr r3, [r7, #4] 6902 0022 B3F84630 ldrh r3, [r3, #70] @ movhi 6903 0026 9BB2 uxth r3, r3 6904 .loc 1 3689 20 6905 0028 013B subs r3, r3, #1 6906 002a 9AB2 uxth r2, r3 6907 002c 7B68 ldr r3, [r7, #4] 6908 002e A3F84620 strh r2, [r3, #70] @ movhi 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) ARM GAS /tmp/ccs34gJO.s page 186 6909 .loc 1 3691 11 6910 0032 7B68 ldr r3, [r7, #4] 6911 0034 B3F84630 ldrh r3, [r3, #70] @ movhi 6912 0038 9BB2 uxth r3, r3 6913 .loc 1 3691 6 6914 003a 002B cmp r3, #0 6915 003c 0FD1 bne .L339 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_2linesRxISR_16BITCRC; 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 6916 .loc 1 3702 5 6917 003e 7B68 ldr r3, [r7, #4] 6918 0040 1B68 ldr r3, [r3] 6919 0042 5A68 ldr r2, [r3, #4] 6920 0044 7B68 ldr r3, [r7, #4] 6921 0046 1B68 ldr r3, [r3] 6922 0048 22F04002 bic r2, r2, #64 6923 004c 5A60 str r2, [r3, #4] 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 6924 .loc 1 3704 13 6925 004e 7B68 ldr r3, [r7, #4] 6926 0050 DB8F ldrh r3, [r3, #62] @ movhi 6927 0052 9BB2 uxth r3, r3 6928 .loc 1 3704 8 6929 0054 002B cmp r3, #0 6930 0056 02D1 bne .L339 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 6931 .loc 1 3706 7 6932 0058 7868 ldr r0, [r7, #4] 6933 005a FFF7FEFF bl SPI_CloseRxTx_ISR 6934 .L339: 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 **** } 6935 .loc 1 3709 1 6936 005e 00BF nop 6937 0060 0837 adds r7, r7, #8 6938 .cfi_def_cfa_offset 8 6939 0062 BD46 mov sp, r7 6940 .cfi_def_cfa_register 13 6941 @ sp needed 6942 0064 80BD pop {r7, pc} 6943 .cfi_endproc 6944 .LFE171: 6946 .section .text.SPI_2linesTxISR_16BIT,"ax",%progbits 6947 .align 1 6948 .syntax unified ARM GAS /tmp/ccs34gJO.s page 187 6949 .thumb 6950 .thumb_func 6952 SPI_2linesTxISR_16BIT: 6953 .LFB172: 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive for Transmit and Receive in Interrupt mode. 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesRxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE interrupt */ 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_RXNE); 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Tx 16-bit handler for Transmit and Receive in Interrupt mode. 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_2linesTxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 6954 .loc 1 3741 1 6955 .cfi_startproc 6956 @ args = 0, pretend = 0, frame = 8 6957 @ frame_needed = 1, uses_anonymous_args = 0 6958 0000 80B5 push {r7, lr} 6959 .cfi_def_cfa_offset 8 6960 .cfi_offset 7, -8 6961 .cfi_offset 14, -4 6962 0002 82B0 sub sp, sp, #8 6963 .cfi_def_cfa_offset 16 6964 0004 00AF add r7, sp, #0 6965 .cfi_def_cfa_register 7 6966 0006 7860 str r0, [r7, #4] 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 6967 .loc 1 3743 42 6968 0008 7B68 ldr r3, [r7, #4] 6969 000a 9B6B ldr r3, [r3, #56] 6970 .loc 1 3743 24 6971 000c 1A88 ldrh r2, [r3] 6972 .loc 1 3743 7 ARM GAS /tmp/ccs34gJO.s page 188 6973 000e 7B68 ldr r3, [r7, #4] 6974 0010 1B68 ldr r3, [r3] 6975 .loc 1 3743 22 6976 0012 DA60 str r2, [r3, #12] 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 6977 .loc 1 3744 7 6978 0014 7B68 ldr r3, [r7, #4] 6979 0016 9B6B ldr r3, [r3, #56] 6980 .loc 1 3744 20 6981 0018 9A1C adds r2, r3, #2 6982 001a 7B68 ldr r3, [r7, #4] 6983 001c 9A63 str r2, [r3, #56] 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 6984 .loc 1 3745 7 6985 001e 7B68 ldr r3, [r7, #4] 6986 0020 DB8F ldrh r3, [r3, #62] @ movhi 6987 0022 9BB2 uxth r3, r3 6988 .loc 1 3745 20 6989 0024 013B subs r3, r3, #1 6990 0026 9AB2 uxth r2, r3 6991 0028 7B68 ldr r3, [r7, #4] 6992 002a DA87 strh r2, [r3, #62] @ movhi 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 6993 .loc 1 3748 11 6994 002c 7B68 ldr r3, [r7, #4] 6995 002e DB8F ldrh r3, [r3, #62] @ movhi 6996 0030 9BB2 uxth r3, r3 6997 .loc 1 3748 6 6998 0032 002B cmp r3, #0 6999 0034 10D1 bne .L342 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Set CRC Next Bit to send CRC */ 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE interrupt */ 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_TXE); 7000 .loc 1 3762 5 7001 0036 7B68 ldr r3, [r7, #4] 7002 0038 1B68 ldr r3, [r3] 7003 003a 5A68 ldr r2, [r3, #4] 7004 003c 7B68 ldr r3, [r7, #4] 7005 003e 1B68 ldr r3, [r3] 7006 0040 22F08002 bic r2, r2, #128 7007 0044 5A60 str r2, [r3, #4] 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 7008 .loc 1 3764 13 ARM GAS /tmp/ccs34gJO.s page 189 7009 0046 7B68 ldr r3, [r7, #4] 7010 0048 B3F84630 ldrh r3, [r3, #70] @ movhi 7011 004c 9BB2 uxth r3, r3 7012 .loc 1 3764 8 7013 004e 002B cmp r3, #0 7014 0050 02D1 bne .L342 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRxTx_ISR(hspi); 7015 .loc 1 3766 7 7016 0052 7868 ldr r0, [r7, #4] 7017 0054 FFF7FEFF bl SPI_CloseRxTx_ISR 7018 .L342: 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7019 .loc 1 3769 1 7020 0058 00BF nop 7021 005a 0837 adds r7, r7, #8 7022 .cfi_def_cfa_offset 8 7023 005c BD46 mov sp, r7 7024 .cfi_def_cfa_register 13 7025 @ sp needed 7026 005e 80BD pop {r7, pc} 7027 .cfi_endproc 7028 .LFE172: 7030 .section .text.SPI_RxISR_8BIT,"ax",%progbits 7031 .align 1 7032 .syntax unified 7033 .thumb 7034 .thumb_func 7036 SPI_RxISR_8BIT: 7037 .LFB173: 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 8-bit receive in Interrupt context. 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BITCRC(struct __SPI_HandleTypeDef *hspi) 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 8bit CRC to flush Data Register */ 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->CRCSize--; 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->CRCSize == 0U) 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); ARM GAS /tmp/ccs34gJO.s page 190 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the receive 8-bit in Interrupt context. 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7038 .loc 1 3806 1 7039 .cfi_startproc 7040 @ args = 0, pretend = 0, frame = 8 7041 @ frame_needed = 1, uses_anonymous_args = 0 7042 0000 80B5 push {r7, lr} 7043 .cfi_def_cfa_offset 8 7044 .cfi_offset 7, -8 7045 .cfi_offset 14, -4 7046 0002 82B0 sub sp, sp, #8 7047 .cfi_def_cfa_offset 16 7048 0004 00AF add r7, sp, #0 7049 .cfi_def_cfa_register 7 7050 0006 7860 str r0, [r7, #4] 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *hspi->pRxBuffPtr = (*(__IO uint8_t *)&hspi->Instance->DR); 7051 .loc 1 3807 46 7052 0008 7B68 ldr r3, [r7, #4] 7053 000a 1B68 ldr r3, [r3] 7054 .loc 1 3807 41 7055 000c 03F10C02 add r2, r3, #12 7056 .loc 1 3807 8 7057 0010 7B68 ldr r3, [r7, #4] 7058 0012 1B6C ldr r3, [r3, #64] 7059 .loc 1 3807 24 7060 0014 1278 ldrb r2, [r2] 7061 0016 D2B2 uxtb r2, r2 7062 .loc 1 3807 21 7063 0018 1A70 strb r2, [r3] 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr++; 7064 .loc 1 3808 7 7065 001a 7B68 ldr r3, [r7, #4] 7066 001c 1B6C ldr r3, [r3, #64] 7067 .loc 1 3808 19 7068 001e 5A1C adds r2, r3, #1 7069 0020 7B68 ldr r3, [r7, #4] 7070 0022 1A64 str r2, [r3, #64] 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 7071 .loc 1 3809 7 7072 0024 7B68 ldr r3, [r7, #4] 7073 0026 B3F84630 ldrh r3, [r3, #70] @ movhi 7074 002a 9BB2 uxth r3, r3 7075 .loc 1 3809 20 7076 002c 013B subs r3, r3, #1 7077 002e 9AB2 uxth r2, r3 7078 0030 7B68 ldr r3, [r7, #4] 7079 0032 A3F84620 strh r2, [r3, #70] @ movhi ARM GAS /tmp/ccs34gJO.s page 191 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 7080 .loc 1 3819 11 7081 0036 7B68 ldr r3, [r7, #4] 7082 0038 B3F84630 ldrh r3, [r3, #70] @ movhi 7083 003c 9BB2 uxth r3, r3 7084 .loc 1 3819 6 7085 003e 002B cmp r3, #0 7086 0040 02D1 bne .L345 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_8BITCRC; 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 7087 .loc 1 3828 5 7088 0042 7868 ldr r0, [r7, #4] 7089 0044 FFF7FEFF bl SPI_CloseRx_ISR 7090 .L345: 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7091 .loc 1 3830 1 7092 0048 00BF nop 7093 004a 0837 adds r7, r7, #8 7094 .cfi_def_cfa_offset 8 7095 004c BD46 mov sp, r7 7096 .cfi_def_cfa_register 13 7097 @ sp needed 7098 004e 80BD pop {r7, pc} 7099 .cfi_endproc 7100 .LFE173: 7102 .section .text.SPI_RxISR_16BIT,"ax",%progbits 7103 .align 1 7104 .syntax unified 7105 .thumb 7106 .thumb_func 7108 SPI_RxISR_16BIT: 7109 .LFB174: 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the CRC 16-bit receive in Interrupt context. 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ ARM GAS /tmp/ccs34gJO.s page 192 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BITCRC(struct __SPI_HandleTypeDef *hspi) 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t tmpreg = 0U; 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Read 16bit CRC to flush Data Register */ 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg = READ_REG(hspi->Instance->DR); 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg); 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Manage the 16-bit receive in Interrupt context. 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_RxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7110 .loc 1 3862 1 7111 .cfi_startproc 7112 @ args = 0, pretend = 0, frame = 8 7113 @ frame_needed = 1, uses_anonymous_args = 0 7114 0000 80B5 push {r7, lr} 7115 .cfi_def_cfa_offset 8 7116 .cfi_offset 7, -8 7117 .cfi_offset 14, -4 7118 0002 82B0 sub sp, sp, #8 7119 .cfi_def_cfa_offset 16 7120 0004 00AF add r7, sp, #0 7121 .cfi_def_cfa_register 7 7122 0006 7860 str r0, [r7, #4] 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *((uint16_t *)hspi->pRxBuffPtr) = (uint16_t)(hspi->Instance->DR); 7123 .loc 1 3863 52 7124 0008 7B68 ldr r3, [r7, #4] 7125 000a 1B68 ldr r3, [r3] 7126 .loc 1 3863 62 7127 000c DA68 ldr r2, [r3, #12] 7128 .loc 1 3863 21 7129 000e 7B68 ldr r3, [r7, #4] 7130 0010 1B6C ldr r3, [r3, #64] 7131 .loc 1 3863 37 7132 0012 92B2 uxth r2, r2 7133 .loc 1 3863 35 7134 0014 1A80 strh r2, [r3] @ movhi 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pRxBuffPtr += sizeof(uint16_t); 7135 .loc 1 3864 7 7136 0016 7B68 ldr r3, [r7, #4] 7137 0018 1B6C ldr r3, [r3, #64] 7138 .loc 1 3864 20 7139 001a 9A1C adds r2, r3, #2 7140 001c 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 193 7141 001e 1A64 str r2, [r3, #64] 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxXferCount--; 7142 .loc 1 3865 7 7143 0020 7B68 ldr r3, [r7, #4] 7144 0022 B3F84630 ldrh r3, [r3, #70] @ movhi 7145 0026 9BB2 uxth r3, r3 7146 .loc 1 3865 20 7147 0028 013B subs r3, r3, #1 7148 002a 9AB2 uxth r2, r3 7149 002c 7B68 ldr r3, [r7, #4] 7150 002e A3F84620 strh r2, [r3, #70] @ movhi 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->RxXferCount == 1U) && (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE)) 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->RxXferCount == 0U) 7151 .loc 1 3875 11 7152 0032 7B68 ldr r3, [r7, #4] 7153 0034 B3F84630 ldrh r3, [r3, #70] @ movhi 7154 0038 9BB2 uxth r3, r3 7155 .loc 1 3875 6 7156 003a 002B cmp r3, #0 7157 003c 02D1 bne .L348 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxISR = SPI_RxISR_16BITCRC; 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return; 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseRx_ISR(hspi); 7158 .loc 1 3884 5 7159 003e 7868 ldr r0, [r7, #4] 7160 0040 FFF7FEFF bl SPI_CloseRx_ISR 7161 .L348: 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7162 .loc 1 3886 1 7163 0044 00BF nop 7164 0046 0837 adds r7, r7, #8 7165 .cfi_def_cfa_offset 8 7166 0048 BD46 mov sp, r7 7167 .cfi_def_cfa_register 13 7168 @ sp needed 7169 004a 80BD pop {r7, pc} 7170 .cfi_endproc 7171 .LFE174: 7173 .section .text.SPI_TxISR_8BIT,"ax",%progbits 7174 .align 1 7175 .syntax unified 7176 .thumb ARM GAS /tmp/ccs34gJO.s page 194 7177 .thumb_func 7179 SPI_TxISR_8BIT: 7180 .LFB175: 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 8-bit transmit in Interrupt mode. 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_8BIT(struct __SPI_HandleTypeDef *hspi) 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7181 .loc 1 3895 1 7182 .cfi_startproc 7183 @ args = 0, pretend = 0, frame = 8 7184 @ frame_needed = 1, uses_anonymous_args = 0 7185 0000 80B5 push {r7, lr} 7186 .cfi_def_cfa_offset 8 7187 .cfi_offset 7, -8 7188 .cfi_offset 14, -4 7189 0002 82B0 sub sp, sp, #8 7190 .cfi_def_cfa_offset 16 7191 0004 00AF add r7, sp, #0 7192 .cfi_def_cfa_register 7 7193 0006 7860 str r0, [r7, #4] 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** *(__IO uint8_t *)&hspi->Instance->DR = (*hspi->pTxBuffPtr); 7194 .loc 1 3896 48 7195 0008 7B68 ldr r3, [r7, #4] 7196 000a 9A6B ldr r2, [r3, #56] 7197 .loc 1 3896 25 7198 000c 7B68 ldr r3, [r7, #4] 7199 000e 1B68 ldr r3, [r3] 7200 .loc 1 3896 20 7201 0010 0C33 adds r3, r3, #12 7202 .loc 1 3896 43 7203 0012 1278 ldrb r2, [r2] @ zero_extendqisi2 7204 .loc 1 3896 40 7205 0014 1A70 strb r2, [r3] 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr++; 7206 .loc 1 3897 7 7207 0016 7B68 ldr r3, [r7, #4] 7208 0018 9B6B ldr r3, [r3, #56] 7209 .loc 1 3897 19 7210 001a 5A1C adds r2, r3, #1 7211 001c 7B68 ldr r3, [r7, #4] 7212 001e 9A63 str r2, [r3, #56] 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 7213 .loc 1 3898 7 7214 0020 7B68 ldr r3, [r7, #4] 7215 0022 DB8F ldrh r3, [r3, #62] @ movhi 7216 0024 9BB2 uxth r3, r3 7217 .loc 1 3898 20 7218 0026 013B subs r3, r3, #1 7219 0028 9AB2 uxth r2, r3 7220 002a 7B68 ldr r3, [r7, #4] 7221 002c DA87 strh r2, [r3, #62] @ movhi 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ARM GAS /tmp/ccs34gJO.s page 195 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 7222 .loc 1 3900 11 7223 002e 7B68 ldr r3, [r7, #4] 7224 0030 DB8F ldrh r3, [r3, #62] @ movhi 7225 0032 9BB2 uxth r3, r3 7226 .loc 1 3900 6 7227 0034 002B cmp r3, #0 7228 0036 02D1 bne .L351 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 7229 .loc 1 3909 5 7230 0038 7868 ldr r0, [r7, #4] 7231 003a FFF7FEFF bl SPI_CloseTx_ISR 7232 .L351: 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7233 .loc 1 3911 1 7234 003e 00BF nop 7235 0040 0837 adds r7, r7, #8 7236 .cfi_def_cfa_offset 8 7237 0042 BD46 mov sp, r7 7238 .cfi_def_cfa_register 13 7239 @ sp needed 7240 0044 80BD pop {r7, pc} 7241 .cfi_endproc 7242 .LFE175: 7244 .section .text.SPI_TxISR_16BIT,"ax",%progbits 7245 .align 1 7246 .syntax unified 7247 .thumb 7248 .thumb_func 7250 SPI_TxISR_16BIT: 7251 .LFB176: 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the data 16-bit transmit in Interrupt mode. 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_TxISR_16BIT(struct __SPI_HandleTypeDef *hspi) 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7252 .loc 1 3920 1 7253 .cfi_startproc 7254 @ args = 0, pretend = 0, frame = 8 7255 @ frame_needed = 1, uses_anonymous_args = 0 7256 0000 80B5 push {r7, lr} 7257 .cfi_def_cfa_offset 8 7258 .cfi_offset 7, -8 7259 .cfi_offset 14, -4 ARM GAS /tmp/ccs34gJO.s page 196 7260 0002 82B0 sub sp, sp, #8 7261 .cfi_def_cfa_offset 16 7262 0004 00AF add r7, sp, #0 7263 .cfi_def_cfa_register 7 7264 0006 7860 str r0, [r7, #4] 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Transmit data in 16 Bit mode */ 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->Instance->DR = *((uint16_t *)hspi->pTxBuffPtr); 7265 .loc 1 3922 42 7266 0008 7B68 ldr r3, [r7, #4] 7267 000a 9B6B ldr r3, [r3, #56] 7268 .loc 1 3922 24 7269 000c 1A88 ldrh r2, [r3] 7270 .loc 1 3922 7 7271 000e 7B68 ldr r3, [r7, #4] 7272 0010 1B68 ldr r3, [r3] 7273 .loc 1 3922 22 7274 0012 DA60 str r2, [r3, #12] 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->pTxBuffPtr += sizeof(uint16_t); 7275 .loc 1 3923 7 7276 0014 7B68 ldr r3, [r7, #4] 7277 0016 9B6B ldr r3, [r3, #56] 7278 .loc 1 3923 20 7279 0018 9A1C adds r2, r3, #2 7280 001a 7B68 ldr r3, [r7, #4] 7281 001c 9A63 str r2, [r3, #56] 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxXferCount--; 7282 .loc 1 3924 7 7283 001e 7B68 ldr r3, [r7, #4] 7284 0020 DB8F ldrh r3, [r3, #62] @ movhi 7285 0022 9BB2 uxth r3, r3 7286 .loc 1 3924 20 7287 0024 013B subs r3, r3, #1 7288 0026 9AB2 uxth r2, r3 7289 0028 7B68 ldr r3, [r7, #4] 7290 002a DA87 strh r2, [r3, #62] @ movhi 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->TxXferCount == 0U) 7291 .loc 1 3926 11 7292 002c 7B68 ldr r3, [r7, #4] 7293 002e DB8F ldrh r3, [r3, #62] @ movhi 7294 0030 9BB2 uxth r3, r3 7295 .loc 1 3926 6 7296 0032 002B cmp r3, #0 7297 0034 02D1 bne .L354 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Enable CRC Transmission */ 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->Instance->CR1, SPI_CR1_CRCNEXT); 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_CloseTx_ISR(hspi); 7298 .loc 1 3935 5 7299 0036 7868 ldr r0, [r7, #4] 7300 0038 FFF7FEFF bl SPI_CloseTx_ISR 7301 .L354: ARM GAS /tmp/ccs34gJO.s page 197 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7302 .loc 1 3937 1 7303 003c 00BF nop 7304 003e 0837 adds r7, r7, #8 7305 .cfi_def_cfa_offset 8 7306 0040 BD46 mov sp, r7 7307 .cfi_def_cfa_register 13 7308 @ sp needed 7309 0042 80BD pop {r7, pc} 7310 .cfi_endproc 7311 .LFE176: 7313 .section .text.SPI_WaitFlagStateUntilTimeout,"ax",%progbits 7314 .align 1 7315 .syntax unified 7316 .thumb 7317 .thumb_func 7319 SPI_WaitFlagStateUntilTimeout: 7320 .LFB177: 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI Communication Timeout. 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Flag SPI flag to check 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State flag state to check 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFlagStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Flag, Flag 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7321 .loc 1 3951 1 7322 .cfi_startproc 7323 @ args = 4, pretend = 0, frame = 32 7324 @ frame_needed = 1, uses_anonymous_args = 0 7325 0000 80B5 push {r7, lr} 7326 .cfi_def_cfa_offset 8 7327 .cfi_offset 7, -8 7328 .cfi_offset 14, -4 7329 0002 88B0 sub sp, sp, #32 7330 .cfi_def_cfa_offset 40 7331 0004 00AF add r7, sp, #0 7332 .cfi_def_cfa_register 7 7333 0006 F860 str r0, [r7, #12] 7334 0008 B960 str r1, [r7, #8] 7335 000a 3B60 str r3, [r7] 7336 000c 1346 mov r3, r2 7337 000e FB71 strb r3, [r7, #7] 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 7338 .loc 1 3957 30 ARM GAS /tmp/ccs34gJO.s page 198 7339 0010 FFF7FEFF bl HAL_GetTick 7340 0014 0246 mov r2, r0 7341 .loc 1 3957 44 discriminator 1 7342 0016 BB6A ldr r3, [r7, #40] 7343 0018 9B1A subs r3, r3, r2 7344 .loc 1 3957 17 discriminator 1 7345 001a 3A68 ldr r2, [r7] 7346 001c 1344 add r3, r3, r2 7347 001e FB61 str r3, [r7, #28] 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 7348 .loc 1 3958 19 7349 0020 FFF7FEFF bl HAL_GetTick 7350 0024 B861 str r0, [r7, #24] 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 32U) >> 20U); 7351 .loc 1 3961 43 7352 0026 394B ldr r3, .L366 7353 0028 1B68 ldr r3, [r3] 7354 002a 5B01 lsls r3, r3, #5 7355 .loc 1 3961 50 7356 002c 1B0D lsrs r3, r3, #20 7357 .loc 1 3961 23 7358 002e FA69 ldr r2, [r7, #28] 7359 0030 02FB03F3 mul r3, r2, r3 7360 .loc 1 3961 9 7361 0034 7B61 str r3, [r7, #20] 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((__HAL_SPI_GET_FLAG(hspi, Flag) ? SET : RESET) != State) 7362 .loc 1 3963 9 7363 0036 54E0 b .L357 7364 .L365: 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 7365 .loc 1 3965 8 7366 0038 3B68 ldr r3, [r7] 7367 003a B3F1FF3F cmp r3, #-1 7368 003e 50D0 beq .L357 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 7369 .loc 1 3967 13 7370 0040 FFF7FEFF bl HAL_GetTick 7371 0044 0246 mov r2, r0 7372 .loc 1 3967 27 discriminator 1 7373 0046 BB69 ldr r3, [r7, #24] 7374 0048 D31A subs r3, r2, r3 7375 .loc 1 3967 10 discriminator 1 7376 004a FA69 ldr r2, [r7, #28] 7377 004c 9A42 cmp r2, r3 7378 004e 02D9 bls .L358 7379 .loc 1 3967 60 discriminator 1 7380 0050 FB69 ldr r3, [r7, #28] 7381 0052 002B cmp r3, #0 7382 0054 3DD1 bne .L359 7383 .L358: 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared ARM GAS /tmp/ccs34gJO.s page 199 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 7384 .loc 1 3974 9 7385 0056 FB68 ldr r3, [r7, #12] 7386 0058 1B68 ldr r3, [r3] 7387 005a 5A68 ldr r2, [r3, #4] 7388 005c FB68 ldr r3, [r7, #12] 7389 005e 1B68 ldr r3, [r3] 7390 0060 22F0E002 bic r2, r2, #224 7391 0064 5A60 str r2, [r3, #4] 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 7392 .loc 1 3976 24 7393 0066 FB68 ldr r3, [r7, #12] 7394 0068 5B68 ldr r3, [r3, #4] 7395 .loc 1 3976 12 7396 006a B3F5827F cmp r3, #260 7397 006e 11D1 bne .L360 7398 .loc 1 3976 65 discriminator 1 7399 0070 FB68 ldr r3, [r7, #12] 7400 0072 9B68 ldr r3, [r3, #8] 7401 .loc 1 3976 50 discriminator 1 7402 0074 B3F5004F cmp r3, #32768 7403 0078 04D0 beq .L361 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 7404 .loc 1 3977 68 7405 007a FB68 ldr r3, [r7, #12] 7406 007c 9B68 ldr r3, [r3, #8] 7407 .loc 1 3977 54 7408 007e B3F5806F cmp r3, #1024 7409 0082 07D1 bne .L360 7410 .L361: 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 7411 .loc 1 3980 11 7412 0084 FB68 ldr r3, [r7, #12] 7413 0086 1B68 ldr r3, [r3] 7414 0088 1A68 ldr r2, [r3] 7415 008a FB68 ldr r3, [r7, #12] 7416 008c 1B68 ldr r3, [r3] 7417 008e 22F04002 bic r2, r2, #64 7418 0092 1A60 str r2, [r3] 7419 .L360: 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 7420 .loc 1 3984 23 7421 0094 FB68 ldr r3, [r7, #12] 7422 0096 9B6A ldr r3, [r3, #40] 7423 .loc 1 3984 12 7424 0098 B3F5005F cmp r3, #8192 7425 009c 0FD1 bne .L362 ARM GAS /tmp/ccs34gJO.s page 200 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 7426 .loc 1 3986 11 7427 009e FB68 ldr r3, [r7, #12] 7428 00a0 1B68 ldr r3, [r3] 7429 00a2 1A68 ldr r2, [r3] 7430 00a4 FB68 ldr r3, [r7, #12] 7431 00a6 1B68 ldr r3, [r3] 7432 00a8 22F40052 bic r2, r2, #8192 7433 00ac 1A60 str r2, [r3] 7434 00ae FB68 ldr r3, [r7, #12] 7435 00b0 1B68 ldr r3, [r3] 7436 00b2 1A68 ldr r2, [r3] 7437 00b4 FB68 ldr r3, [r7, #12] 7438 00b6 1B68 ldr r3, [r3] 7439 00b8 42F40052 orr r2, r2, #8192 7440 00bc 1A60 str r2, [r3] 7441 .L362: 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 7442 .loc 1 3989 21 7443 00be FB68 ldr r3, [r7, #12] 7444 00c0 0122 movs r2, #1 7445 00c2 83F85D20 strb r2, [r3, #93] 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 7446 .loc 1 3992 9 7447 00c6 FB68 ldr r3, [r7, #12] 7448 00c8 0022 movs r2, #0 7449 00ca 83F85C20 strb r2, [r3, #92] 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7450 .loc 1 3994 16 7451 00ce 0323 movs r3, #3 7452 00d0 17E0 b .L363 7453 .L359: 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 7454 .loc 1 3997 17 7455 00d2 7B69 ldr r3, [r7, #20] 7456 .loc 1 3997 10 7457 00d4 002B cmp r3, #0 7458 00d6 01D1 bne .L364 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 7459 .loc 1 3999 21 7460 00d8 0023 movs r3, #0 7461 00da FB61 str r3, [r7, #28] 7462 .L364: 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 7463 .loc 1 4001 12 7464 00dc 7B69 ldr r3, [r7, #20] 7465 00de 013B subs r3, r3, #1 ARM GAS /tmp/ccs34gJO.s page 201 7466 00e0 7B61 str r3, [r7, #20] 7467 .L357: 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7468 .loc 1 3963 11 7469 00e2 FB68 ldr r3, [r7, #12] 7470 00e4 1B68 ldr r3, [r3] 7471 00e6 9A68 ldr r2, [r3, #8] 7472 00e8 BB68 ldr r3, [r7, #8] 7473 00ea 1340 ands r3, r3, r2 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7474 .loc 1 3963 48 7475 00ec BA68 ldr r2, [r7, #8] 7476 00ee 9A42 cmp r2, r3 7477 00f0 0CBF ite eq 7478 00f2 0123 moveq r3, #1 7479 00f4 0023 movne r3, #0 7480 00f6 DBB2 uxtb r3, r3 7481 00f8 1A46 mov r2, r3 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7482 .loc 1 3963 57 7483 00fa FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 7484 00fc 9A42 cmp r2, r3 7485 00fe 9BD1 bne .L365 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 7486 .loc 1 4005 10 7487 0100 0023 movs r3, #0 7488 .L363: 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7489 .loc 1 4006 1 7490 0102 1846 mov r0, r3 7491 0104 2037 adds r7, r7, #32 7492 .cfi_def_cfa_offset 8 7493 0106 BD46 mov sp, r7 7494 .cfi_def_cfa_register 13 7495 @ sp needed 7496 0108 80BD pop {r7, pc} 7497 .L367: 7498 010a 00BF .align 2 7499 .L366: 7500 010c 00000000 .word SystemCoreClock 7501 .cfi_endproc 7502 .LFE177: 7504 .section .text.SPI_WaitFifoStateUntilTimeout,"ax",%progbits 7505 .align 1 7506 .syntax unified 7507 .thumb 7508 .thumb_func 7510 SPI_WaitFifoStateUntilTimeout: 7511 .LFB178: 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle SPI FIFO Communication Timeout. 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. ARM GAS /tmp/ccs34gJO.s page 202 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Fifo Fifo to check 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param State Fifo state to check 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_WaitFifoStateUntilTimeout(SPI_HandleTypeDef *hspi, uint32_t Fifo, uint 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t Timeout, uint32_t Tickstart) 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7512 .loc 1 4020 1 7513 .cfi_startproc 7514 @ args = 4, pretend = 0, frame = 40 7515 @ frame_needed = 1, uses_anonymous_args = 0 7516 0000 80B5 push {r7, lr} 7517 .cfi_def_cfa_offset 8 7518 .cfi_offset 7, -8 7519 .cfi_offset 14, -4 7520 0002 8AB0 sub sp, sp, #40 7521 .cfi_def_cfa_offset 48 7522 0004 00AF add r7, sp, #0 7523 .cfi_def_cfa_register 7 7524 0006 F860 str r0, [r7, #12] 7525 0008 B960 str r1, [r7, #8] 7526 000a 7A60 str r2, [r7, #4] 7527 000c 3B60 str r3, [r7] 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_timeout; 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tmp_tickstart; 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t *ptmpreg8; 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint8_t tmpreg8 = 0; 7528 .loc 1 4025 17 7529 000e 0023 movs r3, #0 7530 0010 FB75 strb r3, [r7, #23] 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Adjust Timeout value in case of end of transfer */ 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = Timeout - (HAL_GetTick() - Tickstart); 7531 .loc 1 4028 28 7532 0012 FFF7FEFF bl HAL_GetTick 7533 0016 0246 mov r2, r0 7534 .loc 1 4028 42 discriminator 1 7535 0018 3B6B ldr r3, [r7, #48] 7536 001a 9B1A subs r3, r3, r2 7537 .loc 1 4028 15 discriminator 1 7538 001c 3A68 ldr r2, [r7] 7539 001e 1344 add r3, r3, r2 7540 0020 7B62 str r3, [r7, #36] 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_tickstart = HAL_GetTick(); 7541 .loc 1 4029 19 7542 0022 FFF7FEFF bl HAL_GetTick 7543 0026 3862 str r0, [r7, #32] 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Initialize the 8bit temporary pointer */ 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** ptmpreg8 = (__IO uint8_t *)&hspi->Instance->DR; 7544 .loc 1 4032 35 7545 0028 FB68 ldr r3, [r7, #12] 7546 002a 1B68 ldr r3, [r3] 7547 .loc 1 4032 12 ARM GAS /tmp/ccs34gJO.s page 203 7548 002c 0C33 adds r3, r3, #12 7549 002e FB61 str r3, [r7, #28] 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled */ 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = tmp_timeout * ((SystemCoreClock * 35U) >> 20U); 7550 .loc 1 4035 43 7551 0030 3D4B ldr r3, .L380 7552 0032 1A68 ldr r2, [r3] 7553 0034 1346 mov r3, r2 7554 0036 9B00 lsls r3, r3, #2 7555 0038 1344 add r3, r3, r2 7556 003a DA00 lsls r2, r3, #3 7557 003c D31A subs r3, r2, r3 7558 .loc 1 4035 50 7559 003e 1B0D lsrs r3, r3, #20 7560 .loc 1 4035 23 7561 0040 7A6A ldr r2, [r7, #36] 7562 0042 02FB03F3 mul r3, r2, r3 7563 .loc 1 4035 9 7564 0046 BB61 str r3, [r7, #24] 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** while ((hspi->Instance->SR & Fifo) != State) 7565 .loc 1 4037 9 7566 0048 60E0 b .L371 7567 .L379: 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((Fifo == SPI_SR_FRLVL) && (State == SPI_FRLVL_EMPTY)) 7568 .loc 1 4039 8 7569 004a BB68 ldr r3, [r7, #8] 7570 004c B3F5C06F cmp r3, #1536 7571 0050 07D1 bne .L370 7572 .loc 1 4039 32 discriminator 1 7573 0052 7B68 ldr r3, [r7, #4] 7574 0054 002B cmp r3, #0 7575 0056 04D1 bne .L370 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Flush Data Register by a blank read */ 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmpreg8 = *ptmpreg8; 7576 .loc 1 4042 17 7577 0058 FB69 ldr r3, [r7, #28] 7578 005a 1B78 ldrb r3, [r3] 7579 005c DBB2 uxtb r3, r3 7580 .loc 1 4042 15 7581 005e FB75 strb r3, [r7, #23] 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* To avoid GCC warning */ 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** UNUSED(tmpreg8); 7582 .loc 1 4044 7 7583 0060 FB7D ldrb r3, [r7, #23] 7584 .L370: 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (Timeout != HAL_MAX_DELAY) 7585 .loc 1 4047 8 7586 0062 3B68 ldr r3, [r7] 7587 0064 B3F1FF3F cmp r3, #-1 7588 0068 50D0 beq .L371 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { ARM GAS /tmp/ccs34gJO.s page 204 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (((HAL_GetTick() - tmp_tickstart) >= tmp_timeout) || (tmp_timeout == 0U)) 7589 .loc 1 4049 13 7590 006a FFF7FEFF bl HAL_GetTick 7591 006e 0246 mov r2, r0 7592 .loc 1 4049 27 discriminator 1 7593 0070 3B6A ldr r3, [r7, #32] 7594 0072 D31A subs r3, r2, r3 7595 .loc 1 4049 10 discriminator 1 7596 0074 7A6A ldr r2, [r7, #36] 7597 0076 9A42 cmp r2, r3 7598 0078 02D9 bls .L372 7599 .loc 1 4049 60 discriminator 1 7600 007a 7B6A ldr r3, [r7, #36] 7601 007c 002B cmp r3, #0 7602 007e 3DD1 bne .L373 7603 .L372: 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable the SPI and reset the CRC: the CRC value should be cleared 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** on both master and slave sides in order to resynchronize the master 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** and slave for their respective CRC calculation */ 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE, RXNE and ERR interrupts for the interrupt process */ 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_RXNE | SPI_IT_ERR)); 7604 .loc 1 4056 9 7605 0080 FB68 ldr r3, [r7, #12] 7606 0082 1B68 ldr r3, [r3] 7607 0084 5A68 ldr r2, [r3, #4] 7608 0086 FB68 ldr r3, [r7, #12] 7609 0088 1B68 ldr r3, [r3] 7610 008a 22F0E002 bic r2, r2, #224 7611 008e 5A60 str r2, [r3, #4] 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 7612 .loc 1 4058 24 7613 0090 FB68 ldr r3, [r7, #12] 7614 0092 5B68 ldr r3, [r3, #4] 7615 .loc 1 4058 12 7616 0094 B3F5827F cmp r3, #260 7617 0098 11D1 bne .L374 7618 .loc 1 4058 65 discriminator 1 7619 009a FB68 ldr r3, [r7, #12] 7620 009c 9B68 ldr r3, [r3, #8] 7621 .loc 1 4058 50 discriminator 1 7622 009e B3F5004F cmp r3, #32768 7623 00a2 04D0 beq .L375 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LIN 7624 .loc 1 4059 68 7625 00a4 FB68 ldr r3, [r7, #12] 7626 00a6 9B68 ldr r3, [r3, #8] 7627 .loc 1 4059 54 7628 00a8 B3F5806F cmp r3, #1024 7629 00ac 07D1 bne .L374 7630 .L375: 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 7631 .loc 1 4062 11 ARM GAS /tmp/ccs34gJO.s page 205 7632 00ae FB68 ldr r3, [r7, #12] 7633 00b0 1B68 ldr r3, [r3] 7634 00b2 1A68 ldr r2, [r3] 7635 00b4 FB68 ldr r3, [r7, #12] 7636 00b6 1B68 ldr r3, [r3] 7637 00b8 22F04002 bic r2, r2, #64 7638 00bc 1A60 str r2, [r3] 7639 .L374: 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Reset CRC Calculation */ 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.CRCCalculation == SPI_CRCCALCULATION_ENABLE) 7640 .loc 1 4066 23 7641 00be FB68 ldr r3, [r7, #12] 7642 00c0 9B6A ldr r3, [r3, #40] 7643 .loc 1 4066 12 7644 00c2 B3F5005F cmp r3, #8192 7645 00c6 0FD1 bne .L376 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SPI_RESET_CRC(hspi); 7646 .loc 1 4068 11 7647 00c8 FB68 ldr r3, [r7, #12] 7648 00ca 1B68 ldr r3, [r3] 7649 00cc 1A68 ldr r2, [r3] 7650 00ce FB68 ldr r3, [r7, #12] 7651 00d0 1B68 ldr r3, [r3] 7652 00d2 22F40052 bic r2, r2, #8192 7653 00d6 1A60 str r2, [r3] 7654 00d8 FB68 ldr r3, [r7, #12] 7655 00da 1B68 ldr r3, [r3] 7656 00dc 1A68 ldr r2, [r3] 7657 00de FB68 ldr r3, [r7, #12] 7658 00e0 1B68 ldr r3, [r3] 7659 00e2 42F40052 orr r2, r2, #8192 7660 00e6 1A60 str r2, [r3] 7661 .L376: 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 7662 .loc 1 4071 21 7663 00e8 FB68 ldr r3, [r7, #12] 7664 00ea 0122 movs r2, #1 7665 00ec 83F85D20 strb r2, [r3, #93] 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Process Unlocked */ 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_UNLOCK(hspi); 7666 .loc 1 4074 9 7667 00f0 FB68 ldr r3, [r7, #12] 7668 00f2 0022 movs r2, #0 7669 00f4 83F85C20 strb r2, [r3, #92] 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7670 .loc 1 4076 16 7671 00f8 0323 movs r3, #3 7672 00fa 10E0 b .L377 7673 .L373: 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccs34gJO.s page 206 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* If Systick is disabled or not incremented, deactivate timeout to go in disable loop proced 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 7674 .loc 1 4079 17 7675 00fc BB69 ldr r3, [r7, #24] 7676 .loc 1 4079 10 7677 00fe 002B cmp r3, #0 7678 0100 01D1 bne .L378 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tmp_timeout = 0U; 7679 .loc 1 4081 21 7680 0102 0023 movs r3, #0 7681 0104 7B62 str r3, [r7, #36] 7682 .L378: 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 7683 .loc 1 4083 12 7684 0106 BB69 ldr r3, [r7, #24] 7685 0108 013B subs r3, r3, #1 7686 010a BB61 str r3, [r7, #24] 7687 .L371: 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7688 .loc 1 4037 15 7689 010c FB68 ldr r3, [r7, #12] 7690 010e 1B68 ldr r3, [r3] 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7691 .loc 1 4037 25 7692 0110 9A68 ldr r2, [r3, #8] 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7693 .loc 1 4037 30 7694 0112 BB68 ldr r3, [r7, #8] 7695 0114 1340 ands r3, r3, r2 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7696 .loc 1 4037 38 7697 0116 7A68 ldr r2, [r7, #4] 7698 0118 9A42 cmp r2, r3 7699 011a 96D1 bne .L379 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 7700 .loc 1 4087 10 7701 011c 0023 movs r3, #0 7702 .L377: 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7703 .loc 1 4088 1 7704 011e 1846 mov r0, r3 7705 0120 2837 adds r7, r7, #40 7706 .cfi_def_cfa_offset 8 7707 0122 BD46 mov sp, r7 7708 .cfi_def_cfa_register 13 7709 @ sp needed 7710 0124 80BD pop {r7, pc} 7711 .L381: 7712 0126 00BF .align 2 7713 .L380: 7714 0128 00000000 .word SystemCoreClock 7715 .cfi_endproc ARM GAS /tmp/ccs34gJO.s page 207 7716 .LFE178: 7718 .section .text.SPI_EndRxTransaction,"ax",%progbits 7719 .align 1 7720 .syntax unified 7721 .thumb 7722 .thumb_func 7724 SPI_EndRxTransaction: 7725 .LFB179: 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RX transaction complete. 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7726 .loc 1 4099 1 7727 .cfi_startproc 7728 @ args = 0, pretend = 0, frame = 16 7729 @ frame_needed = 1, uses_anonymous_args = 0 7730 0000 80B5 push {r7, lr} 7731 .cfi_def_cfa_offset 8 7732 .cfi_offset 7, -8 7733 .cfi_offset 14, -4 7734 0002 86B0 sub sp, sp, #24 7735 .cfi_def_cfa_offset 32 7736 0004 02AF add r7, sp, #8 7737 .cfi_def_cfa 7, 24 7738 0006 F860 str r0, [r7, #12] 7739 0008 B960 str r1, [r7, #8] 7740 000a 7A60 str r2, [r7, #4] 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 7741 .loc 1 4100 18 7742 000c FB68 ldr r3, [r7, #12] 7743 000e 5B68 ldr r3, [r3, #4] 7744 .loc 1 4100 6 7745 0010 B3F5827F cmp r3, #260 7746 0014 11D1 bne .L383 7747 .loc 1 4100 59 discriminator 1 7748 0016 FB68 ldr r3, [r7, #12] 7749 0018 9B68 ldr r3, [r3, #8] 7750 .loc 1 4100 44 discriminator 1 7751 001a B3F5004F cmp r3, #32768 7752 001e 04D0 beq .L384 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 7753 .loc 1 4101 62 7754 0020 FB68 ldr r3, [r7, #12] 7755 0022 9B68 ldr r3, [r3, #8] 7756 .loc 1 4101 48 7757 0024 B3F5806F cmp r3, #1024 7758 0028 07D1 bne .L383 7759 .L384: 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI peripheral */ ARM GAS /tmp/ccs34gJO.s page 208 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 7760 .loc 1 4104 5 7761 002a FB68 ldr r3, [r7, #12] 7762 002c 1B68 ldr r3, [r3] 7763 002e 1A68 ldr r2, [r3] 7764 0030 FB68 ldr r3, [r7, #12] 7765 0032 1B68 ldr r3, [r3] 7766 0034 22F04002 bic r2, r2, #64 7767 0038 1A60 str r2, [r3] 7768 .L383: 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 7769 .loc 1 4108 7 7770 003a 7B68 ldr r3, [r7, #4] 7771 003c 0093 str r3, [sp] 7772 003e BB68 ldr r3, [r7, #8] 7773 0040 0022 movs r2, #0 7774 0042 8021 movs r1, #128 7775 0044 F868 ldr r0, [r7, #12] 7776 0046 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 7777 004a 0346 mov r3, r0 7778 .loc 1 4108 6 discriminator 1 7779 004c 002B cmp r3, #0 7780 004e 07D0 beq .L385 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7781 .loc 1 4110 5 7782 0050 FB68 ldr r3, [r7, #12] 7783 0052 1B6E ldr r3, [r3, #96] 7784 0054 43F02002 orr r2, r3, #32 7785 0058 FB68 ldr r3, [r7, #12] 7786 005a 1A66 str r2, [r3, #96] 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7787 .loc 1 4111 12 7788 005c 0323 movs r3, #3 7789 005e 23E0 b .L386 7790 .L385: 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if ((hspi->Init.Mode == SPI_MODE_MASTER) && ((hspi->Init.Direction == SPI_DIRECTION_1LINE) 7791 .loc 1 4114 18 7792 0060 FB68 ldr r3, [r7, #12] 7793 0062 5B68 ldr r3, [r3, #4] 7794 .loc 1 4114 6 7795 0064 B3F5827F cmp r3, #260 7796 0068 1DD1 bne .L387 7797 .loc 1 4114 59 discriminator 1 7798 006a FB68 ldr r3, [r7, #12] 7799 006c 9B68 ldr r3, [r3, #8] 7800 .loc 1 4114 44 discriminator 1 7801 006e B3F5004F cmp r3, #32768 7802 0072 04D0 beq .L388 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** || (hspi->Init.Direction == SPI_DIRECTION_2LINES_RXO 7803 .loc 1 4115 62 7804 0074 FB68 ldr r3, [r7, #12] ARM GAS /tmp/ccs34gJO.s page 209 7805 0076 9B68 ldr r3, [r3, #8] 7806 .loc 1 4115 48 7807 0078 B3F5806F cmp r3, #1024 7808 007c 13D1 bne .L387 7809 .L388: 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != 7810 .loc 1 4118 9 7811 007e 7B68 ldr r3, [r7, #4] 7812 0080 0093 str r3, [sp] 7813 0082 BB68 ldr r3, [r7, #8] 7814 0084 0022 movs r2, #0 7815 0086 4FF4C061 mov r1, #1536 7816 008a F868 ldr r0, [r7, #12] 7817 008c FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7818 0090 0346 mov r3, r0 7819 .loc 1 4118 8 discriminator 1 7820 0092 002B cmp r3, #0 7821 0094 07D0 beq .L387 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7822 .loc 1 4120 7 7823 0096 FB68 ldr r3, [r7, #12] 7824 0098 1B6E ldr r3, [r3, #96] 7825 009a 43F02002 orr r2, r3, #32 7826 009e FB68 ldr r3, [r7, #12] 7827 00a0 1A66 str r2, [r3, #96] 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7828 .loc 1 4121 14 7829 00a2 0323 movs r3, #3 7830 00a4 00E0 b .L386 7831 .L387: 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 7832 .loc 1 4124 10 7833 00a6 0023 movs r3, #0 7834 .L386: 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7835 .loc 1 4125 1 7836 00a8 1846 mov r0, r3 7837 00aa 1037 adds r7, r7, #16 7838 .cfi_def_cfa_offset 8 7839 00ac BD46 mov sp, r7 7840 .cfi_def_cfa_register 13 7841 @ sp needed 7842 00ae 80BD pop {r7, pc} 7843 .cfi_endproc 7844 .LFE179: 7846 .section .text.SPI_EndRxTxTransaction,"ax",%progbits 7847 .align 1 7848 .syntax unified 7849 .thumb 7850 .thumb_func 7852 SPI_EndRxTxTransaction: 7853 .LFB180: ARM GAS /tmp/ccs34gJO.s page 210 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the check of the RXTX or TX transaction complete. 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi SPI handle 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Timeout Timeout duration 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param Tickstart tick start value 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval HAL status 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static HAL_StatusTypeDef SPI_EndRxTxTransaction(SPI_HandleTypeDef *hspi, uint32_t Timeout, uint32_t 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7854 .loc 1 4135 1 7855 .cfi_startproc 7856 @ args = 0, pretend = 0, frame = 16 7857 @ frame_needed = 1, uses_anonymous_args = 0 7858 0000 80B5 push {r7, lr} 7859 .cfi_def_cfa_offset 8 7860 .cfi_offset 7, -8 7861 .cfi_offset 14, -4 7862 0002 86B0 sub sp, sp, #24 7863 .cfi_def_cfa_offset 32 7864 0004 02AF add r7, sp, #8 7865 .cfi_def_cfa 7, 24 7866 0006 F860 str r0, [r7, #12] 7867 0008 B960 str r1, [r7, #8] 7868 000a 7A60 str r2, [r7, #4] 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the TX fifo is empty */ 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FTLVL, SPI_FTLVL_EMPTY, Timeout, Tickstart) != H 7869 .loc 1 4137 7 7870 000c 7B68 ldr r3, [r7, #4] 7871 000e 0093 str r3, [sp] 7872 0010 BB68 ldr r3, [r7, #8] 7873 0012 0022 movs r2, #0 7874 0014 4FF4C051 mov r1, #6144 7875 0018 F868 ldr r0, [r7, #12] 7876 001a FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7877 001e 0346 mov r3, r0 7878 .loc 1 4137 6 discriminator 1 7879 0020 002B cmp r3, #0 7880 0022 07D0 beq .L390 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7881 .loc 1 4139 5 7882 0024 FB68 ldr r3, [r7, #12] 7883 0026 1B6E ldr r3, [r3, #96] 7884 0028 43F02002 orr r2, r3, #32 7885 002c FB68 ldr r3, [r7, #12] 7886 002e 1A66 str r2, [r3, #96] 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7887 .loc 1 4140 12 7888 0030 0323 movs r3, #3 7889 0032 27E0 b .L391 7890 .L390: 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, Timeout, Tickstart) != HAL_OK) 7891 .loc 1 4144 7 ARM GAS /tmp/ccs34gJO.s page 211 7892 0034 7B68 ldr r3, [r7, #4] 7893 0036 0093 str r3, [sp] 7894 0038 BB68 ldr r3, [r7, #8] 7895 003a 0022 movs r2, #0 7896 003c 8021 movs r1, #128 7897 003e F868 ldr r0, [r7, #12] 7898 0040 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 7899 0044 0346 mov r3, r0 7900 .loc 1 4144 6 discriminator 1 7901 0046 002B cmp r3, #0 7902 0048 07D0 beq .L392 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7903 .loc 1 4146 5 7904 004a FB68 ldr r3, [r7, #12] 7905 004c 1B6E ldr r3, [r3, #96] 7906 004e 43F02002 orr r2, r3, #32 7907 0052 FB68 ldr r3, [r7, #12] 7908 0054 1A66 str r2, [r3, #96] 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7909 .loc 1 4147 12 7910 0056 0323 movs r3, #3 7911 0058 14E0 b .L391 7912 .L392: 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control if the RX fifo is empty */ 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, Timeout, Tickstart) != H 7913 .loc 1 4151 7 7914 005a 7B68 ldr r3, [r7, #4] 7915 005c 0093 str r3, [sp] 7916 005e BB68 ldr r3, [r7, #8] 7917 0060 0022 movs r2, #0 7918 0062 4FF4C061 mov r1, #1536 7919 0066 F868 ldr r0, [r7, #12] 7920 0068 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 7921 006c 0346 mov r3, r0 7922 .loc 1 4151 6 discriminator 1 7923 006e 002B cmp r3, #0 7924 0070 07D0 beq .L393 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7925 .loc 1 4153 5 7926 0072 FB68 ldr r3, [r7, #12] 7927 0074 1B6E ldr r3, [r3, #96] 7928 0076 43F02002 orr r2, r3, #32 7929 007a FB68 ldr r3, [r7, #12] 7930 007c 1A66 str r2, [r3, #96] 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_TIMEOUT; 7931 .loc 1 4154 12 7932 007e 0323 movs r3, #3 7933 0080 00E0 b .L391 7934 .L393: 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** return HAL_OK; 7935 .loc 1 4157 10 ARM GAS /tmp/ccs34gJO.s page 212 7936 0082 0023 movs r3, #0 7937 .L391: 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 7938 .loc 1 4158 1 7939 0084 1846 mov r0, r3 7940 0086 1037 adds r7, r7, #16 7941 .cfi_def_cfa_offset 8 7942 0088 BD46 mov sp, r7 7943 .cfi_def_cfa_register 13 7944 @ sp needed 7945 008a 80BD pop {r7, pc} 7946 .cfi_endproc 7947 .LFE180: 7949 .section .text.SPI_CloseRxTx_ISR,"ax",%progbits 7950 .align 1 7951 .syntax unified 7952 .thumb 7953 .thumb_func 7955 SPI_CloseRxTx_ISR: 7956 .LFB181: 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RXTX transaction. 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRxTx_ISR(SPI_HandleTypeDef *hspi) 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 7957 .loc 1 4167 1 7958 .cfi_startproc 7959 @ args = 0, pretend = 0, frame = 16 7960 @ frame_needed = 1, uses_anonymous_args = 0 7961 0000 80B5 push {r7, lr} 7962 .cfi_def_cfa_offset 8 7963 .cfi_offset 7, -8 7964 .cfi_offset 14, -4 7965 0002 84B0 sub sp, sp, #16 7966 .cfi_def_cfa_offset 24 7967 0004 00AF add r7, sp, #0 7968 .cfi_def_cfa_register 7 7969 0006 7860 str r0, [r7, #4] 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management */ 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 7970 .loc 1 4171 15 7971 0008 FFF7FEFF bl HAL_GetTick 7972 000c F860 str r0, [r7, #12] 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable ERR interrupt */ 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, SPI_IT_ERR); 7973 .loc 1 4174 3 7974 000e 7B68 ldr r3, [r7, #4] 7975 0010 1B68 ldr r3, [r3] 7976 0012 5A68 ldr r2, [r3, #4] 7977 0014 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 213 7978 0016 1B68 ldr r3, [r3] 7979 0018 22F02002 bic r2, r2, #32 7980 001c 5A60 str r2, [r3, #4] 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 7981 .loc 1 4177 7 7982 001e FA68 ldr r2, [r7, #12] 7983 0020 6421 movs r1, #100 7984 0022 7868 ldr r0, [r7, #4] 7985 0024 FFF7FEFF bl SPI_EndRxTxTransaction 7986 0028 0346 mov r3, r0 7987 .loc 1 4177 6 discriminator 1 7988 002a 002B cmp r3, #0 7989 002c 05D0 beq .L395 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 7990 .loc 1 4179 5 7991 002e 7B68 ldr r3, [r7, #4] 7992 0030 1B6E ldr r3, [r3, #96] 7993 0032 43F02002 orr r2, r3, #32 7994 0036 7B68 ldr r3, [r7, #4] 7995 0038 1A66 str r2, [r3, #96] 7996 .L395: 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 7997 .loc 1 4199 13 7998 003a 7B68 ldr r3, [r7, #4] 7999 003c 1B6E ldr r3, [r3, #96] 8000 .loc 1 4199 8 8001 003e 002B cmp r3, #0 8002 0040 15D1 bne .L396 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->State == HAL_SPI_STATE_BUSY_RX) 8003 .loc 1 4201 15 8004 0042 7B68 ldr r3, [r7, #4] 8005 0044 93F85D30 ldrb r3, [r3, #93] 8006 0048 DBB2 uxtb r3, r3 8007 .loc 1 4201 10 ARM GAS /tmp/ccs34gJO.s page 214 8008 004a 042B cmp r3, #4 8009 004c 07D1 bne .L397 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 8010 .loc 1 4203 21 8011 004e 7B68 ldr r3, [r7, #4] 8012 0050 0122 movs r2, #1 8013 0052 83F85D20 strb r2, [r3, #93] 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 8014 .loc 1 4208 9 8015 0056 7868 ldr r0, [r7, #4] 8016 0058 FFF7FEFF bl HAL_SPI_RxCpltCallback 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxRxCpltCallback(hspi); 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxRxCpltCallback(hspi); 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 8017 .loc 1 4235 1 8018 005c 0EE0 b .L399 8019 .L397: 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user TxRx complete callback */ 8020 .loc 1 4213 21 8021 005e 7B68 ldr r3, [r7, #4] 8022 0060 0122 movs r2, #1 8023 0062 83F85D20 strb r2, [r3, #93] 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 8024 .loc 1 4218 9 8025 0066 7868 ldr r0, [r7, #4] 8026 0068 FFF7FEFF bl HAL_SPI_TxRxCpltCallback 8027 .loc 1 4235 1 8028 006c 06E0 b .L399 ARM GAS /tmp/ccs34gJO.s page 215 8029 .L396: 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 8030 .loc 1 4224 19 8031 006e 7B68 ldr r3, [r7, #4] 8032 0070 0122 movs r2, #1 8033 0072 83F85D20 strb r2, [r3, #93] 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 8034 .loc 1 4229 7 8035 0076 7868 ldr r0, [r7, #4] 8036 0078 FFF7FEFF bl HAL_SPI_ErrorCallback 8037 .L399: 8038 .loc 1 4235 1 8039 007c 00BF nop 8040 007e 1037 adds r7, r7, #16 8041 .cfi_def_cfa_offset 8 8042 0080 BD46 mov sp, r7 8043 .cfi_def_cfa_register 13 8044 @ sp needed 8045 0082 80BD pop {r7, pc} 8046 .cfi_endproc 8047 .LFE181: 8049 .section .text.SPI_CloseRx_ISR,"ax",%progbits 8050 .align 1 8051 .syntax unified 8052 .thumb 8053 .thumb_func 8055 SPI_CloseRx_ISR: 8056 .LFB182: 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the RX transaction. 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseRx_ISR(SPI_HandleTypeDef *hspi) 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 8057 .loc 1 4244 1 8058 .cfi_startproc 8059 @ args = 0, pretend = 0, frame = 8 8060 @ frame_needed = 1, uses_anonymous_args = 0 8061 0000 80B5 push {r7, lr} 8062 .cfi_def_cfa_offset 8 8063 .cfi_offset 7, -8 8064 .cfi_offset 14, -4 8065 0002 82B0 sub sp, sp, #8 8066 .cfi_def_cfa_offset 16 8067 0004 00AF add r7, sp, #0 8068 .cfi_def_cfa_register 7 8069 0006 7860 str r0, [r7, #4] 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNE and ERR interrupt */ 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_RXNE | SPI_IT_ERR)); 8070 .loc 1 4246 3 8071 0008 7B68 ldr r3, [r7, #4] 8072 000a 1B68 ldr r3, [r3] 8073 000c 5A68 ldr r2, [r3, #4] 8074 000e 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 216 8075 0010 1B68 ldr r3, [r3] 8076 0012 22F06002 bic r2, r2, #96 8077 0016 5A60 str r2, [r3, #4] 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 8078 .loc 1 4249 7 8079 0018 FFF7FEFF bl HAL_GetTick 8080 001c 0346 mov r3, r0 8081 .loc 1 4249 7 is_stmt 0 discriminator 1 8082 001e 1A46 mov r2, r3 8083 0020 6421 movs r1, #100 8084 0022 7868 ldr r0, [r7, #4] 8085 0024 FFF7FEFF bl SPI_EndRxTransaction 8086 0028 0346 mov r3, r0 8087 .loc 1 4249 6 is_stmt 1 discriminator 2 8088 002a 002B cmp r3, #0 8089 002c 05D0 beq .L401 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 8090 .loc 1 4251 5 8091 002e 7B68 ldr r3, [r7, #4] 8092 0030 1B6E ldr r3, [r3, #96] 8093 0032 43F02002 orr r2, r3, #32 8094 0036 7B68 ldr r3, [r7, #4] 8095 0038 1A66 str r2, [r3, #96] 8096 .L401: 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 8097 .loc 1 4253 15 8098 003a 7B68 ldr r3, [r7, #4] 8099 003c 0122 movs r2, #1 8100 003e 83F85D20 strb r2, [r3, #93] 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check if CRC error occurred */ 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_CRCERR) != RESET) 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_CRC); 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_CRCERRFLAG(hspi); 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode == HAL_SPI_ERROR_NONE) 8101 .loc 1 4271 13 8102 0042 7B68 ldr r3, [r7, #4] 8103 0044 1B6E ldr r3, [r3, #96] 8104 .loc 1 4271 8 8105 0046 002B cmp r3, #0 8106 0048 03D1 bne .L402 ARM GAS /tmp/ccs34gJO.s page 217 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->RxCpltCallback(hspi); 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_RxCpltCallback(hspi); 8107 .loc 1 4277 7 8108 004a 7868 ldr r0, [r7, #4] 8109 004c FFF7FEFF bl HAL_SPI_RxCpltCallback 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_SPI_CRC != 0U) 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_SPI_CRC */ 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 8110 .loc 1 4292 1 8111 0050 02E0 b .L404 8112 .L402: 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 8113 .loc 1 4286 7 8114 0052 7868 ldr r0, [r7, #4] 8115 0054 FFF7FEFF bl HAL_SPI_ErrorCallback 8116 .L404: 8117 .loc 1 4292 1 8118 0058 00BF nop 8119 005a 0837 adds r7, r7, #8 8120 .cfi_def_cfa_offset 8 8121 005c BD46 mov sp, r7 8122 .cfi_def_cfa_register 13 8123 @ sp needed 8124 005e 80BD pop {r7, pc} 8125 .cfi_endproc 8126 .LFE182: 8128 .section .text.SPI_CloseTx_ISR,"ax",%progbits 8129 .align 1 8130 .syntax unified 8131 .thumb 8132 .thumb_func 8134 SPI_CloseTx_ISR: 8135 .LFB183: 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle the end of the TX transaction. 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_CloseTx_ISR(SPI_HandleTypeDef *hspi) ARM GAS /tmp/ccs34gJO.s page 218 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 8136 .loc 1 4301 1 8137 .cfi_startproc 8138 @ args = 0, pretend = 0, frame = 16 8139 @ frame_needed = 1, uses_anonymous_args = 0 8140 0000 80B5 push {r7, lr} 8141 .cfi_def_cfa_offset 8 8142 .cfi_offset 7, -8 8143 .cfi_offset 14, -4 8144 0002 84B0 sub sp, sp, #16 8145 .cfi_def_cfa_offset 24 8146 0004 00AF add r7, sp, #0 8147 .cfi_def_cfa_register 7 8148 0006 7860 str r0, [r7, #4] 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** uint32_t tickstart; 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Init tickstart for timeout management*/ 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** tickstart = HAL_GetTick(); 8149 .loc 1 4305 15 8150 0008 FFF7FEFF bl HAL_GetTick 8151 000c F860 str r0, [r7, #12] 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXE and ERR interrupt */ 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE_IT(hspi, (SPI_IT_TXE | SPI_IT_ERR)); 8152 .loc 1 4308 3 8153 000e 7B68 ldr r3, [r7, #4] 8154 0010 1B68 ldr r3, [r3] 8155 0012 5A68 ldr r2, [r3, #4] 8156 0014 7B68 ldr r3, [r7, #4] 8157 0016 1B68 ldr r3, [r3] 8158 0018 22F0A002 bic r2, r2, #160 8159 001c 5A60 str r2, [r3, #4] 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check the end of the transaction */ 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, tickstart) != HAL_OK) 8160 .loc 1 4311 7 8161 001e FA68 ldr r2, [r7, #12] 8162 0020 6421 movs r1, #100 8163 0022 7868 ldr r0, [r7, #4] 8164 0024 FFF7FEFF bl SPI_EndRxTxTransaction 8165 0028 0346 mov r3, r0 8166 .loc 1 4311 6 discriminator 1 8167 002a 002B cmp r3, #0 8168 002c 05D0 beq .L406 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG); 8169 .loc 1 4313 5 8170 002e 7B68 ldr r3, [r7, #4] 8171 0030 1B6E ldr r3, [r3, #96] 8172 0032 43F02002 orr r2, r3, #32 8173 0036 7B68 ldr r3, [r7, #4] 8174 0038 1A66 str r2, [r3, #96] 8175 .L406: 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Clear overrun flag in 2 Lines communication mode because received is not read */ 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->Init.Direction == SPI_DIRECTION_2LINES) ARM GAS /tmp/ccs34gJO.s page 219 8176 .loc 1 4317 17 8177 003a 7B68 ldr r3, [r7, #4] 8178 003c 9B68 ldr r3, [r3, #8] 8179 .loc 1 4317 6 8180 003e 002B cmp r3, #0 8181 0040 0AD1 bne .L407 8182 .LBB16: 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_CLEAR_OVRFLAG(hspi); 8183 .loc 1 4319 5 8184 0042 0023 movs r3, #0 8185 0044 BB60 str r3, [r7, #8] 8186 0046 7B68 ldr r3, [r7, #4] 8187 0048 1B68 ldr r3, [r3] 8188 004a DB68 ldr r3, [r3, #12] 8189 004c BB60 str r3, [r7, #8] 8190 004e 7B68 ldr r3, [r7, #4] 8191 0050 1B68 ldr r3, [r3] 8192 0052 9B68 ldr r3, [r3, #8] 8193 0054 BB60 str r3, [r7, #8] 8194 0056 BB68 ldr r3, [r7, #8] 8195 .L407: 8196 .LBE16: 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_READY; 8197 .loc 1 4322 15 8198 0058 7B68 ldr r3, [r7, #4] 8199 005a 0122 movs r2, #1 8200 005c 83F85D20 strb r2, [r3, #93] 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (hspi->ErrorCode != HAL_SPI_ERROR_NONE) 8201 .loc 1 4323 11 8202 0060 7B68 ldr r3, [r7, #4] 8203 0062 1B6E ldr r3, [r3, #96] 8204 .loc 1 4323 6 8205 0064 002B cmp r3, #0 8206 0066 03D0 beq .L408 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user error callback */ 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCallback(hspi); 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_ErrorCallback(hspi); 8207 .loc 1 4329 5 8208 0068 7868 ldr r0, [r7, #4] 8209 006a FFF7FEFF bl HAL_SPI_ErrorCallback 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** else 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Call user Rx complete callback */ 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U) 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->TxCpltCallback(hspi); 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #else 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** HAL_SPI_TxCpltCallback(hspi); 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } ARM GAS /tmp/ccs34gJO.s page 220 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 8210 .loc 1 4341 1 8211 006e 02E0 b .L410 8212 .L408: 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** #endif /* USE_HAL_SPI_REGISTER_CALLBACKS */ 8213 .loc 1 4338 5 8214 0070 7868 ldr r0, [r7, #4] 8215 0072 FFF7FEFF bl HAL_SPI_TxCpltCallback 8216 .L410: 8217 .loc 1 4341 1 8218 0076 00BF nop 8219 0078 1037 adds r7, r7, #16 8220 .cfi_def_cfa_offset 8 8221 007a BD46 mov sp, r7 8222 .cfi_def_cfa_register 13 8223 @ sp needed 8224 007c 80BD pop {r7, pc} 8225 .cfi_endproc 8226 .LFE183: 8228 .section .text.SPI_AbortRx_ISR,"ax",%progbits 8229 .align 1 8230 .syntax unified 8231 .thumb 8232 .thumb_func 8234 SPI_AbortRx_ISR: 8235 .LFB184: 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Rx transaction. 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortRx_ISR(SPI_HandleTypeDef *hspi) 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 8236 .loc 1 4350 1 8237 .cfi_startproc 8238 @ args = 0, pretend = 0, frame = 16 8239 @ frame_needed = 1, uses_anonymous_args = 0 8240 0000 80B5 push {r7, lr} 8241 .cfi_def_cfa_offset 8 8242 .cfi_offset 7, -8 8243 .cfi_offset 14, -4 8244 0002 86B0 sub sp, sp, #24 8245 .cfi_def_cfa_offset 32 8246 0004 02AF add r7, sp, #8 8247 .cfi_def_cfa 7, 24 8248 0006 7860 str r0, [r7, #4] 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 8249 .loc 1 4354 3 8250 0008 7B68 ldr r3, [r7, #4] 8251 000a 1B68 ldr r3, [r3] 8252 000c 1A68 ldr r2, [r3] 8253 000e 7B68 ldr r3, [r7, #4] ARM GAS /tmp/ccs34gJO.s page 221 8254 0010 1B68 ldr r3, [r3] 8255 0012 22F04002 bic r2, r2, #64 8256 0016 1A60 str r2, [r3] 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 8257 .loc 1 4356 56 8258 0018 274B ldr r3, .L417 8259 001a 1B68 ldr r3, [r3] 8260 001c 274A ldr r2, .L417+4 8261 001e A2FB0323 umull r2, r3, r2, r3 8262 0022 5B0A lsrs r3, r3, #9 8263 .loc 1 4356 31 8264 0024 6422 movs r2, #100 8265 0026 02FB03F3 mul r3, r2, r3 8266 .loc 1 4356 9 8267 002a FB60 str r3, [r7, #12] 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 8268 .loc 1 4359 3 8269 002c 7B68 ldr r3, [r7, #4] 8270 002e 1B68 ldr r3, [r3] 8271 0030 5A68 ldr r2, [r3, #4] 8272 0032 7B68 ldr r3, [r7, #4] 8273 0034 1B68 ldr r3, [r3] 8274 0036 22F04002 bic r2, r2, #64 8275 003a 5A60 str r2, [r3, #4] 8276 .L414: 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 8277 .loc 1 4364 15 8278 003c FB68 ldr r3, [r7, #12] 8279 .loc 1 4364 8 8280 003e 002B cmp r3, #0 8281 0040 06D1 bne .L412 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 8282 .loc 1 4366 7 8283 0042 7B68 ldr r3, [r7, #4] 8284 0044 1B6E ldr r3, [r3, #96] 8285 0046 43F04002 orr r2, r3, #64 8286 004a 7B68 ldr r3, [r7, #4] 8287 004c 1A66 str r2, [r3, #96] 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 8288 .loc 1 4367 7 8289 004e 09E0 b .L413 8290 .L412: 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 8291 .loc 1 4369 10 8292 0050 FB68 ldr r3, [r7, #12] 8293 0052 013B subs r3, r3, #1 8294 0054 FB60 str r3, [r7, #12] 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); ARM GAS /tmp/ccs34gJO.s page 222 8295 .loc 1 4370 12 8296 0056 7B68 ldr r3, [r7, #4] 8297 0058 1B68 ldr r3, [r3] 8298 005a 5B68 ldr r3, [r3, #4] 8299 005c 03F04003 and r3, r3, #64 8300 0060 402B cmp r3, #64 8301 0062 EBD0 beq .L414 8302 .L413: 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) 8303 .loc 1 4373 7 8304 0064 FFF7FEFF bl HAL_GetTick 8305 0068 0346 mov r3, r0 8306 .loc 1 4373 7 is_stmt 0 discriminator 1 8307 006a 0093 str r3, [sp] 8308 006c 6423 movs r3, #100 8309 006e 0022 movs r2, #0 8310 0070 8021 movs r1, #128 8311 0072 7868 ldr r0, [r7, #4] 8312 0074 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 8313 0078 0346 mov r3, r0 8314 .loc 1 4373 6 is_stmt 1 discriminator 2 8315 007a 002B cmp r3, #0 8316 007c 02D0 beq .L415 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8317 .loc 1 4375 21 8318 007e 7B68 ldr r3, [r7, #4] 8319 0080 4022 movs r2, #64 8320 0082 1A66 str r2, [r3, #96] 8321 .L415: 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 8322 .loc 1 4379 7 8323 0084 FFF7FEFF bl HAL_GetTick 8324 0088 0346 mov r3, r0 8325 .loc 1 4379 7 is_stmt 0 discriminator 1 8326 008a 0093 str r3, [sp] 8327 008c 6423 movs r3, #100 8328 008e 0022 movs r2, #0 8329 0090 4FF4C061 mov r1, #1536 8330 0094 7868 ldr r0, [r7, #4] 8331 0096 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 8332 009a 0346 mov r3, r0 8333 .loc 1 4379 6 is_stmt 1 discriminator 2 8334 009c 002B cmp r3, #0 8335 009e 02D0 beq .L416 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8336 .loc 1 4381 21 8337 00a0 7B68 ldr r3, [r7, #4] 8338 00a2 4022 movs r2, #64 8339 00a4 1A66 str r2, [r3, #96] 8340 .L416: ARM GAS /tmp/ccs34gJO.s page 223 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; 8341 .loc 1 4384 15 8342 00a6 7B68 ldr r3, [r7, #4] 8343 00a8 0722 movs r2, #7 8344 00aa 83F85D20 strb r2, [r3, #93] 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 8345 .loc 1 4385 1 8346 00ae 00BF nop 8347 00b0 1037 adds r7, r7, #16 8348 .cfi_def_cfa_offset 8 8349 00b2 BD46 mov sp, r7 8350 .cfi_def_cfa_register 13 8351 @ sp needed 8352 00b4 80BD pop {r7, pc} 8353 .L418: 8354 00b6 00BF .align 2 8355 .L417: 8356 00b8 00000000 .word SystemCoreClock 8357 00bc F1197605 .word 91625969 8358 .cfi_endproc 8359 .LFE184: 8361 .section .text.SPI_AbortTx_ISR,"ax",%progbits 8362 .align 1 8363 .syntax unified 8364 .thumb 8365 .thumb_func 8367 SPI_AbortTx_ISR: 8368 .LFB185: 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /** 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @brief Handle abort a Tx or Rx/Tx transaction. 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @param hspi pointer to a SPI_HandleTypeDef structure that contains 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * the configuration information for SPI module. 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** * @retval None 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** */ 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** static void SPI_AbortTx_ISR(SPI_HandleTypeDef *hspi) 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 8369 .loc 1 4394 1 8370 .cfi_startproc 8371 @ args = 0, pretend = 0, frame = 16 8372 @ frame_needed = 1, uses_anonymous_args = 0 8373 0000 80B5 push {r7, lr} 8374 .cfi_def_cfa_offset 8 8375 .cfi_offset 7, -8 8376 .cfi_offset 14, -4 8377 0002 86B0 sub sp, sp, #24 8378 .cfi_def_cfa_offset 32 8379 0004 02AF add r7, sp, #8 8380 .cfi_def_cfa 7, 24 8381 0006 7860 str r0, [r7, #4] 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __IO uint32_t count; 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count = SPI_DEFAULT_TIMEOUT * (SystemCoreClock / 24U / 1000U); 8382 .loc 1 4397 56 8383 0008 4C4B ldr r3, .L430 ARM GAS /tmp/ccs34gJO.s page 224 8384 000a 1B68 ldr r3, [r3] 8385 000c 4C4A ldr r2, .L430+4 8386 000e A2FB0323 umull r2, r3, r2, r3 8387 0012 5B0A lsrs r3, r3, #9 8388 .loc 1 4397 31 8389 0014 6422 movs r2, #100 8390 0016 02FB03F3 mul r3, r2, r3 8391 .loc 1 4397 9 8392 001a FB60 str r3, [r7, #12] 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable TXEIE interrupt */ 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_TXEIE)); 8393 .loc 1 4400 3 8394 001c 7B68 ldr r3, [r7, #4] 8395 001e 1B68 ldr r3, [r3] 8396 0020 5A68 ldr r2, [r3, #4] 8397 0022 7B68 ldr r3, [r7, #4] 8398 0024 1B68 ldr r3, [r3] 8399 0026 22F08002 bic r2, r2, #128 8400 002a 5A60 str r2, [r3, #4] 8401 .L422: 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check TXEIE is disabled */ 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 8402 .loc 1 4405 15 8403 002c FB68 ldr r3, [r7, #12] 8404 .loc 1 4405 8 8405 002e 002B cmp r3, #0 8406 0030 06D1 bne .L420 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 8407 .loc 1 4407 7 8408 0032 7B68 ldr r3, [r7, #4] 8409 0034 1B6E ldr r3, [r3, #96] 8410 0036 43F04002 orr r2, r3, #64 8411 003a 7B68 ldr r3, [r7, #4] 8412 003c 1A66 str r2, [r3, #96] 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 8413 .loc 1 4408 7 8414 003e 09E0 b .L421 8415 .L420: 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 8416 .loc 1 4410 10 8417 0040 FB68 ldr r3, [r7, #12] 8418 0042 013B subs r3, r3, #1 8419 0044 FB60 str r3, [r7, #12] 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_TXEIE)); 8420 .loc 1 4411 12 8421 0046 7B68 ldr r3, [r7, #4] 8422 0048 1B68 ldr r3, [r3] 8423 004a 5B68 ldr r3, [r3, #4] 8424 004c 03F08003 and r3, r3, #128 8425 0050 802B cmp r3, #128 8426 0052 EBD0 beq .L422 ARM GAS /tmp/ccs34gJO.s page 225 8427 .L421: 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_EndRxTxTransaction(hspi, SPI_DEFAULT_TIMEOUT, HAL_GetTick()) != HAL_OK) 8428 .loc 1 4413 7 8429 0054 FFF7FEFF bl HAL_GetTick 8430 0058 0346 mov r3, r0 8431 .loc 1 4413 7 is_stmt 0 discriminator 1 8432 005a 1A46 mov r2, r3 8433 005c 6421 movs r1, #100 8434 005e 7868 ldr r0, [r7, #4] 8435 0060 FFF7FEFF bl SPI_EndRxTxTransaction 8436 0064 0346 mov r3, r0 8437 .loc 1 4413 6 is_stmt 1 discriminator 2 8438 0066 002B cmp r3, #0 8439 0068 02D0 beq .L423 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8440 .loc 1 4415 21 8441 006a 7B68 ldr r3, [r7, #4] 8442 006c 4022 movs r2, #64 8443 006e 1A66 str r2, [r3, #96] 8444 .L423: 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable SPI Peripheral */ 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** __HAL_SPI_DISABLE(hspi); 8445 .loc 1 4419 3 8446 0070 7B68 ldr r3, [r7, #4] 8447 0072 1B68 ldr r3, [r3] 8448 0074 1A68 ldr r2, [r3] 8449 0076 7B68 ldr r3, [r7, #4] 8450 0078 1B68 ldr r3, [r3] 8451 007a 22F04002 bic r2, r2, #64 8452 007e 1A60 str r2, [r3] 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, HAL 8453 .loc 1 4422 7 8454 0080 FFF7FEFF bl HAL_GetTick 8455 0084 0346 mov r3, r0 8456 .loc 1 4422 7 is_stmt 0 discriminator 1 8457 0086 0093 str r3, [sp] 8458 0088 6423 movs r3, #100 8459 008a 0022 movs r2, #0 8460 008c 4FF4C061 mov r1, #1536 8461 0090 7868 ldr r0, [r7, #4] 8462 0092 FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 8463 0096 0346 mov r3, r0 8464 .loc 1 4422 6 is_stmt 1 discriminator 2 8465 0098 002B cmp r3, #0 8466 009a 02D0 beq .L424 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8467 .loc 1 4424 21 8468 009c 7B68 ldr r3, [r7, #4] 8469 009e 4022 movs r2, #64 8470 00a0 1A66 str r2, [r3, #96] ARM GAS /tmp/ccs34gJO.s page 226 8471 .L424: 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check case of Full-Duplex Mode and disable directly RXNEIE interrupt */ 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)) 8472 .loc 1 4428 7 8473 00a2 7B68 ldr r3, [r7, #4] 8474 00a4 1B68 ldr r3, [r3] 8475 00a6 5B68 ldr r3, [r3, #4] 8476 00a8 03F04003 and r3, r3, #64 8477 .loc 1 4428 6 8478 00ac 402B cmp r3, #64 8479 00ae 3CD1 bne .L425 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Disable RXNEIE interrupt */ 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** CLEAR_BIT(hspi->Instance->CR2, (SPI_CR2_RXNEIE)); 8480 .loc 1 4431 5 8481 00b0 7B68 ldr r3, [r7, #4] 8482 00b2 1B68 ldr r3, [r3] 8483 00b4 5A68 ldr r2, [r3, #4] 8484 00b6 7B68 ldr r3, [r7, #4] 8485 00b8 1B68 ldr r3, [r3] 8486 00ba 22F04002 bic r2, r2, #64 8487 00be 5A60 str r2, [r3, #4] 8488 .L428: 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Check RXNEIE is disabled */ 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** do 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (count == 0U) 8489 .loc 1 4436 17 8490 00c0 FB68 ldr r3, [r7, #12] 8491 .loc 1 4436 10 8492 00c2 002B cmp r3, #0 8493 00c4 06D1 bne .L426 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); 8494 .loc 1 4438 9 8495 00c6 7B68 ldr r3, [r7, #4] 8496 00c8 1B6E ldr r3, [r3, #96] 8497 00ca 43F04002 orr r2, r3, #64 8498 00ce 7B68 ldr r3, [r7, #4] 8499 00d0 1A66 str r2, [r3, #96] 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** break; 8500 .loc 1 4439 9 8501 00d2 09E0 b .L427 8502 .L426: 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** count--; 8503 .loc 1 4441 12 8504 00d4 FB68 ldr r3, [r7, #12] 8505 00d6 013B subs r3, r3, #1 8506 00d8 FB60 str r3, [r7, #12] 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } while (HAL_IS_BIT_SET(hspi->Instance->CR2, SPI_CR2_RXNEIE)); 8507 .loc 1 4442 14 8508 00da 7B68 ldr r3, [r7, #4] 8509 00dc 1B68 ldr r3, [r3] ARM GAS /tmp/ccs34gJO.s page 227 8510 00de 5B68 ldr r3, [r3, #4] 8511 00e0 03F04003 and r3, r3, #64 8512 00e4 402B cmp r3, #64 8513 00e6 EBD0 beq .L428 8514 .L427: 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Control the BSY flag */ 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFlagStateUntilTimeout(hspi, SPI_FLAG_BSY, RESET, SPI_DEFAULT_TIMEOUT, HAL_GetTick() 8515 .loc 1 4445 9 8516 00e8 FFF7FEFF bl HAL_GetTick 8517 00ec 0346 mov r3, r0 8518 .loc 1 4445 9 is_stmt 0 discriminator 1 8519 00ee 0093 str r3, [sp] 8520 00f0 6423 movs r3, #100 8521 00f2 0022 movs r2, #0 8522 00f4 8021 movs r1, #128 8523 00f6 7868 ldr r0, [r7, #4] 8524 00f8 FFF7FEFF bl SPI_WaitFlagStateUntilTimeout 8525 00fc 0346 mov r3, r0 8526 .loc 1 4445 8 is_stmt 1 discriminator 2 8527 00fe 002B cmp r3, #0 8528 0100 02D0 beq .L429 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8529 .loc 1 4447 23 8530 0102 7B68 ldr r3, [r7, #4] 8531 0104 4022 movs r2, #64 8532 0106 1A66 str r2, [r3, #96] 8533 .L429: 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** /* Empty the FRLVL fifo */ 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** if (SPI_WaitFifoStateUntilTimeout(hspi, SPI_FLAG_FRLVL, SPI_FRLVL_EMPTY, SPI_DEFAULT_TIMEOUT, H 8534 .loc 1 4451 9 8535 0108 FFF7FEFF bl HAL_GetTick 8536 010c 0346 mov r3, r0 8537 .loc 1 4451 9 is_stmt 0 discriminator 1 8538 010e 0093 str r3, [sp] 8539 0110 6423 movs r3, #100 8540 0112 0022 movs r2, #0 8541 0114 4FF4C061 mov r1, #1536 8542 0118 7868 ldr r0, [r7, #4] 8543 011a FFF7FEFF bl SPI_WaitFifoStateUntilTimeout 8544 011e 0346 mov r3, r0 8545 .loc 1 4451 8 is_stmt 1 discriminator 2 8546 0120 002B cmp r3, #0 8547 0122 02D0 beq .L425 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** { 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->ErrorCode = HAL_SPI_ERROR_ABORT; 8548 .loc 1 4453 23 8549 0124 7B68 ldr r3, [r7, #4] 8550 0126 4022 movs r2, #64 8551 0128 1A66 str r2, [r3, #96] 8552 .L425: 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** hspi->State = HAL_SPI_STATE_ABORT; ARM GAS /tmp/ccs34gJO.s page 228 8553 .loc 1 4456 15 8554 012a 7B68 ldr r3, [r7, #4] 8555 012c 0722 movs r2, #7 8556 012e 83F85D20 strb r2, [r3, #93] 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_spi.c **** } 8557 .loc 1 4457 1 8558 0132 00BF nop 8559 0134 1037 adds r7, r7, #16 8560 .cfi_def_cfa_offset 8 8561 0136 BD46 mov sp, r7 8562 .cfi_def_cfa_register 13 8563 @ sp needed 8564 0138 80BD pop {r7, pc} 8565 .L431: 8566 013a 00BF .align 2 8567 .L430: 8568 013c 00000000 .word SystemCoreClock 8569 0140 F1197605 .word 91625969 8570 .cfi_endproc 8571 .LFE185: 8573 .text 8574 .Letext0: 8575 .file 2 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 8576 .file 3 "/nix/store/p8vkamc9b2vlibs9aw76vnasdbifhcbm-gcc-arm-embedded-13.2.rel1/arm-none-eabi/incl 8577 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302xc.h" 8578 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 8579 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 8580 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 8581 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_spi.h" 8582 .file 9 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/system_stm32f3xx.h" 8583 .file 10 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccs34gJO.s page 229 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_spi.c /tmp/ccs34gJO.s:21 .text.HAL_SPI_Init:00000000 $t /tmp/ccs34gJO.s:27 .text.HAL_SPI_Init:00000000 HAL_SPI_Init /tmp/ccs34gJO.s:306 .text.HAL_SPI_MspInit:00000000 HAL_SPI_MspInit /tmp/ccs34gJO.s:229 .text.HAL_SPI_DeInit:00000000 $t /tmp/ccs34gJO.s:235 .text.HAL_SPI_DeInit:00000000 HAL_SPI_DeInit /tmp/ccs34gJO.s:342 .text.HAL_SPI_MspDeInit:00000000 HAL_SPI_MspDeInit /tmp/ccs34gJO.s:300 .text.HAL_SPI_MspInit:00000000 $t /tmp/ccs34gJO.s:336 .text.HAL_SPI_MspDeInit:00000000 $t /tmp/ccs34gJO.s:372 .text.HAL_SPI_Transmit:00000000 $t /tmp/ccs34gJO.s:378 .text.HAL_SPI_Transmit:00000000 HAL_SPI_Transmit /tmp/ccs34gJO.s:7852 .text.SPI_EndRxTxTransaction:00000000 SPI_EndRxTxTransaction /tmp/ccs34gJO.s:909 .text.HAL_SPI_Receive:00000000 $t /tmp/ccs34gJO.s:915 .text.HAL_SPI_Receive:00000000 HAL_SPI_Receive /tmp/ccs34gJO.s:1335 .text.HAL_SPI_TransmitReceive:00000000 HAL_SPI_TransmitReceive /tmp/ccs34gJO.s:7724 .text.SPI_EndRxTransaction:00000000 SPI_EndRxTransaction /tmp/ccs34gJO.s:1329 .text.HAL_SPI_TransmitReceive:00000000 $t /tmp/ccs34gJO.s:2075 .text.HAL_SPI_Transmit_IT:00000000 $t /tmp/ccs34gJO.s:2081 .text.HAL_SPI_Transmit_IT:00000000 HAL_SPI_Transmit_IT /tmp/ccs34gJO.s:2272 .text.HAL_SPI_Transmit_IT:00000114 $d /tmp/ccs34gJO.s:7250 .text.SPI_TxISR_16BIT:00000000 SPI_TxISR_16BIT /tmp/ccs34gJO.s:7179 .text.SPI_TxISR_8BIT:00000000 SPI_TxISR_8BIT /tmp/ccs34gJO.s:2278 .text.HAL_SPI_Receive_IT:00000000 $t /tmp/ccs34gJO.s:2284 .text.HAL_SPI_Receive_IT:00000000 HAL_SPI_Receive_IT /tmp/ccs34gJO.s:2525 .text.HAL_SPI_TransmitReceive_IT:00000000 HAL_SPI_TransmitReceive_IT /tmp/ccs34gJO.s:2513 .text.HAL_SPI_Receive_IT:00000158 $d /tmp/ccs34gJO.s:7108 .text.SPI_RxISR_16BIT:00000000 SPI_RxISR_16BIT /tmp/ccs34gJO.s:7036 .text.SPI_RxISR_8BIT:00000000 SPI_RxISR_8BIT /tmp/ccs34gJO.s:2519 .text.HAL_SPI_TransmitReceive_IT:00000000 $t /tmp/ccs34gJO.s:2759 .text.HAL_SPI_TransmitReceive_IT:00000150 $d /tmp/ccs34gJO.s:6866 .text.SPI_2linesRxISR_16BIT:00000000 SPI_2linesRxISR_16BIT /tmp/ccs34gJO.s:6952 .text.SPI_2linesTxISR_16BIT:00000000 SPI_2linesTxISR_16BIT /tmp/ccs34gJO.s:6604 .text.SPI_2linesRxISR_8BIT:00000000 SPI_2linesRxISR_8BIT /tmp/ccs34gJO.s:6744 .text.SPI_2linesTxISR_8BIT:00000000 SPI_2linesTxISR_8BIT /tmp/ccs34gJO.s:2767 .text.HAL_SPI_Transmit_DMA:00000000 $t /tmp/ccs34gJO.s:2773 .text.HAL_SPI_Transmit_DMA:00000000 HAL_SPI_Transmit_DMA /tmp/ccs34gJO.s:3085 .text.HAL_SPI_Transmit_DMA:000001d4 $d /tmp/ccs34gJO.s:6055 .text.SPI_DMAHalfTransmitCplt:00000000 SPI_DMAHalfTransmitCplt /tmp/ccs34gJO.s:5697 .text.SPI_DMATransmitCplt:00000000 SPI_DMATransmitCplt /tmp/ccs34gJO.s:6172 .text.SPI_DMAError:00000000 SPI_DMAError /tmp/ccs34gJO.s:3092 .text.HAL_SPI_Receive_DMA:00000000 $t /tmp/ccs34gJO.s:3098 .text.HAL_SPI_Receive_DMA:00000000 HAL_SPI_Receive_DMA /tmp/ccs34gJO.s:3490 .text.HAL_SPI_TransmitReceive_DMA:00000000 HAL_SPI_TransmitReceive_DMA /tmp/ccs34gJO.s:3477 .text.HAL_SPI_Receive_DMA:00000250 $d /tmp/ccs34gJO.s:6094 .text.SPI_DMAHalfReceiveCplt:00000000 SPI_DMAHalfReceiveCplt /tmp/ccs34gJO.s:5822 .text.SPI_DMAReceiveCplt:00000000 SPI_DMAReceiveCplt /tmp/ccs34gJO.s:3484 .text.HAL_SPI_TransmitReceive_DMA:00000000 $t /tmp/ccs34gJO.s:4004 .text.HAL_SPI_TransmitReceive_DMA:00000310 $d /tmp/ccs34gJO.s:6133 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 SPI_DMAHalfTransmitReceiveCplt /tmp/ccs34gJO.s:5947 .text.SPI_DMATransmitReceiveCplt:00000000 SPI_DMATransmitReceiveCplt /tmp/ccs34gJO.s:4013 .text.HAL_SPI_Abort:00000000 $t /tmp/ccs34gJO.s:4019 .text.HAL_SPI_Abort:00000000 HAL_SPI_Abort /tmp/ccs34gJO.s:7510 .text.SPI_WaitFifoStateUntilTimeout:00000000 SPI_WaitFifoStateUntilTimeout /tmp/ccs34gJO.s:7319 .text.SPI_WaitFlagStateUntilTimeout:00000000 SPI_WaitFlagStateUntilTimeout /tmp/ccs34gJO.s:4385 .text.HAL_SPI_Abort:00000230 $d /tmp/ccs34gJO.s:8367 .text.SPI_AbortTx_ISR:00000000 SPI_AbortTx_ISR ARM GAS /tmp/ccs34gJO.s page 230 /tmp/ccs34gJO.s:8234 .text.SPI_AbortRx_ISR:00000000 SPI_AbortRx_ISR /tmp/ccs34gJO.s:4393 .text.HAL_SPI_Abort_IT:00000000 $t /tmp/ccs34gJO.s:4399 .text.HAL_SPI_Abort_IT:00000000 HAL_SPI_Abort_IT /tmp/ccs34gJO.s:5583 .text.HAL_SPI_AbortCpltCallback:00000000 HAL_SPI_AbortCpltCallback /tmp/ccs34gJO.s:4737 .text.HAL_SPI_Abort_IT:000001dc $d /tmp/ccs34gJO.s:6276 .text.SPI_DMATxAbortCallback:00000000 SPI_DMATxAbortCallback /tmp/ccs34gJO.s:6439 .text.SPI_DMARxAbortCallback:00000000 SPI_DMARxAbortCallback /tmp/ccs34gJO.s:4747 .text.HAL_SPI_DMAPause:00000000 $t /tmp/ccs34gJO.s:4753 .text.HAL_SPI_DMAPause:00000000 HAL_SPI_DMAPause /tmp/ccs34gJO.s:4812 .text.HAL_SPI_DMAResume:00000000 $t /tmp/ccs34gJO.s:4818 .text.HAL_SPI_DMAResume:00000000 HAL_SPI_DMAResume /tmp/ccs34gJO.s:4877 .text.HAL_SPI_DMAStop:00000000 $t /tmp/ccs34gJO.s:4883 .text.HAL_SPI_DMAStop:00000000 HAL_SPI_DMAStop /tmp/ccs34gJO.s:4977 .text.HAL_SPI_IRQHandler:00000000 $t /tmp/ccs34gJO.s:4983 .text.HAL_SPI_IRQHandler:00000000 HAL_SPI_IRQHandler /tmp/ccs34gJO.s:5547 .text.HAL_SPI_ErrorCallback:00000000 HAL_SPI_ErrorCallback /tmp/ccs34gJO.s:5320 .text.HAL_SPI_IRQHandler:000001fc $d /tmp/ccs34gJO.s:6229 .text.SPI_DMAAbortOnError:00000000 SPI_DMAAbortOnError /tmp/ccs34gJO.s:5325 .text.HAL_SPI_TxCpltCallback:00000000 $t /tmp/ccs34gJO.s:5331 .text.HAL_SPI_TxCpltCallback:00000000 HAL_SPI_TxCpltCallback /tmp/ccs34gJO.s:5361 .text.HAL_SPI_RxCpltCallback:00000000 $t /tmp/ccs34gJO.s:5367 .text.HAL_SPI_RxCpltCallback:00000000 HAL_SPI_RxCpltCallback /tmp/ccs34gJO.s:5397 .text.HAL_SPI_TxRxCpltCallback:00000000 $t /tmp/ccs34gJO.s:5403 .text.HAL_SPI_TxRxCpltCallback:00000000 HAL_SPI_TxRxCpltCallback /tmp/ccs34gJO.s:5433 .text.HAL_SPI_TxHalfCpltCallback:00000000 $t /tmp/ccs34gJO.s:5439 .text.HAL_SPI_TxHalfCpltCallback:00000000 HAL_SPI_TxHalfCpltCallback /tmp/ccs34gJO.s:5469 .text.HAL_SPI_RxHalfCpltCallback:00000000 $t /tmp/ccs34gJO.s:5475 .text.HAL_SPI_RxHalfCpltCallback:00000000 HAL_SPI_RxHalfCpltCallback /tmp/ccs34gJO.s:5505 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 $t /tmp/ccs34gJO.s:5511 .text.HAL_SPI_TxRxHalfCpltCallback:00000000 HAL_SPI_TxRxHalfCpltCallback /tmp/ccs34gJO.s:5541 .text.HAL_SPI_ErrorCallback:00000000 $t /tmp/ccs34gJO.s:5577 .text.HAL_SPI_AbortCpltCallback:00000000 $t /tmp/ccs34gJO.s:5613 .text.HAL_SPI_GetState:00000000 $t /tmp/ccs34gJO.s:5619 .text.HAL_SPI_GetState:00000000 HAL_SPI_GetState /tmp/ccs34gJO.s:5653 .text.HAL_SPI_GetError:00000000 $t /tmp/ccs34gJO.s:5659 .text.HAL_SPI_GetError:00000000 HAL_SPI_GetError /tmp/ccs34gJO.s:5692 .text.SPI_DMATransmitCplt:00000000 $t /tmp/ccs34gJO.s:5817 .text.SPI_DMAReceiveCplt:00000000 $t /tmp/ccs34gJO.s:5942 .text.SPI_DMATransmitReceiveCplt:00000000 $t /tmp/ccs34gJO.s:6050 .text.SPI_DMAHalfTransmitCplt:00000000 $t /tmp/ccs34gJO.s:6089 .text.SPI_DMAHalfReceiveCplt:00000000 $t /tmp/ccs34gJO.s:6128 .text.SPI_DMAHalfTransmitReceiveCplt:00000000 $t /tmp/ccs34gJO.s:6167 .text.SPI_DMAError:00000000 $t /tmp/ccs34gJO.s:6224 .text.SPI_DMAAbortOnError:00000000 $t /tmp/ccs34gJO.s:6271 .text.SPI_DMATxAbortCallback:00000000 $t /tmp/ccs34gJO.s:6434 .text.SPI_DMARxAbortCallback:00000000 $t /tmp/ccs34gJO.s:6599 .text.SPI_2linesRxISR_8BIT:00000000 $t /tmp/ccs34gJO.s:7955 .text.SPI_CloseRxTx_ISR:00000000 SPI_CloseRxTx_ISR /tmp/ccs34gJO.s:6739 .text.SPI_2linesTxISR_8BIT:00000000 $t /tmp/ccs34gJO.s:6861 .text.SPI_2linesRxISR_16BIT:00000000 $t /tmp/ccs34gJO.s:6947 .text.SPI_2linesTxISR_16BIT:00000000 $t /tmp/ccs34gJO.s:7031 .text.SPI_RxISR_8BIT:00000000 $t /tmp/ccs34gJO.s:8055 .text.SPI_CloseRx_ISR:00000000 SPI_CloseRx_ISR /tmp/ccs34gJO.s:7103 .text.SPI_RxISR_16BIT:00000000 $t /tmp/ccs34gJO.s:7174 .text.SPI_TxISR_8BIT:00000000 $t /tmp/ccs34gJO.s:8134 .text.SPI_CloseTx_ISR:00000000 SPI_CloseTx_ISR /tmp/ccs34gJO.s:7245 .text.SPI_TxISR_16BIT:00000000 $t ARM GAS /tmp/ccs34gJO.s page 231 /tmp/ccs34gJO.s:7314 .text.SPI_WaitFlagStateUntilTimeout:00000000 $t /tmp/ccs34gJO.s:7500 .text.SPI_WaitFlagStateUntilTimeout:0000010c $d /tmp/ccs34gJO.s:7505 .text.SPI_WaitFifoStateUntilTimeout:00000000 $t /tmp/ccs34gJO.s:7714 .text.SPI_WaitFifoStateUntilTimeout:00000128 $d /tmp/ccs34gJO.s:7719 .text.SPI_EndRxTransaction:00000000 $t /tmp/ccs34gJO.s:7847 .text.SPI_EndRxTxTransaction:00000000 $t /tmp/ccs34gJO.s:7950 .text.SPI_CloseRxTx_ISR:00000000 $t /tmp/ccs34gJO.s:8050 .text.SPI_CloseRx_ISR:00000000 $t /tmp/ccs34gJO.s:8129 .text.SPI_CloseTx_ISR:00000000 $t /tmp/ccs34gJO.s:8229 .text.SPI_AbortRx_ISR:00000000 $t /tmp/ccs34gJO.s:8356 .text.SPI_AbortRx_ISR:000000b8 $d /tmp/ccs34gJO.s:8362 .text.SPI_AbortTx_ISR:00000000 $t /tmp/ccs34gJO.s:8568 .text.SPI_AbortTx_ISR:0000013c $d UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort SystemCoreClock HAL_DMA_Abort_IT