mv-bms/Software/build/stm32f3xx_hal_spi.lst

13798 lines
744 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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