ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.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 "stm32f4xx_hal_uart.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.HAL_UART_Init,"ax",%progbits 20 .align 1 21 .global HAL_UART_Init 22 .syntax unified 23 .thumb 24 .thumb_func 26 HAL_UART_Init: 27 .LFB235: 28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @file stm32f4xx_hal_uart.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + IO operation functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral Control functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral State and Errors functions 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @attention 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Copyright (c) 2016 STMicroelectronics. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * All rights reserved. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This software is licensed under terms that can be found in the LICENSE file 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * in the root directory of this software component. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### How to use this driver ##### 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The UART HAL driver can be used as follows: 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 2 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) Enable the USARTx interface clock. 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) UART pins configuration: 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the UART TX/RX pins as alternate function pull-up. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs): 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs): 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx stream. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the DMAx interface clock. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Tx/Rx parameters. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx stream. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** interrupt on the DMA Tx/Rx stream. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority and enable the NVIC USART IRQ handle 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (used for last byte sending completion detection in DMA non circular mode) 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Hardware 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** flow control and Mode(Receiver/Transmitter) in the huart Init structure. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_Init() API. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the LIN mode, initialize the UART registers by calling the HAL_LIN_Init() API. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the Multi-Processor mode, initialize the UART registers by calling 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_MultiProcessor_Init() API. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) The specific UART interrupts (Transmission complete interrupt, 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RXNE interrupt and Error Interrupts) will be managed using the macros 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() inside the transmit 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) These APIs (HAL_UART_Init() and HAL_HalfDuplex_Init()) configure also the 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** low level Hardware GPIO, CLOCK, CORTEX...etc) by calling the customized 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit() API. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Callback registration ##### 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================== 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use Function HAL_UART_RegisterCallback() to register a user callback. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 3 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Function HAL_UART_RegisterCallback() allows to register following callbacks: 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and a pointer to the user callback function. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use function HAL_UART_UnRegisterCallback() to reset a callback to the default 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** weak (surcharged) function. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the Callback ID. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function allows to reset following callbacks: 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** For specific callback RxEventCallback, use dedicated registration/reset functions: 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** respectively HAL_UART_RegisterRxEventCallback() , HAL_UART_UnRegisterRxEventCallback(). 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** By default, after the HAL_UART_Init() and when the state is HAL_UART_STATE_RESET 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions: 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** examples HAL_UART_TxCpltCallback(), HAL_UART_RxHalfCpltCallback(). 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the HAL_UART_Init() 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the HAL_UART_Init() and HAL_UART_DeInit() 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand). 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using HAL_UART_RegisterCallback() before calling HAL_UART_DeInit() 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or HAL_UART_Init() function. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** not defined, the callback registration feature is not available ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 4 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and weak (surcharged) callbacks are used. 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Three operation modes are available within this driver : 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Polling mode IO operation *** 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================= 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in blocking mode using HAL_UART_Transmit() 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in blocking mode using HAL_UART_Receive() 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Interrupt mode IO operation *** 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =================================== 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode using HAL_UART_Transmit_IT() 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode using HAL_UART_Receive_IT() 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** DMA mode IO operation *** 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================== 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode (DMA) using HAL_UART_Transmit_DMA() 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of half transfer HAL_UART_TxHalfCpltCallback is executed and user ca 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxHalfCpltCallback 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode (DMA) using HAL_UART_Receive_DMA() 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of half transfer HAL_UART_RxHalfCpltCallback is executed and user can 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxHalfCpltCallback 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Pause the DMA Transfer using HAL_UART_DMAPause() 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Resume the DMA Transfer using HAL_UART_DMAResume() 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Stop the DMA Transfer using HAL_UART_DMAStop() 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] This subsection also provides a set of additional functions providing enhanced reception 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** services to user. (For example, these functions allow application to handle use cases 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** where number of data to be received is unknown). 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Compared to standard reception services which only consider number of received 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** data elements as reception completion criteria, these functions also consider additional ev 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** as triggers for updating reception status to caller : 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Detection of inactivity period (RX line has not been active for a given period). 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) RX inactivity detected by IDLE event, i.e. RX line has been in idle state (normally 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** for 1 frame time, after last received byte. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two mode of transfer: 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The reception is performed in polling mode, until either expected number 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or till IDLE event occurs. Reception is handled only during function execution. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 5 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When function exits, no data reception could occur. HAL status and number of actually re 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** are returned by function after finishing transfer. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The reception is performed using Interrupts or DMA. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** These API's return the HAL status. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when using DMA mode. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UARTEx_RxEventCallback() user callback will be executed during Receive process 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a reception error is det 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API: 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle() 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API with Interrupt: 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle_IT() 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API with DMA: 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle_DMA() 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** UART HAL driver macros list *** 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================= 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Below the list of most used macros in UART HAL driver. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE: Enable the UART peripheral 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE: Disable the UART peripheral 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_FLAG : Check whether the specified UART flag is set or not 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_CLEAR_FLAG : Clear the specified UART pending flag 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE_IT: Enable the specified UART interrupt 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE_IT: Disable the specified UART interrupt 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_IT_SOURCE: Check whether the specified UART interrupt has occurred or not 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) You can refer to the UART HAL driver header file for more useful macros 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) Additional remark: If the parity is enabled, then the MSB bit of the data written 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the possible UART frame formats are as listed in the following table: 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | M bit | PCE bit | UART frame | 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------------------|---------------------------------------| 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 0 | | SB | 8 bit data | STB | | 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 1 | | SB | 7 bit data | PB | STB | | 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 0 | | SB | 9 bit data | STB | | 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 1 | | SB | 8 bit data | PB | STB | | 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/ 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #include "stm32f4xx_hal.h" ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 6 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup STM32F4xx_HAL_Driver 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART UART 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief HAL UART module driver 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/ 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/ 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Constants 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private macro -------------------------------------------------------------*/ 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/ 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/ 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions UART Private Functions 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart); 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart); 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart); 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma); 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart); 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart); 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart); 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout); 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart); 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Exported functions ---------------------------------------------------------*/ 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 7 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialization and Configuration functions 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Initialization and Configuration functions ##### 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in asynchronous mode. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) For the asynchronous mode only these parameters can be configured: 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Baud Rate 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Word Length 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Stop Bit 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** please refer to Reference manual for possible UART frame formats. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Hardware flow control 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Receiver/transmitter modes 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Over Sampling Method 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init() and HAL_MultiProcessor_Init() APIs 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, LIN and Multi-Processor configurat 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** procedures (details for the procedures are available in reference manual 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (RM0430 for STM32F4X3xx MCUs and RM0402 for STM32F412xx MCUs 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0383 for STM32F411xC/E MCUs and RM0401 for STM32F410xx MCUs 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0090 for STM32F4X5xx/STM32F4X7xx/STM32F429xx/STM32F439xx MCUs 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0390 for STM32F446xx MCUs and RM0386 for STM32F469xx/STM32F479xx MCUs)). 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the UART mode according to the specified parameters in 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the UART_InitTypeDef and create the associated handle. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 29 .loc 1 358 1 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 8 32 @ frame_needed = 1, uses_anonymous_args = 0 33 0000 80B5 push {r7, lr} 34 .LCFI0: 35 .cfi_def_cfa_offset 8 36 .cfi_offset 7, -8 37 .cfi_offset 14, -4 38 0002 82B0 sub sp, sp, #8 39 .LCFI1: 40 .cfi_def_cfa_offset 16 41 0004 00AF add r7, sp, #0 42 .LCFI2: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 8 43 .cfi_def_cfa_register 7 44 0006 7860 str r0, [r7, #4] 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 45 .loc 1 360 6 46 0008 7B68 ldr r3, [r7, #4] 47 000a 002B cmp r3, #0 48 000c 01D1 bne .L2 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 49 .loc 1 362 12 50 000e 0123 movs r3, #1 51 0010 3FE0 b .L3 52 .L2: 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The hardware flow control is available only for USART1, USART2, USART3 and USART6. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Except for STM32F446xx devices, that is available for USART1, USART2, USART3, USART6, UART4 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 53 .loc 1 381 12 54 0012 7B68 ldr r3, [r7, #4] 55 0014 93F83D30 ldrb r3, [r3, #61] 56 0018 DBB2 uxtb r3, r3 57 .loc 1 381 6 58 001a 002B cmp r3, #0 59 001c 06D1 bne .L4 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 60 .loc 1 384 17 61 001e 7B68 ldr r3, [r7, #4] 62 0020 0022 movs r2, #0 63 0022 83F83C20 strb r2, [r3, #60] 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 9 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 64 .loc 1 398 5 65 0026 7868 ldr r0, [r7, #4] 66 0028 FFF7FEFF bl HAL_UART_MspInit 67 .L4: 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 68 .loc 1 402 17 69 002c 7B68 ldr r3, [r7, #4] 70 002e 2422 movs r2, #36 71 0030 83F83D20 strb r2, [r3, #61] 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 72 .loc 1 405 3 73 0034 7B68 ldr r3, [r7, #4] 74 0036 1B68 ldr r3, [r3] 75 0038 DA68 ldr r2, [r3, #12] 76 003a 7B68 ldr r3, [r7, #4] 77 003c 1B68 ldr r3, [r3] 78 003e 22F40052 bic r2, r2, #8192 79 0042 DA60 str r2, [r3, #12] 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 80 .loc 1 408 3 81 0044 7868 ldr r0, [r7, #4] 82 0046 FFF7FEFF bl UART_SetConfig 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared: 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 83 .loc 1 413 3 84 004a 7B68 ldr r3, [r7, #4] 85 004c 1B68 ldr r3, [r3] 86 004e 1A69 ldr r2, [r3, #16] 87 0050 7B68 ldr r3, [r7, #4] 88 0052 1B68 ldr r3, [r3] 89 0054 22F49042 bic r2, r2, #18432 90 0058 1A61 str r2, [r3, #16] 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 91 .loc 1 414 3 92 005a 7B68 ldr r3, [r7, #4] 93 005c 1B68 ldr r3, [r3] 94 005e 5A69 ldr r2, [r3, #20] 95 0060 7B68 ldr r3, [r7, #4] 96 0062 1B68 ldr r3, [r3] 97 0064 22F02A02 bic r2, r2, #42 98 0068 5A61 str r2, [r3, #20] 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 10 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 99 .loc 1 417 3 100 006a 7B68 ldr r3, [r7, #4] 101 006c 1B68 ldr r3, [r3] 102 006e DA68 ldr r2, [r3, #12] 103 0070 7B68 ldr r3, [r7, #4] 104 0072 1B68 ldr r3, [r3] 105 0074 42F40052 orr r2, r2, #8192 106 0078 DA60 str r2, [r3, #12] 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 107 .loc 1 420 20 108 007a 7B68 ldr r3, [r7, #4] 109 007c 0022 movs r2, #0 110 007e 1A64 str r2, [r3, #64] 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 111 .loc 1 421 17 112 0080 7B68 ldr r3, [r7, #4] 113 0082 2022 movs r2, #32 114 0084 83F83D20 strb r2, [r3, #61] 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 115 .loc 1 422 18 116 0088 7B68 ldr r3, [r7, #4] 117 008a 2022 movs r2, #32 118 008c 83F83E20 strb r2, [r3, #62] 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 119 .loc 1 424 10 120 0090 0023 movs r3, #0 121 .L3: 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 122 .loc 1 425 1 123 0092 1846 mov r0, r3 124 0094 0837 adds r7, r7, #8 125 .LCFI3: 126 .cfi_def_cfa_offset 8 127 0096 BD46 mov sp, r7 128 .LCFI4: 129 .cfi_def_cfa_register 13 130 @ sp needed 131 0098 80BD pop {r7, pc} 132 .cfi_endproc 133 .LFE235: 135 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 136 .align 1 137 .global HAL_HalfDuplex_Init 138 .syntax unified 139 .thumb 140 .thumb_func 142 HAL_HalfDuplex_Init: 143 .LFB236: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the half-duplex mode according to the specified 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 11 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 144 .loc 1 435 1 145 .cfi_startproc 146 @ args = 0, pretend = 0, frame = 8 147 @ frame_needed = 1, uses_anonymous_args = 0 148 0000 80B5 push {r7, lr} 149 .LCFI5: 150 .cfi_def_cfa_offset 8 151 .cfi_offset 7, -8 152 .cfi_offset 14, -4 153 0002 82B0 sub sp, sp, #8 154 .LCFI6: 155 .cfi_def_cfa_offset 16 156 0004 00AF add r7, sp, #0 157 .LCFI7: 158 .cfi_def_cfa_register 7 159 0006 7860 str r0, [r7, #4] 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 160 .loc 1 437 6 161 0008 7B68 ldr r3, [r7, #4] 162 000a 002B cmp r3, #0 163 000c 01D1 bne .L6 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 164 .loc 1 439 12 165 000e 0123 movs r3, #1 166 0010 47E0 b .L7 167 .L6: 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 168 .loc 1 447 12 169 0012 7B68 ldr r3, [r7, #4] 170 0014 93F83D30 ldrb r3, [r3, #61] 171 0018 DBB2 uxtb r3, r3 172 .loc 1 447 6 173 001a 002B cmp r3, #0 174 001c 06D1 bne .L8 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 175 .loc 1 450 17 176 001e 7B68 ldr r3, [r7, #4] 177 0020 0022 movs r2, #0 178 0022 83F83C20 strb r2, [r3, #60] 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 12 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 179 .loc 1 464 5 180 0026 7868 ldr r0, [r7, #4] 181 0028 FFF7FEFF bl HAL_UART_MspInit 182 .L8: 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 183 .loc 1 468 17 184 002c 7B68 ldr r3, [r7, #4] 185 002e 2422 movs r2, #36 186 0030 83F83D20 strb r2, [r3, #61] 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 187 .loc 1 471 3 188 0034 7B68 ldr r3, [r7, #4] 189 0036 1B68 ldr r3, [r3] 190 0038 DA68 ldr r2, [r3, #12] 191 003a 7B68 ldr r3, [r7, #4] 192 003c 1B68 ldr r3, [r3] 193 003e 22F40052 bic r2, r2, #8192 194 0042 DA60 str r2, [r3, #12] 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 195 .loc 1 474 3 196 0044 7868 ldr r0, [r7, #4] 197 0046 FFF7FEFF bl UART_SetConfig 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared: 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 198 .loc 1 479 3 199 004a 7B68 ldr r3, [r7, #4] 200 004c 1B68 ldr r3, [r3] 201 004e 1A69 ldr r2, [r3, #16] 202 0050 7B68 ldr r3, [r7, #4] 203 0052 1B68 ldr r3, [r3] 204 0054 22F49042 bic r2, r2, #18432 205 0058 1A61 str r2, [r3, #16] 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 206 .loc 1 480 3 207 005a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 13 208 005c 1B68 ldr r3, [r3] 209 005e 5A69 ldr r2, [r3, #20] 210 0060 7B68 ldr r3, [r7, #4] 211 0062 1B68 ldr r3, [r3] 212 0064 22F02202 bic r2, r2, #34 213 0068 5A61 str r2, [r3, #20] 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); 214 .loc 1 483 3 215 006a 7B68 ldr r3, [r7, #4] 216 006c 1B68 ldr r3, [r3] 217 006e 5A69 ldr r2, [r3, #20] 218 0070 7B68 ldr r3, [r7, #4] 219 0072 1B68 ldr r3, [r3] 220 0074 42F00802 orr r2, r2, #8 221 0078 5A61 str r2, [r3, #20] 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 222 .loc 1 486 3 223 007a 7B68 ldr r3, [r7, #4] 224 007c 1B68 ldr r3, [r3] 225 007e DA68 ldr r2, [r3, #12] 226 0080 7B68 ldr r3, [r7, #4] 227 0082 1B68 ldr r3, [r3] 228 0084 42F40052 orr r2, r2, #8192 229 0088 DA60 str r2, [r3, #12] 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 230 .loc 1 489 20 231 008a 7B68 ldr r3, [r7, #4] 232 008c 0022 movs r2, #0 233 008e 1A64 str r2, [r3, #64] 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 234 .loc 1 490 17 235 0090 7B68 ldr r3, [r7, #4] 236 0092 2022 movs r2, #32 237 0094 83F83D20 strb r2, [r3, #61] 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 238 .loc 1 491 18 239 0098 7B68 ldr r3, [r7, #4] 240 009a 2022 movs r2, #32 241 009c 83F83E20 strb r2, [r3, #62] 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 242 .loc 1 493 10 243 00a0 0023 movs r3, #0 244 .L7: 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 245 .loc 1 494 1 246 00a2 1846 mov r0, r3 247 00a4 0837 adds r7, r7, #8 248 .LCFI8: 249 .cfi_def_cfa_offset 8 250 00a6 BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 14 251 .LCFI9: 252 .cfi_def_cfa_register 13 253 @ sp needed 254 00a8 80BD pop {r7, pc} 255 .cfi_endproc 256 .LFE236: 258 .section .text.HAL_LIN_Init,"ax",%progbits 259 .align 1 260 .global HAL_LIN_Init 261 .syntax unified 262 .thumb 263 .thumb_func 265 HAL_LIN_Init: 266 .LFB237: 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the LIN mode according to the specified 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length. 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_10B: 10-bit break detection 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_11B: 11-bit break detection 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 267 .loc 1 508 1 268 .cfi_startproc 269 @ args = 0, pretend = 0, frame = 8 270 @ frame_needed = 1, uses_anonymous_args = 0 271 0000 80B5 push {r7, lr} 272 .LCFI10: 273 .cfi_def_cfa_offset 8 274 .cfi_offset 7, -8 275 .cfi_offset 14, -4 276 0002 82B0 sub sp, sp, #8 277 .LCFI11: 278 .cfi_def_cfa_offset 16 279 0004 00AF add r7, sp, #0 280 .LCFI12: 281 .cfi_def_cfa_register 7 282 0006 7860 str r0, [r7, #4] 283 0008 3960 str r1, [r7] 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 284 .loc 1 510 6 285 000a 7B68 ldr r3, [r7, #4] 286 000c 002B cmp r3, #0 287 000e 01D1 bne .L10 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 288 .loc 1 512 12 289 0010 0123 movs r3, #1 290 0012 57E0 b .L11 291 .L10: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 15 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the LIN UART instance */ 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Break detection length parameter */ 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 292 .loc 1 523 12 293 0014 7B68 ldr r3, [r7, #4] 294 0016 93F83D30 ldrb r3, [r3, #61] 295 001a DBB2 uxtb r3, r3 296 .loc 1 523 6 297 001c 002B cmp r3, #0 298 001e 06D1 bne .L12 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 299 .loc 1 526 17 300 0020 7B68 ldr r3, [r7, #4] 301 0022 0022 movs r2, #0 302 0024 83F83C20 strb r2, [r3, #60] 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 303 .loc 1 540 5 304 0028 7868 ldr r0, [r7, #4] 305 002a FFF7FEFF bl HAL_UART_MspInit 306 .L12: 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 307 .loc 1 544 17 308 002e 7B68 ldr r3, [r7, #4] 309 0030 2422 movs r2, #36 310 0032 83F83D20 strb r2, [r3, #61] 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 311 .loc 1 547 3 312 0036 7B68 ldr r3, [r7, #4] 313 0038 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 16 314 003a DA68 ldr r2, [r3, #12] 315 003c 7B68 ldr r3, [r7, #4] 316 003e 1B68 ldr r3, [r3] 317 0040 22F40052 bic r2, r2, #8192 318 0044 DA60 str r2, [r3, #12] 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 319 .loc 1 550 3 320 0046 7868 ldr r0, [r7, #4] 321 0048 FFF7FEFF bl UART_SetConfig 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared: 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - CLKEN bits in the USART_CR2 register, 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); 322 .loc 1 555 3 323 004c 7B68 ldr r3, [r7, #4] 324 004e 1B68 ldr r3, [r3] 325 0050 1A69 ldr r2, [r3, #16] 326 0052 7B68 ldr r3, [r7, #4] 327 0054 1B68 ldr r3, [r3] 328 0056 22F40062 bic r2, r2, #2048 329 005a 1A61 str r2, [r3, #16] 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 330 .loc 1 556 3 331 005c 7B68 ldr r3, [r7, #4] 332 005e 1B68 ldr r3, [r3] 333 0060 5A69 ldr r2, [r3, #20] 334 0062 7B68 ldr r3, [r7, #4] 335 0064 1B68 ldr r3, [r3] 336 0066 22F02A02 bic r2, r2, #42 337 006a 5A61 str r2, [r3, #20] 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); 338 .loc 1 559 3 339 006c 7B68 ldr r3, [r7, #4] 340 006e 1B68 ldr r3, [r3] 341 0070 1A69 ldr r2, [r3, #16] 342 0072 7B68 ldr r3, [r7, #4] 343 0074 1B68 ldr r3, [r3] 344 0076 42F48042 orr r2, r2, #16384 345 007a 1A61 str r2, [r3, #16] 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */ 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); 346 .loc 1 562 3 347 007c 7B68 ldr r3, [r7, #4] 348 007e 1B68 ldr r3, [r3] 349 0080 1A69 ldr r2, [r3, #16] 350 0082 7B68 ldr r3, [r7, #4] 351 0084 1B68 ldr r3, [r3] 352 0086 22F02002 bic r2, r2, #32 353 008a 1A61 str r2, [r3, #16] 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 354 .loc 1 563 3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 17 355 008c 7B68 ldr r3, [r7, #4] 356 008e 1B68 ldr r3, [r3] 357 0090 1969 ldr r1, [r3, #16] 358 0092 7B68 ldr r3, [r7, #4] 359 0094 1B68 ldr r3, [r3] 360 0096 3A68 ldr r2, [r7] 361 0098 0A43 orrs r2, r2, r1 362 009a 1A61 str r2, [r3, #16] 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 363 .loc 1 566 3 364 009c 7B68 ldr r3, [r7, #4] 365 009e 1B68 ldr r3, [r3] 366 00a0 DA68 ldr r2, [r3, #12] 367 00a2 7B68 ldr r3, [r7, #4] 368 00a4 1B68 ldr r3, [r3] 369 00a6 42F40052 orr r2, r2, #8192 370 00aa DA60 str r2, [r3, #12] 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 371 .loc 1 569 20 372 00ac 7B68 ldr r3, [r7, #4] 373 00ae 0022 movs r2, #0 374 00b0 1A64 str r2, [r3, #64] 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 375 .loc 1 570 17 376 00b2 7B68 ldr r3, [r7, #4] 377 00b4 2022 movs r2, #32 378 00b6 83F83D20 strb r2, [r3, #61] 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 379 .loc 1 571 18 380 00ba 7B68 ldr r3, [r7, #4] 381 00bc 2022 movs r2, #32 382 00be 83F83E20 strb r2, [r3, #62] 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 383 .loc 1 573 10 384 00c2 0023 movs r3, #0 385 .L11: 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 386 .loc 1 574 1 387 00c4 1846 mov r0, r3 388 00c6 0837 adds r7, r7, #8 389 .LCFI13: 390 .cfi_def_cfa_offset 8 391 00c8 BD46 mov sp, r7 392 .LCFI14: 393 .cfi_def_cfa_register 13 394 @ sp needed 395 00ca 80BD pop {r7, pc} 396 .cfi_endproc 397 .LFE237: 399 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 400 .align 1 401 .global HAL_MultiProcessor_Init ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 18 402 .syntax unified 403 .thumb 404 .thumb_func 406 HAL_MultiProcessor_Init: 407 .LFB238: 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the Multi-Processor mode according to the specified 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Address USART address 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param WakeUpMethod specifies the USART wake-up method. 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_IDLELINE: Wake-up by an idle line detection 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_ADDRESSMARK: Wake-up by an address mark 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 408 .loc 1 589 1 409 .cfi_startproc 410 @ args = 0, pretend = 0, frame = 16 411 @ frame_needed = 1, uses_anonymous_args = 0 412 0000 80B5 push {r7, lr} 413 .LCFI15: 414 .cfi_def_cfa_offset 8 415 .cfi_offset 7, -8 416 .cfi_offset 14, -4 417 0002 84B0 sub sp, sp, #16 418 .LCFI16: 419 .cfi_def_cfa_offset 24 420 0004 00AF add r7, sp, #0 421 .LCFI17: 422 .cfi_def_cfa_register 7 423 0006 F860 str r0, [r7, #12] 424 0008 0B46 mov r3, r1 425 000a 7A60 str r2, [r7, #4] 426 000c FB72 strb r3, [r7, #11] 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 427 .loc 1 591 6 428 000e FB68 ldr r3, [r7, #12] 429 0010 002B cmp r3, #0 430 0012 01D1 bne .L14 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 431 .loc 1 593 12 432 0014 0123 movs r3, #1 433 0016 5FE0 b .L15 434 .L14: 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Address & wake up method parameters */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 19 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address)); 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 435 .loc 1 605 12 436 0018 FB68 ldr r3, [r7, #12] 437 001a 93F83D30 ldrb r3, [r3, #61] 438 001e DBB2 uxtb r3, r3 439 .loc 1 605 6 440 0020 002B cmp r3, #0 441 0022 06D1 bne .L16 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 442 .loc 1 608 17 443 0024 FB68 ldr r3, [r7, #12] 444 0026 0022 movs r2, #0 445 0028 83F83C20 strb r2, [r3, #60] 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 446 .loc 1 622 5 447 002c F868 ldr r0, [r7, #12] 448 002e FFF7FEFF bl HAL_UART_MspInit 449 .L16: 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 450 .loc 1 626 17 451 0032 FB68 ldr r3, [r7, #12] 452 0034 2422 movs r2, #36 453 0036 83F83D20 strb r2, [r3, #61] 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 454 .loc 1 629 3 455 003a FB68 ldr r3, [r7, #12] 456 003c 1B68 ldr r3, [r3] 457 003e DA68 ldr r2, [r3, #12] 458 0040 FB68 ldr r3, [r7, #12] 459 0042 1B68 ldr r3, [r3] 460 0044 22F40052 bic r2, r2, #8192 461 0048 DA60 str r2, [r3, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 20 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 462 .loc 1 632 3 463 004a F868 ldr r0, [r7, #12] 464 004c FFF7FEFF bl UART_SetConfig 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Multi-Processor mode, the following bits must be kept cleared: 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register */ 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 465 .loc 1 637 3 466 0050 FB68 ldr r3, [r7, #12] 467 0052 1B68 ldr r3, [r3] 468 0054 1A69 ldr r2, [r3, #16] 469 0056 FB68 ldr r3, [r7, #12] 470 0058 1B68 ldr r3, [r3] 471 005a 22F49042 bic r2, r2, #18432 472 005e 1A61 str r2, [r3, #16] 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 473 .loc 1 638 3 474 0060 FB68 ldr r3, [r7, #12] 475 0062 1B68 ldr r3, [r3] 476 0064 5A69 ldr r2, [r3, #20] 477 0066 FB68 ldr r3, [r7, #12] 478 0068 1B68 ldr r3, [r3] 479 006a 22F02A02 bic r2, r2, #42 480 006e 5A61 str r2, [r3, #20] 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART address node */ 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); 481 .loc 1 641 3 482 0070 FB68 ldr r3, [r7, #12] 483 0072 1B68 ldr r3, [r3] 484 0074 1A69 ldr r2, [r3, #16] 485 0076 FB68 ldr r3, [r7, #12] 486 0078 1B68 ldr r3, [r3] 487 007a 22F00F02 bic r2, r2, #15 488 007e 1A61 str r2, [r3, #16] 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 489 .loc 1 642 3 490 0080 FB68 ldr r3, [r7, #12] 491 0082 1B68 ldr r3, [r3] 492 0084 1969 ldr r1, [r3, #16] 493 0086 FA7A ldrb r2, [r7, #11] @ zero_extendqisi2 494 0088 FB68 ldr r3, [r7, #12] 495 008a 1B68 ldr r3, [r3] 496 008c 0A43 orrs r2, r2, r1 497 008e 1A61 str r2, [r3, #16] 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */ 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); 498 .loc 1 645 3 499 0090 FB68 ldr r3, [r7, #12] 500 0092 1B68 ldr r3, [r3] 501 0094 DA68 ldr r2, [r3, #12] 502 0096 FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 21 503 0098 1B68 ldr r3, [r3] 504 009a 22F40062 bic r2, r2, #2048 505 009e DA60 str r2, [r3, #12] 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 506 .loc 1 646 3 507 00a0 FB68 ldr r3, [r7, #12] 508 00a2 1B68 ldr r3, [r3] 509 00a4 D968 ldr r1, [r3, #12] 510 00a6 FB68 ldr r3, [r7, #12] 511 00a8 1B68 ldr r3, [r3] 512 00aa 7A68 ldr r2, [r7, #4] 513 00ac 0A43 orrs r2, r2, r1 514 00ae DA60 str r2, [r3, #12] 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 515 .loc 1 649 3 516 00b0 FB68 ldr r3, [r7, #12] 517 00b2 1B68 ldr r3, [r3] 518 00b4 DA68 ldr r2, [r3, #12] 519 00b6 FB68 ldr r3, [r7, #12] 520 00b8 1B68 ldr r3, [r3] 521 00ba 42F40052 orr r2, r2, #8192 522 00be DA60 str r2, [r3, #12] 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 523 .loc 1 652 20 524 00c0 FB68 ldr r3, [r7, #12] 525 00c2 0022 movs r2, #0 526 00c4 1A64 str r2, [r3, #64] 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 527 .loc 1 653 17 528 00c6 FB68 ldr r3, [r7, #12] 529 00c8 2022 movs r2, #32 530 00ca 83F83D20 strb r2, [r3, #61] 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 531 .loc 1 654 18 532 00ce FB68 ldr r3, [r7, #12] 533 00d0 2022 movs r2, #32 534 00d2 83F83E20 strb r2, [r3, #62] 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 535 .loc 1 656 10 536 00d6 0023 movs r3, #0 537 .L15: 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 538 .loc 1 657 1 539 00d8 1846 mov r0, r3 540 00da 1037 adds r7, r7, #16 541 .LCFI18: 542 .cfi_def_cfa_offset 8 543 00dc BD46 mov sp, r7 544 .LCFI19: 545 .cfi_def_cfa_register 13 546 @ sp needed 547 00de 80BD pop {r7, pc} ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 22 548 .cfi_endproc 549 .LFE238: 551 .section .text.HAL_UART_DeInit,"ax",%progbits 552 .align 1 553 .global HAL_UART_DeInit 554 .syntax unified 555 .thumb 556 .thumb_func 558 HAL_UART_DeInit: 559 .LFB239: 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DeInitializes the UART peripheral. 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 560 .loc 1 666 1 561 .cfi_startproc 562 @ args = 0, pretend = 0, frame = 8 563 @ frame_needed = 1, uses_anonymous_args = 0 564 0000 80B5 push {r7, lr} 565 .LCFI20: 566 .cfi_def_cfa_offset 8 567 .cfi_offset 7, -8 568 .cfi_offset 14, -4 569 0002 82B0 sub sp, sp, #8 570 .LCFI21: 571 .cfi_def_cfa_offset 16 572 0004 00AF add r7, sp, #0 573 .LCFI22: 574 .cfi_def_cfa_register 7 575 0006 7860 str r0, [r7, #4] 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 576 .loc 1 668 6 577 0008 7B68 ldr r3, [r7, #4] 578 000a 002B cmp r3, #0 579 000c 01D1 bne .L18 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 580 .loc 1 670 12 581 000e 0123 movs r3, #1 582 0010 21E0 b .L19 583 .L18: 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 584 .loc 1 676 17 585 0012 7B68 ldr r3, [r7, #4] 586 0014 2422 movs r2, #36 587 0016 83F83D20 strb r2, [r3, #61] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 23 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the Peripheral */ 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 588 .loc 1 679 3 589 001a 7B68 ldr r3, [r7, #4] 590 001c 1B68 ldr r3, [r3] 591 001e DA68 ldr r2, [r3, #12] 592 0020 7B68 ldr r3, [r7, #4] 593 0022 1B68 ldr r3, [r3] 594 0024 22F40052 bic r2, r2, #8192 595 0028 DA60 str r2, [r3, #12] 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL) 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback(huart); 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspDeInit(huart); 596 .loc 1 690 3 597 002a 7868 ldr r0, [r7, #4] 598 002c FFF7FEFF bl HAL_UART_MspDeInit 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 599 .loc 1 693 20 600 0030 7B68 ldr r3, [r7, #4] 601 0032 0022 movs r2, #0 602 0034 1A64 str r2, [r3, #64] 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 603 .loc 1 694 17 604 0036 7B68 ldr r3, [r7, #4] 605 0038 0022 movs r2, #0 606 003a 83F83D20 strb r2, [r3, #61] 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 607 .loc 1 695 18 608 003e 7B68 ldr r3, [r7, #4] 609 0040 0022 movs r2, #0 610 0042 83F83E20 strb r2, [r3, #62] 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 611 .loc 1 696 24 612 0046 7B68 ldr r3, [r7, #4] 613 0048 0022 movs r2, #0 614 004a 1A63 str r2, [r3, #48] 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlock */ 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 615 .loc 1 699 3 616 004c 7B68 ldr r3, [r7, #4] 617 004e 0022 movs r2, #0 618 0050 83F83C20 strb r2, [r3, #60] 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 619 .loc 1 701 10 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 24 620 0054 0023 movs r3, #0 621 .L19: 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 622 .loc 1 702 1 623 0056 1846 mov r0, r3 624 0058 0837 adds r7, r7, #8 625 .LCFI23: 626 .cfi_def_cfa_offset 8 627 005a BD46 mov sp, r7 628 .LCFI24: 629 .cfi_def_cfa_register 13 630 @ sp needed 631 005c 80BD pop {r7, pc} 632 .cfi_endproc 633 .LFE239: 635 .section .text.HAL_UART_MspInit,"ax",%progbits 636 .align 1 637 .weak HAL_UART_MspInit 638 .syntax unified 639 .thumb 640 .thumb_func 642 HAL_UART_MspInit: 643 .LFB240: 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP Init. 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 644 .loc 1 711 1 645 .cfi_startproc 646 @ args = 0, pretend = 0, frame = 8 647 @ frame_needed = 1, uses_anonymous_args = 0 648 @ link register save eliminated. 649 0000 80B4 push {r7} 650 .LCFI25: 651 .cfi_def_cfa_offset 4 652 .cfi_offset 7, -4 653 0002 83B0 sub sp, sp, #12 654 .LCFI26: 655 .cfi_def_cfa_offset 16 656 0004 00AF add r7, sp, #0 657 .LCFI27: 658 .cfi_def_cfa_register 7 659 0006 7860 str r0, [r7, #4] 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspInit could be implemented in the user file 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 660 .loc 1 717 1 661 0008 00BF nop 662 000a 0C37 adds r7, r7, #12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 25 663 .LCFI28: 664 .cfi_def_cfa_offset 4 665 000c BD46 mov sp, r7 666 .LCFI29: 667 .cfi_def_cfa_register 13 668 @ sp needed 669 000e 5DF8047B ldr r7, [sp], #4 670 .LCFI30: 671 .cfi_restore 7 672 .cfi_def_cfa_offset 0 673 0012 7047 bx lr 674 .cfi_endproc 675 .LFE240: 677 .section .text.HAL_UART_MspDeInit,"ax",%progbits 678 .align 1 679 .weak HAL_UART_MspDeInit 680 .syntax unified 681 .thumb 682 .thumb_func 684 HAL_UART_MspDeInit: 685 .LFB241: 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP DeInit. 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 686 .loc 1 726 1 687 .cfi_startproc 688 @ args = 0, pretend = 0, frame = 8 689 @ frame_needed = 1, uses_anonymous_args = 0 690 @ link register save eliminated. 691 0000 80B4 push {r7} 692 .LCFI31: 693 .cfi_def_cfa_offset 4 694 .cfi_offset 7, -4 695 0002 83B0 sub sp, sp, #12 696 .LCFI32: 697 .cfi_def_cfa_offset 16 698 0004 00AF add r7, sp, #0 699 .LCFI33: 700 .cfi_def_cfa_register 7 701 0006 7860 str r0, [r7, #4] 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspDeInit could be implemented in the user file 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 702 .loc 1 732 1 703 0008 00BF nop 704 000a 0C37 adds r7, r7, #12 705 .LCFI34: 706 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 26 707 000c BD46 mov sp, r7 708 .LCFI35: 709 .cfi_def_cfa_register 13 710 @ sp needed 711 000e 5DF8047B ldr r7, [sp], #4 712 .LCFI36: 713 .cfi_restore 7 714 .cfi_def_cfa_offset 0 715 0012 7047 bx lr 716 .cfi_endproc 717 .LFE241: 719 .section .text.HAL_UART_Transmit,"ax",%progbits 720 .align 1 721 .global HAL_UART_Transmit 722 .syntax unified 723 .thumb 724 .thumb_func 726 HAL_UART_Transmit: 727 .LFB242: 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Callback 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback pointer to the Callback function 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pUART_CallbackTypeDef pCallback) 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 27 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback; 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = pCallback; 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = pCallback; 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = pCallback; 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = pCallback; 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback; 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback; 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback; 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET) 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 28 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Unregister an UART Callback 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState) 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 29 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak Abort 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak Abort 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState) 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 30 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Rx Event Callback 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Uart handle 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback Pointer to the Rx Event Callback function 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = pCallback; 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 31 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UnRegister the UART Rx Event Callback 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Rx Event Callback is redirected to the weak HAL_UARTEx_RxEventCallback() predefine 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Uart handle 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Transmit and Receive functions 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### IO operation functions ##### 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and Half duplex data transfers. 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two modes of transfer: 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 32 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** after finishing transfer. 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or DMA, these API's return the HAL status. 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using DMA mode. 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will be executed respectively at the end of the transmit or receive process 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API's are : 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit() 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive() 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are : 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT() 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_IT() 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_IRQHandler() 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are : 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA() 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA() 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAPause() 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAResume() 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAStop() 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback() 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback() 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback() 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback() 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback() 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's : 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort() 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit() 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive() 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort_IT() 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT() 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT() 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For Abort services based on interrupts (HAL_UART_Abortxxx_IT), a set of Abort Complete Call 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback() 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback() 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback() 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A Rx Event Reception Callback (Rx event notification) is available for Non_Blocking modes o 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_RxEventCallback() 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Errors are handled as follows : 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to be evaluated by user : this concerns Frame Error, Parity Error or Noise Error in Inte 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Received character is then retrieved and stored in Rx buffer, Error code is set to allow 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_ErrorCallback() user callback is executed. Transfer is kept ongoing on UART 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 33 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() use 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process in parallel, the UART state HAL_UART_STATE_BUSY_TX_RX can't be useful. 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in blocking mode. 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 728 .loc 1 1137 1 729 .cfi_startproc 730 @ args = 0, pretend = 0, frame = 32 731 @ frame_needed = 1, uses_anonymous_args = 0 732 0000 80B5 push {r7, lr} 733 .LCFI37: 734 .cfi_def_cfa_offset 8 735 .cfi_offset 7, -8 736 .cfi_offset 14, -4 737 0002 8AB0 sub sp, sp, #40 738 .LCFI38: 739 .cfi_def_cfa_offset 48 740 0004 02AF add r7, sp, #8 741 .LCFI39: 742 .cfi_def_cfa 7, 40 743 0006 F860 str r0, [r7, #12] 744 0008 B960 str r1, [r7, #8] 745 000a 3B60 str r3, [r7] 746 000c 1346 mov r3, r2 @ movhi 747 000e FB80 strh r3, [r7, #6] @ movhi 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *pdata16bits; 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 748 .loc 1 1140 12 749 0010 0023 movs r3, #0 750 0012 7B61 str r3, [r7, #20] 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 751 .loc 1 1143 12 752 0014 FB68 ldr r3, [r7, #12] 753 0016 93F83D30 ldrb r3, [r3, #61] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 34 754 001a DBB2 uxtb r3, r3 755 .loc 1 1143 6 756 001c 202B cmp r3, #32 757 001e 7CD1 bne .L23 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 758 .loc 1 1145 8 759 0020 BB68 ldr r3, [r7, #8] 760 0022 002B cmp r3, #0 761 0024 02D0 beq .L24 762 .loc 1 1145 25 discriminator 1 763 0026 FB88 ldrh r3, [r7, #6] 764 0028 002B cmp r3, #0 765 002a 01D1 bne .L25 766 .L24: 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 767 .loc 1 1147 15 768 002c 0123 movs r3, #1 769 002e 75E0 b .L26 770 .L25: 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 771 .loc 1 1151 5 772 0030 FB68 ldr r3, [r7, #12] 773 0032 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 774 0036 012B cmp r3, #1 775 0038 01D1 bne .L27 776 .loc 1 1151 5 is_stmt 0 discriminator 1 777 003a 0223 movs r3, #2 778 003c 6EE0 b .L26 779 .L27: 780 .loc 1 1151 5 discriminator 2 781 003e FB68 ldr r3, [r7, #12] 782 0040 0122 movs r2, #1 783 0042 83F83C20 strb r2, [r3, #60] 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 784 .loc 1 1153 22 is_stmt 1 discriminator 2 785 0046 FB68 ldr r3, [r7, #12] 786 0048 0022 movs r2, #0 787 004a 1A64 str r2, [r3, #64] 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 788 .loc 1 1154 19 discriminator 2 789 004c FB68 ldr r3, [r7, #12] 790 004e 2122 movs r2, #33 791 0050 83F83D20 strb r2, [r3, #61] 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 792 .loc 1 1157 17 discriminator 2 793 0054 FFF7FEFF bl HAL_GetTick 794 0058 7861 str r0, [r7, #20] 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 35 795 .loc 1 1159 23 discriminator 2 796 005a FB68 ldr r3, [r7, #12] 797 005c FA88 ldrh r2, [r7, #6] @ movhi 798 005e 9A84 strh r2, [r3, #36] @ movhi 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 799 .loc 1 1160 24 discriminator 2 800 0060 FB68 ldr r3, [r7, #12] 801 0062 FA88 ldrh r2, [r7, #6] @ movhi 802 0064 DA84 strh r2, [r3, #38] @ movhi 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 803 .loc 1 1163 21 discriminator 2 804 0066 FB68 ldr r3, [r7, #12] 805 0068 9B68 ldr r3, [r3, #8] 806 .loc 1 1163 8 discriminator 2 807 006a B3F5805F cmp r3, #4096 808 006e 08D1 bne .L28 809 .loc 1 1163 71 discriminator 1 810 0070 FB68 ldr r3, [r7, #12] 811 0072 1B69 ldr r3, [r3, #16] 812 .loc 1 1163 56 discriminator 1 813 0074 002B cmp r3, #0 814 0076 04D1 bne .L28 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 815 .loc 1 1165 19 816 0078 0023 movs r3, #0 817 007a FB61 str r3, [r7, #28] 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 818 .loc 1 1166 19 819 007c BB68 ldr r3, [r7, #8] 820 007e BB61 str r3, [r7, #24] 821 0080 03E0 b .L29 822 .L28: 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 823 .loc 1 1170 19 824 0082 BB68 ldr r3, [r7, #8] 825 0084 FB61 str r3, [r7, #28] 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 826 .loc 1 1171 19 827 0086 0023 movs r3, #0 828 0088 BB61 str r3, [r7, #24] 829 .L29: 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 830 .loc 1 1175 5 831 008a FB68 ldr r3, [r7, #12] 832 008c 0022 movs r2, #0 833 008e 83F83C20 strb r2, [r3, #60] 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 36 834 .loc 1 1177 11 835 0092 2AE0 b .L30 836 .L34: 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) 837 .loc 1 1179 11 838 0094 3B68 ldr r3, [r7] 839 0096 0093 str r3, [sp] 840 0098 7B69 ldr r3, [r7, #20] 841 009a 0022 movs r2, #0 842 009c 8021 movs r1, #128 843 009e F868 ldr r0, [r7, #12] 844 00a0 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 845 00a4 0346 mov r3, r0 846 .loc 1 1179 10 847 00a6 002B cmp r3, #0 848 00a8 01D0 beq .L31 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 849 .loc 1 1181 16 850 00aa 0323 movs r3, #3 851 00ac 36E0 b .L26 852 .L31: 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 853 .loc 1 1183 10 854 00ae FB69 ldr r3, [r7, #28] 855 00b0 002B cmp r3, #0 856 00b2 0BD1 bne .L32 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); 857 .loc 1 1185 42 858 00b4 BB69 ldr r3, [r7, #24] 859 00b6 1B88 ldrh r3, [r3] 860 .loc 1 1185 31 861 00b8 1A46 mov r2, r3 862 .loc 1 1185 14 863 00ba FB68 ldr r3, [r7, #12] 864 00bc 1B68 ldr r3, [r3] 865 .loc 1 1185 31 866 00be C2F30802 ubfx r2, r2, #0, #9 867 .loc 1 1185 29 868 00c2 5A60 str r2, [r3, #4] 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 869 .loc 1 1186 20 870 00c4 BB69 ldr r3, [r7, #24] 871 00c6 0233 adds r3, r3, #2 872 00c8 BB61 str r3, [r7, #24] 873 00ca 07E0 b .L33 874 .L32: 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); 875 .loc 1 1190 41 876 00cc FB69 ldr r3, [r7, #28] 877 00ce 1A78 ldrb r2, [r3] @ zero_extendqisi2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 37 878 .loc 1 1190 14 879 00d0 FB68 ldr r3, [r7, #12] 880 00d2 1B68 ldr r3, [r3] 881 .loc 1 1190 29 882 00d4 5A60 str r2, [r3, #4] 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 883 .loc 1 1191 19 884 00d6 FB69 ldr r3, [r7, #28] 885 00d8 0133 adds r3, r3, #1 886 00da FB61 str r3, [r7, #28] 887 .L33: 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount--; 888 .loc 1 1193 12 889 00dc FB68 ldr r3, [r7, #12] 890 00de DB8C ldrh r3, [r3, #38] @ movhi 891 00e0 9BB2 uxth r3, r3 892 .loc 1 1193 25 893 00e2 013B subs r3, r3, #1 894 00e4 9AB2 uxth r2, r3 895 00e6 FB68 ldr r3, [r7, #12] 896 00e8 DA84 strh r2, [r3, #38] @ movhi 897 .L30: 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 898 .loc 1 1177 17 899 00ea FB68 ldr r3, [r7, #12] 900 00ec DB8C ldrh r3, [r3, #38] @ movhi 901 00ee 9BB2 uxth r3, r3 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 902 .loc 1 1177 11 903 00f0 002B cmp r3, #0 904 00f2 CFD1 bne .L34 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) 905 .loc 1 1196 9 906 00f4 3B68 ldr r3, [r7] 907 00f6 0093 str r3, [sp] 908 00f8 7B69 ldr r3, [r7, #20] 909 00fa 0022 movs r2, #0 910 00fc 4021 movs r1, #64 911 00fe F868 ldr r0, [r7, #12] 912 0100 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 913 0104 0346 mov r3, r0 914 .loc 1 1196 8 915 0106 002B cmp r3, #0 916 0108 01D0 beq .L35 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 917 .loc 1 1198 14 918 010a 0323 movs r3, #3 919 010c 06E0 b .L26 920 .L35: 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 38 921 .loc 1 1202 19 922 010e FB68 ldr r3, [r7, #12] 923 0110 2022 movs r2, #32 924 0112 83F83D20 strb r2, [r3, #61] 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 925 .loc 1 1204 12 926 0116 0023 movs r3, #0 927 0118 00E0 b .L26 928 .L23: 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 929 .loc 1 1208 12 930 011a 0223 movs r3, #2 931 .L26: 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 932 .loc 1 1210 1 933 011c 1846 mov r0, r3 934 011e 2037 adds r7, r7, #32 935 .LCFI40: 936 .cfi_def_cfa_offset 8 937 0120 BD46 mov sp, r7 938 .LCFI41: 939 .cfi_def_cfa_register 13 940 @ sp needed 941 0122 80BD pop {r7, pc} 942 .cfi_endproc 943 .LFE242: 945 .section .text.HAL_UART_Receive,"ax",%progbits 946 .align 1 947 .global HAL_UART_Receive 948 .syntax unified 949 .thumb 950 .thumb_func 952 HAL_UART_Receive: 953 .LFB243: 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in blocking mode. 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 954 .loc 1 1225 1 955 .cfi_startproc 956 @ args = 0, pretend = 0, frame = 32 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 39 957 @ frame_needed = 1, uses_anonymous_args = 0 958 0000 80B5 push {r7, lr} 959 .LCFI42: 960 .cfi_def_cfa_offset 8 961 .cfi_offset 7, -8 962 .cfi_offset 14, -4 963 0002 8AB0 sub sp, sp, #40 964 .LCFI43: 965 .cfi_def_cfa_offset 48 966 0004 02AF add r7, sp, #8 967 .LCFI44: 968 .cfi_def_cfa 7, 40 969 0006 F860 str r0, [r7, #12] 970 0008 B960 str r1, [r7, #8] 971 000a 3B60 str r3, [r7] 972 000c 1346 mov r3, r2 @ movhi 973 000e FB80 strh r3, [r7, #6] @ movhi 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 974 .loc 1 1228 12 975 0010 0023 movs r3, #0 976 0012 7B61 str r3, [r7, #20] 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 977 .loc 1 1231 12 978 0014 FB68 ldr r3, [r7, #12] 979 0016 93F83E30 ldrb r3, [r3, #62] 980 001a DBB2 uxtb r3, r3 981 .loc 1 1231 6 982 001c 202B cmp r3, #32 983 001e 40F08C80 bne .L37 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 984 .loc 1 1233 8 985 0022 BB68 ldr r3, [r7, #8] 986 0024 002B cmp r3, #0 987 0026 02D0 beq .L38 988 .loc 1 1233 25 discriminator 1 989 0028 FB88 ldrh r3, [r7, #6] 990 002a 002B cmp r3, #0 991 002c 01D1 bne .L39 992 .L38: 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 993 .loc 1 1235 15 994 002e 0123 movs r3, #1 995 0030 84E0 b .L40 996 .L39: 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 997 .loc 1 1239 5 998 0032 FB68 ldr r3, [r7, #12] 999 0034 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 40 1000 0038 012B cmp r3, #1 1001 003a 01D1 bne .L41 1002 .loc 1 1239 5 is_stmt 0 discriminator 1 1003 003c 0223 movs r3, #2 1004 003e 7DE0 b .L40 1005 .L41: 1006 .loc 1 1239 5 discriminator 2 1007 0040 FB68 ldr r3, [r7, #12] 1008 0042 0122 movs r2, #1 1009 0044 83F83C20 strb r2, [r3, #60] 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1010 .loc 1 1241 22 is_stmt 1 discriminator 2 1011 0048 FB68 ldr r3, [r7, #12] 1012 004a 0022 movs r2, #0 1013 004c 1A64 str r2, [r3, #64] 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1014 .loc 1 1242 20 discriminator 2 1015 004e FB68 ldr r3, [r7, #12] 1016 0050 2222 movs r2, #34 1017 0052 83F83E20 strb r2, [r3, #62] 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1018 .loc 1 1243 26 discriminator 2 1019 0056 FB68 ldr r3, [r7, #12] 1020 0058 0022 movs r2, #0 1021 005a 1A63 str r2, [r3, #48] 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1022 .loc 1 1246 17 discriminator 2 1023 005c FFF7FEFF bl HAL_GetTick 1024 0060 7861 str r0, [r7, #20] 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1025 .loc 1 1248 23 discriminator 2 1026 0062 FB68 ldr r3, [r7, #12] 1027 0064 FA88 ldrh r2, [r7, #6] @ movhi 1028 0066 9A85 strh r2, [r3, #44] @ movhi 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1029 .loc 1 1249 24 discriminator 2 1030 0068 FB68 ldr r3, [r7, #12] 1031 006a FA88 ldrh r2, [r7, #6] @ movhi 1032 006c DA85 strh r2, [r3, #46] @ movhi 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1033 .loc 1 1252 21 discriminator 2 1034 006e FB68 ldr r3, [r7, #12] 1035 0070 9B68 ldr r3, [r3, #8] 1036 .loc 1 1252 8 discriminator 2 1037 0072 B3F5805F cmp r3, #4096 1038 0076 08D1 bne .L42 1039 .loc 1 1252 71 discriminator 1 1040 0078 FB68 ldr r3, [r7, #12] 1041 007a 1B69 ldr r3, [r3, #16] 1042 .loc 1 1252 56 discriminator 1 1043 007c 002B cmp r3, #0 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 41 1044 007e 04D1 bne .L42 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 1045 .loc 1 1254 19 1046 0080 0023 movs r3, #0 1047 0082 FB61 str r3, [r7, #28] 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1048 .loc 1 1255 19 1049 0084 BB68 ldr r3, [r7, #8] 1050 0086 BB61 str r3, [r7, #24] 1051 0088 03E0 b .L43 1052 .L42: 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 1053 .loc 1 1259 19 1054 008a BB68 ldr r3, [r7, #8] 1055 008c FB61 str r3, [r7, #28] 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 1056 .loc 1 1260 19 1057 008e 0023 movs r3, #0 1058 0090 BB61 str r3, [r7, #24] 1059 .L43: 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1060 .loc 1 1264 5 1061 0092 FB68 ldr r3, [r7, #12] 1062 0094 0022 movs r2, #0 1063 0096 83F83C20 strb r2, [r3, #60] 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the remain data to be received */ 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 1064 .loc 1 1267 11 1065 009a 43E0 b .L44 1066 .L51: 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 1067 .loc 1 1269 11 1068 009c 3B68 ldr r3, [r7] 1069 009e 0093 str r3, [sp] 1070 00a0 7B69 ldr r3, [r7, #20] 1071 00a2 0022 movs r2, #0 1072 00a4 2021 movs r1, #32 1073 00a6 F868 ldr r0, [r7, #12] 1074 00a8 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1075 00ac 0346 mov r3, r0 1076 .loc 1 1269 10 1077 00ae 002B cmp r3, #0 1078 00b0 01D0 beq .L45 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1079 .loc 1 1271 16 1080 00b2 0323 movs r3, #3 1081 00b4 42E0 b .L40 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 42 1082 .L45: 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 1083 .loc 1 1273 10 1084 00b6 FB69 ldr r3, [r7, #28] 1085 00b8 002B cmp r3, #0 1086 00ba 0CD1 bne .L46 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); 1087 .loc 1 1275 40 1088 00bc FB68 ldr r3, [r7, #12] 1089 00be 1B68 ldr r3, [r3] 1090 .loc 1 1275 50 1091 00c0 5B68 ldr r3, [r3, #4] 1092 .loc 1 1275 24 1093 00c2 9BB2 uxth r3, r3 1094 00c4 C3F30803 ubfx r3, r3, #0, #9 1095 00c8 9AB2 uxth r2, r3 1096 .loc 1 1275 22 1097 00ca BB69 ldr r3, [r7, #24] 1098 00cc 1A80 strh r2, [r3] @ movhi 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1099 .loc 1 1276 20 1100 00ce BB69 ldr r3, [r7, #24] 1101 00d0 0233 adds r3, r3, #2 1102 00d2 BB61 str r3, [r7, #24] 1103 00d4 1FE0 b .L47 1104 .L46: 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORD 1105 .loc 1 1280 25 1106 00d6 FB68 ldr r3, [r7, #12] 1107 00d8 9B68 ldr r3, [r3, #8] 1108 .loc 1 1280 12 1109 00da B3F5805F cmp r3, #4096 1110 00de 07D0 beq .L48 1111 .loc 1 1280 76 discriminator 1 1112 00e0 FB68 ldr r3, [r7, #12] 1113 00e2 9B68 ldr r3, [r3, #8] 1114 .loc 1 1280 60 discriminator 1 1115 00e4 002B cmp r3, #0 1116 00e6 0AD1 bne .L49 1117 .loc 1 1280 126 discriminator 2 1118 00e8 FB68 ldr r3, [r7, #12] 1119 00ea 1B69 ldr r3, [r3, #16] 1120 .loc 1 1280 111 discriminator 2 1121 00ec 002B cmp r3, #0 1122 00ee 06D1 bne .L49 1123 .L48: 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 1124 .loc 1 1282 40 1125 00f0 FB68 ldr r3, [r7, #12] 1126 00f2 1B68 ldr r3, [r3] 1127 .loc 1 1282 50 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 43 1128 00f4 5B68 ldr r3, [r3, #4] 1129 .loc 1 1282 25 1130 00f6 DAB2 uxtb r2, r3 1131 .loc 1 1282 23 1132 00f8 FB69 ldr r3, [r7, #28] 1133 00fa 1A70 strb r2, [r3] 1134 00fc 08E0 b .L50 1135 .L49: 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 1136 .loc 1 1286 40 1137 00fe FB68 ldr r3, [r7, #12] 1138 0100 1B68 ldr r3, [r3] 1139 .loc 1 1286 50 1140 0102 5B68 ldr r3, [r3, #4] 1141 .loc 1 1286 25 1142 0104 DBB2 uxtb r3, r3 1143 0106 03F07F03 and r3, r3, #127 1144 010a DAB2 uxtb r2, r3 1145 .loc 1 1286 23 1146 010c FB69 ldr r3, [r7, #28] 1147 010e 1A70 strb r2, [r3] 1148 .L50: 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1149 .loc 1 1288 19 1150 0110 FB69 ldr r3, [r7, #28] 1151 0112 0133 adds r3, r3, #1 1152 0114 FB61 str r3, [r7, #28] 1153 .L47: 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 1154 .loc 1 1290 12 1155 0116 FB68 ldr r3, [r7, #12] 1156 0118 DB8D ldrh r3, [r3, #46] @ movhi 1157 011a 9BB2 uxth r3, r3 1158 .loc 1 1290 25 1159 011c 013B subs r3, r3, #1 1160 011e 9AB2 uxth r2, r3 1161 0120 FB68 ldr r3, [r7, #12] 1162 0122 DA85 strh r2, [r3, #46] @ movhi 1163 .L44: 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1164 .loc 1 1267 17 1165 0124 FB68 ldr r3, [r7, #12] 1166 0126 DB8D ldrh r3, [r3, #46] @ movhi 1167 0128 9BB2 uxth r3, r3 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1168 .loc 1 1267 11 1169 012a 002B cmp r3, #0 1170 012c B6D1 bne .L51 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 44 1171 .loc 1 1294 20 1172 012e FB68 ldr r3, [r7, #12] 1173 0130 2022 movs r2, #32 1174 0132 83F83E20 strb r2, [r3, #62] 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1175 .loc 1 1296 12 1176 0136 0023 movs r3, #0 1177 0138 00E0 b .L40 1178 .L37: 1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1179 .loc 1 1300 12 1180 013a 0223 movs r3, #2 1181 .L40: 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1182 .loc 1 1302 1 1183 013c 1846 mov r0, r3 1184 013e 2037 adds r7, r7, #32 1185 .LCFI45: 1186 .cfi_def_cfa_offset 8 1187 0140 BD46 mov sp, r7 1188 .LCFI46: 1189 .cfi_def_cfa_register 13 1190 @ sp needed 1191 0142 80BD pop {r7, pc} 1192 .cfi_endproc 1193 .LFE243: 1195 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1196 .align 1 1197 .global HAL_UART_Transmit_IT 1198 .syntax unified 1199 .thumb 1200 .thumb_func 1202 HAL_UART_Transmit_IT: 1203 .LFB244: 1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si 1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1204 .loc 1 1316 1 1205 .cfi_startproc 1206 @ args = 0, pretend = 0, frame = 16 1207 @ frame_needed = 1, uses_anonymous_args = 0 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 45 1208 @ link register save eliminated. 1209 0000 80B4 push {r7} 1210 .LCFI47: 1211 .cfi_def_cfa_offset 4 1212 .cfi_offset 7, -4 1213 0002 85B0 sub sp, sp, #20 1214 .LCFI48: 1215 .cfi_def_cfa_offset 24 1216 0004 00AF add r7, sp, #0 1217 .LCFI49: 1218 .cfi_def_cfa_register 7 1219 0006 F860 str r0, [r7, #12] 1220 0008 B960 str r1, [r7, #8] 1221 000a 1346 mov r3, r2 1222 000c FB80 strh r3, [r7, #6] @ movhi 1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1223 .loc 1 1318 12 1224 000e FB68 ldr r3, [r7, #12] 1225 0010 93F83D30 ldrb r3, [r3, #61] 1226 0014 DBB2 uxtb r3, r3 1227 .loc 1 1318 6 1228 0016 202B cmp r3, #32 1229 0018 30D1 bne .L53 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1230 .loc 1 1320 8 1231 001a BB68 ldr r3, [r7, #8] 1232 001c 002B cmp r3, #0 1233 001e 02D0 beq .L54 1234 .loc 1 1320 25 discriminator 1 1235 0020 FB88 ldrh r3, [r7, #6] 1236 0022 002B cmp r3, #0 1237 0024 01D1 bne .L55 1238 .L54: 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1239 .loc 1 1322 14 1240 0026 0123 movs r3, #1 1241 0028 29E0 b .L56 1242 .L55: 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1243 .loc 1 1326 5 1244 002a FB68 ldr r3, [r7, #12] 1245 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 1246 0030 012B cmp r3, #1 1247 0032 01D1 bne .L57 1248 .loc 1 1326 5 is_stmt 0 discriminator 1 1249 0034 0223 movs r3, #2 1250 0036 22E0 b .L56 1251 .L57: 1252 .loc 1 1326 5 discriminator 2 1253 0038 FB68 ldr r3, [r7, #12] 1254 003a 0122 movs r2, #1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 46 1255 003c 83F83C20 strb r2, [r3, #60] 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1256 .loc 1 1328 23 is_stmt 1 discriminator 2 1257 0040 FB68 ldr r3, [r7, #12] 1258 0042 BA68 ldr r2, [r7, #8] 1259 0044 1A62 str r2, [r3, #32] 1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1260 .loc 1 1329 23 discriminator 2 1261 0046 FB68 ldr r3, [r7, #12] 1262 0048 FA88 ldrh r2, [r7, #6] @ movhi 1263 004a 9A84 strh r2, [r3, #36] @ movhi 1330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1264 .loc 1 1330 24 discriminator 2 1265 004c FB68 ldr r3, [r7, #12] 1266 004e FA88 ldrh r2, [r7, #6] @ movhi 1267 0050 DA84 strh r2, [r3, #38] @ movhi 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1268 .loc 1 1332 22 discriminator 2 1269 0052 FB68 ldr r3, [r7, #12] 1270 0054 0022 movs r2, #0 1271 0056 1A64 str r2, [r3, #64] 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1272 .loc 1 1333 19 discriminator 2 1273 0058 FB68 ldr r3, [r7, #12] 1274 005a 2122 movs r2, #33 1275 005c 83F83D20 strb r2, [r3, #61] 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1276 .loc 1 1336 5 discriminator 2 1277 0060 FB68 ldr r3, [r7, #12] 1278 0062 0022 movs r2, #0 1279 0064 83F83C20 strb r2, [r3, #60] 1337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit data register empty Interrupt */ 1339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); 1280 .loc 1 1339 5 discriminator 2 1281 0068 FB68 ldr r3, [r7, #12] 1282 006a 1B68 ldr r3, [r3] 1283 006c DA68 ldr r2, [r3, #12] 1284 006e FB68 ldr r3, [r7, #12] 1285 0070 1B68 ldr r3, [r3] 1286 0072 42F08002 orr r2, r2, #128 1287 0076 DA60 str r2, [r3, #12] 1340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1288 .loc 1 1341 12 discriminator 2 1289 0078 0023 movs r3, #0 1290 007a 00E0 b .L56 1291 .L53: 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1292 .loc 1 1345 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 47 1293 007c 0223 movs r3, #2 1294 .L56: 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1295 .loc 1 1347 1 1296 007e 1846 mov r0, r3 1297 0080 1437 adds r7, r7, #20 1298 .LCFI50: 1299 .cfi_def_cfa_offset 4 1300 0082 BD46 mov sp, r7 1301 .LCFI51: 1302 .cfi_def_cfa_register 13 1303 @ sp needed 1304 0084 5DF8047B ldr r7, [sp], #4 1305 .LCFI52: 1306 .cfi_restore 7 1307 .cfi_def_cfa_offset 0 1308 0088 7047 bx lr 1309 .cfi_endproc 1310 .LFE244: 1312 .section .text.HAL_UART_Receive_IT,"ax",%progbits 1313 .align 1 1314 .global HAL_UART_Receive_IT 1315 .syntax unified 1316 .thumb 1317 .thumb_func 1319 HAL_UART_Receive_IT: 1320 .LFB245: 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode. 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1321 .loc 1 1361 1 1322 .cfi_startproc 1323 @ args = 0, pretend = 0, frame = 16 1324 @ frame_needed = 1, uses_anonymous_args = 0 1325 0000 80B5 push {r7, lr} 1326 .LCFI53: 1327 .cfi_def_cfa_offset 8 1328 .cfi_offset 7, -8 1329 .cfi_offset 14, -4 1330 0002 84B0 sub sp, sp, #16 1331 .LCFI54: 1332 .cfi_def_cfa_offset 24 1333 0004 00AF add r7, sp, #0 1334 .LCFI55: 1335 .cfi_def_cfa_register 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 48 1336 0006 F860 str r0, [r7, #12] 1337 0008 B960 str r1, [r7, #8] 1338 000a 1346 mov r3, r2 1339 000c FB80 strh r3, [r7, #6] @ movhi 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1340 .loc 1 1363 12 1341 000e FB68 ldr r3, [r7, #12] 1342 0010 93F83E30 ldrb r3, [r3, #62] 1343 0014 DBB2 uxtb r3, r3 1344 .loc 1 1363 6 1345 0016 202B cmp r3, #32 1346 0018 1DD1 bne .L59 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1347 .loc 1 1365 8 1348 001a BB68 ldr r3, [r7, #8] 1349 001c 002B cmp r3, #0 1350 001e 02D0 beq .L60 1351 .loc 1 1365 25 discriminator 1 1352 0020 FB88 ldrh r3, [r7, #6] 1353 0022 002B cmp r3, #0 1354 0024 01D1 bne .L61 1355 .L60: 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1356 .loc 1 1367 14 1357 0026 0123 movs r3, #1 1358 0028 16E0 b .L62 1359 .L61: 1368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1360 .loc 1 1371 5 1361 002a FB68 ldr r3, [r7, #12] 1362 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 1363 0030 012B cmp r3, #1 1364 0032 01D1 bne .L63 1365 .loc 1 1371 5 is_stmt 0 discriminator 1 1366 0034 0223 movs r3, #2 1367 0036 0FE0 b .L62 1368 .L63: 1369 .loc 1 1371 5 discriminator 2 1370 0038 FB68 ldr r3, [r7, #12] 1371 003a 0122 movs r2, #1 1372 003c 83F83C20 strb r2, [r3, #60] 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to Standard reception */ 1374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1373 .loc 1 1374 26 is_stmt 1 discriminator 2 1374 0040 FB68 ldr r3, [r7, #12] 1375 0042 0022 movs r2, #0 1376 0044 1A63 str r2, [r3, #48] 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (UART_Start_Receive_IT(huart, pData, Size)); 1377 .loc 1 1376 13 discriminator 2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 49 1378 0046 FB88 ldrh r3, [r7, #6] 1379 0048 1A46 mov r2, r3 1380 004a B968 ldr r1, [r7, #8] 1381 004c F868 ldr r0, [r7, #12] 1382 004e FFF7FEFF bl UART_Start_Receive_IT 1383 0052 0346 mov r3, r0 1384 0054 00E0 b .L62 1385 .L59: 1377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1386 .loc 1 1380 12 1387 0056 0223 movs r3, #2 1388 .L62: 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1389 .loc 1 1382 1 1390 0058 1846 mov r0, r3 1391 005a 1037 adds r7, r7, #16 1392 .LCFI56: 1393 .cfi_def_cfa_offset 8 1394 005c BD46 mov sp, r7 1395 .LCFI57: 1396 .cfi_def_cfa_register 13 1397 @ sp needed 1398 005e 80BD pop {r7, pc} 1399 .cfi_endproc 1400 .LFE245: 1402 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1403 .align 1 1404 .global HAL_UART_Transmit_DMA 1405 .syntax unified 1406 .thumb 1407 .thumb_func 1409 HAL_UART_Transmit_DMA: 1410 .LFB246: 1383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in DMA mode. 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1411 .loc 1 1396 1 1412 .cfi_startproc 1413 @ args = 0, pretend = 0, frame = 48 1414 @ frame_needed = 1, uses_anonymous_args = 0 1415 0000 80B5 push {r7, lr} 1416 .LCFI58: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 50 1417 .cfi_def_cfa_offset 8 1418 .cfi_offset 7, -8 1419 .cfi_offset 14, -4 1420 0002 8CB0 sub sp, sp, #48 1421 .LCFI59: 1422 .cfi_def_cfa_offset 56 1423 0004 00AF add r7, sp, #0 1424 .LCFI60: 1425 .cfi_def_cfa_register 7 1426 0006 F860 str r0, [r7, #12] 1427 0008 B960 str r1, [r7, #8] 1428 000a 1346 mov r3, r2 1429 000c FB80 strh r3, [r7, #6] @ movhi 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1430 .loc 1 1400 12 1431 000e FB68 ldr r3, [r7, #12] 1432 0010 93F83D30 ldrb r3, [r3, #61] 1433 0014 DBB2 uxtb r3, r3 1434 .loc 1 1400 6 1435 0016 202B cmp r3, #32 1436 0018 65D1 bne .L65 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1437 .loc 1 1402 16 1438 001a BB68 ldr r3, [r7, #8] 1439 .loc 1 1402 8 1440 001c 002B cmp r3, #0 1441 001e 02D0 beq .L66 1442 .loc 1 1402 25 discriminator 1 1443 0020 FB88 ldrh r3, [r7, #6] 1444 0022 002B cmp r3, #0 1445 0024 01D1 bne .L67 1446 .L66: 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1447 .loc 1 1404 14 1448 0026 0123 movs r3, #1 1449 0028 5EE0 b .L68 1450 .L67: 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1451 .loc 1 1408 5 1452 002a FB68 ldr r3, [r7, #12] 1453 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 1454 0030 012B cmp r3, #1 1455 0032 01D1 bne .L69 1456 .loc 1 1408 5 is_stmt 0 discriminator 1 1457 0034 0223 movs r3, #2 1458 0036 57E0 b .L68 1459 .L69: 1460 .loc 1 1408 5 discriminator 2 1461 0038 FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 51 1462 003a 0122 movs r2, #1 1463 003c 83F83C20 strb r2, [r3, #60] 1409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1464 .loc 1 1410 23 is_stmt 1 discriminator 2 1465 0040 BA68 ldr r2, [r7, #8] 1466 0042 FB68 ldr r3, [r7, #12] 1467 0044 1A62 str r2, [r3, #32] 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1468 .loc 1 1411 23 discriminator 2 1469 0046 FB68 ldr r3, [r7, #12] 1470 0048 FA88 ldrh r2, [r7, #6] @ movhi 1471 004a 9A84 strh r2, [r3, #36] @ movhi 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1472 .loc 1 1412 24 discriminator 2 1473 004c FB68 ldr r3, [r7, #12] 1474 004e FA88 ldrh r2, [r7, #6] @ movhi 1475 0050 DA84 strh r2, [r3, #38] @ movhi 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1476 .loc 1 1414 22 discriminator 2 1477 0052 FB68 ldr r3, [r7, #12] 1478 0054 0022 movs r2, #0 1479 0056 1A64 str r2, [r3, #64] 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1480 .loc 1 1415 19 discriminator 2 1481 0058 FB68 ldr r3, [r7, #12] 1482 005a 2122 movs r2, #33 1483 005c 83F83D20 strb r2, [r3, #61] 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; 1484 .loc 1 1418 10 discriminator 2 1485 0060 FB68 ldr r3, [r7, #12] 1486 0062 5B6B ldr r3, [r3, #52] 1487 .loc 1 1418 37 discriminator 2 1488 0064 224A ldr r2, .L73 1489 0066 DA63 str r2, [r3, #60] 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 1421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; 1490 .loc 1 1421 10 discriminator 2 1491 0068 FB68 ldr r3, [r7, #12] 1492 006a 5B6B ldr r3, [r3, #52] 1493 .loc 1 1421 41 discriminator 2 1494 006c 214A ldr r2, .L73+4 1495 006e 1A64 str r2, [r3, #64] 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 1424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError; 1496 .loc 1 1424 10 discriminator 2 1497 0070 FB68 ldr r3, [r7, #12] 1498 0072 5B6B ldr r3, [r3, #52] 1499 .loc 1 1424 38 discriminator 2 1500 0074 204A ldr r2, .L73+8 1501 0076 DA64 str r2, [r3, #76] 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 52 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1502 .loc 1 1427 10 discriminator 2 1503 0078 FB68 ldr r3, [r7, #12] 1504 007a 5B6B ldr r3, [r3, #52] 1505 .loc 1 1427 38 discriminator 2 1506 007c 0022 movs r2, #0 1507 007e 1A65 str r2, [r3, #80] 1428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART transmit DMA stream */ 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (const uint32_t *)&pData; 1508 .loc 1 1430 9 discriminator 2 1509 0080 07F10803 add r3, r7, #8 1510 0084 FB62 str r3, [r7, #44] 1431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); 1511 .loc 1 1431 5 discriminator 2 1512 0086 FB68 ldr r3, [r7, #12] 1513 0088 586B ldr r0, [r3, #52] 1514 008a FB6A ldr r3, [r7, #44] 1515 008c 1968 ldr r1, [r3] 1516 .loc 1 1431 77 discriminator 2 1517 008e FB68 ldr r3, [r7, #12] 1518 0090 1B68 ldr r3, [r3] 1519 .loc 1 1431 71 discriminator 2 1520 0092 0433 adds r3, r3, #4 1521 .loc 1 1431 5 discriminator 2 1522 0094 1A46 mov r2, r3 1523 0096 FB88 ldrh r3, [r7, #6] 1524 0098 FFF7FEFF bl HAL_DMA_Start_IT 1432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the TC flag in the SR register by writing 0 to it */ 1434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); 1525 .loc 1 1434 5 discriminator 2 1526 009c FB68 ldr r3, [r7, #12] 1527 009e 1B68 ldr r3, [r3] 1528 00a0 6FF04002 mvn r2, #64 1529 00a4 1A60 str r2, [r3] 1435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1530 .loc 1 1437 5 discriminator 2 1531 00a6 FB68 ldr r3, [r7, #12] 1532 00a8 0022 movs r2, #0 1533 00aa 83F83C20 strb r2, [r3, #60] 1534 .L72: 1535 .LBB320: 1438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 1441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1536 .loc 1 1441 5 discriminator 1 1537 00ae FB68 ldr r3, [r7, #12] 1538 00b0 1B68 ldr r3, [r3] 1539 00b2 1433 adds r3, r3, #20 1540 00b4 BB61 str r3, [r7, #24] 1541 .LBB321: 1542 .LBB322: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 53 1543 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.0.4 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 09. April 2018 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2018 Arm Limited. All rights reserved. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 24:Drivers/CMSIS/Include/cmsis_gcc.h **** 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H 27:Drivers/CMSIS/Include/cmsis_gcc.h **** 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 33:Drivers/CMSIS/Include/cmsis_gcc.h **** 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 38:Drivers/CMSIS/Include/cmsis_gcc.h **** 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 54 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 55 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** 117:Drivers/CMSIS/Include/cmsis_gcc.h **** 118:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################### Core Function Access ########################### */ 119:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \ingroup CMSIS_Core_FunctionInterface 120:Drivers/CMSIS/Include/cmsis_gcc.h **** \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions 121:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 122:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable IRQ Interrupts 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables IRQ interrupts by clearing the I-bit in the CPSR. 127:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 128:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 129:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_irq(void) 130:Drivers/CMSIS/Include/cmsis_gcc.h **** { 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie i" : : : "memory"); 132:Drivers/CMSIS/Include/cmsis_gcc.h **** } 133:Drivers/CMSIS/Include/cmsis_gcc.h **** 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 136:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable IRQ Interrupts 137:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables IRQ interrupts by setting the I-bit in the CPSR. 138:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 139:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 140:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_irq(void) 141:Drivers/CMSIS/Include/cmsis_gcc.h **** { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid i" : : : "memory"); 143:Drivers/CMSIS/Include/cmsis_gcc.h **** } 144:Drivers/CMSIS/Include/cmsis_gcc.h **** 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 147:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register 148:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the Control Register. 149:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Control Register value 150:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 151:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) 152:Drivers/CMSIS/Include/cmsis_gcc.h **** { 153:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 154:Drivers/CMSIS/Include/cmsis_gcc.h **** 155:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control" : "=r" (result) ); 156:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 157:Drivers/CMSIS/Include/cmsis_gcc.h **** } 158:Drivers/CMSIS/Include/cmsis_gcc.h **** 159:Drivers/CMSIS/Include/cmsis_gcc.h **** 160:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 161:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 162:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Control Register (non-secure) 163:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the non-secure Control Register when in secure mode. 164:Drivers/CMSIS/Include/cmsis_gcc.h **** \return non-secure Control Register value 165:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 166:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) 167:Drivers/CMSIS/Include/cmsis_gcc.h **** { 168:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 169:Drivers/CMSIS/Include/cmsis_gcc.h **** 170:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 56 171:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 172:Drivers/CMSIS/Include/cmsis_gcc.h **** } 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 174:Drivers/CMSIS/Include/cmsis_gcc.h **** 175:Drivers/CMSIS/Include/cmsis_gcc.h **** 176:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register 178:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the Control Register. 179:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 180:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 181:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) 182:Drivers/CMSIS/Include/cmsis_gcc.h **** { 183:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); 184:Drivers/CMSIS/Include/cmsis_gcc.h **** } 185:Drivers/CMSIS/Include/cmsis_gcc.h **** 186:Drivers/CMSIS/Include/cmsis_gcc.h **** 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 188:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 189:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Control Register (non-secure) 190:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Writes the given value to the non-secure Control Register when in secure state. 191:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] control Control Register value to set 192:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 193:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) 194:Drivers/CMSIS/Include/cmsis_gcc.h **** { 195:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); 196:Drivers/CMSIS/Include/cmsis_gcc.h **** } 197:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** 200:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 201:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get IPSR Register 202:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the IPSR Register. 203:Drivers/CMSIS/Include/cmsis_gcc.h **** \return IPSR Register value 204:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 205:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_IPSR(void) 206:Drivers/CMSIS/Include/cmsis_gcc.h **** { 207:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 208:Drivers/CMSIS/Include/cmsis_gcc.h **** 209:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); 210:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 211:Drivers/CMSIS/Include/cmsis_gcc.h **** } 212:Drivers/CMSIS/Include/cmsis_gcc.h **** 213:Drivers/CMSIS/Include/cmsis_gcc.h **** 214:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 215:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get APSR Register 216:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the APSR Register. 217:Drivers/CMSIS/Include/cmsis_gcc.h **** \return APSR Register value 218:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 219:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_APSR(void) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** { 221:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 222:Drivers/CMSIS/Include/cmsis_gcc.h **** 223:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, apsr" : "=r" (result) ); 224:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 225:Drivers/CMSIS/Include/cmsis_gcc.h **** } 226:Drivers/CMSIS/Include/cmsis_gcc.h **** 227:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 57 228:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 229:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get xPSR Register 230:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the content of the xPSR Register. 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \return xPSR Register value 232:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 233:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_xPSR(void) 234:Drivers/CMSIS/Include/cmsis_gcc.h **** { 235:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); 238:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 239:Drivers/CMSIS/Include/cmsis_gcc.h **** } 240:Drivers/CMSIS/Include/cmsis_gcc.h **** 241:Drivers/CMSIS/Include/cmsis_gcc.h **** 242:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 243:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer 244:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer (PSP). 245:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 246:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 247:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSP(void) 248:Drivers/CMSIS/Include/cmsis_gcc.h **** { 249:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp" : "=r" (result) ); 252:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 253:Drivers/CMSIS/Include/cmsis_gcc.h **** } 254:Drivers/CMSIS/Include/cmsis_gcc.h **** 255:Drivers/CMSIS/Include/cmsis_gcc.h **** 256:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 257:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 258:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer (non-secure) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure s 260:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSP Register value 261:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 262:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) 263:Drivers/CMSIS/Include/cmsis_gcc.h **** { 264:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 265:Drivers/CMSIS/Include/cmsis_gcc.h **** 266:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); 267:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 268:Drivers/CMSIS/Include/cmsis_gcc.h **** } 269:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 270:Drivers/CMSIS/Include/cmsis_gcc.h **** 271:Drivers/CMSIS/Include/cmsis_gcc.h **** 272:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 273:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer 274:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer (PSP). 275:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 276:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 277:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) 278:Drivers/CMSIS/Include/cmsis_gcc.h **** { 279:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); 280:Drivers/CMSIS/Include/cmsis_gcc.h **** } 281:Drivers/CMSIS/Include/cmsis_gcc.h **** 282:Drivers/CMSIS/Include/cmsis_gcc.h **** 283:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 284:Drivers/CMSIS/Include/cmsis_gcc.h **** /** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 58 285:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 286:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure sta 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfProcStack Process Stack Pointer value to set 288:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 289:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) 290:Drivers/CMSIS/Include/cmsis_gcc.h **** { 291:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); 292:Drivers/CMSIS/Include/cmsis_gcc.h **** } 293:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 294:Drivers/CMSIS/Include/cmsis_gcc.h **** 295:Drivers/CMSIS/Include/cmsis_gcc.h **** 296:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 297:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer 298:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer (MSP). 299:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 300:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 301:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSP(void) 302:Drivers/CMSIS/Include/cmsis_gcc.h **** { 303:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp" : "=r" (result) ); 306:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 307:Drivers/CMSIS/Include/cmsis_gcc.h **** } 308:Drivers/CMSIS/Include/cmsis_gcc.h **** 309:Drivers/CMSIS/Include/cmsis_gcc.h **** 310:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 311:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 312:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer (non-secure) 313:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure stat 314:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSP Register value 315:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 316:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) 317:Drivers/CMSIS/Include/cmsis_gcc.h **** { 318:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 319:Drivers/CMSIS/Include/cmsis_gcc.h **** 320:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); 321:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 322:Drivers/CMSIS/Include/cmsis_gcc.h **** } 323:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 324:Drivers/CMSIS/Include/cmsis_gcc.h **** 325:Drivers/CMSIS/Include/cmsis_gcc.h **** 326:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 327:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer 328:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer (MSP). 329:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set 330:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 331:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) 332:Drivers/CMSIS/Include/cmsis_gcc.h **** { 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** } 335:Drivers/CMSIS/Include/cmsis_gcc.h **** 336:Drivers/CMSIS/Include/cmsis_gcc.h **** 337:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 338:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer (non-secure) 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfMainStack Main Stack Pointer value to set ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 59 342:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 343:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) 344:Drivers/CMSIS/Include/cmsis_gcc.h **** { 345:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); 346:Drivers/CMSIS/Include/cmsis_gcc.h **** } 347:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 348:Drivers/CMSIS/Include/cmsis_gcc.h **** 349:Drivers/CMSIS/Include/cmsis_gcc.h **** 350:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 351:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 352:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Stack Pointer (non-secure) 353:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. 354:Drivers/CMSIS/Include/cmsis_gcc.h **** \return SP Register value 355:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 356:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) 357:Drivers/CMSIS/Include/cmsis_gcc.h **** { 358:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 359:Drivers/CMSIS/Include/cmsis_gcc.h **** 360:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); 361:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 362:Drivers/CMSIS/Include/cmsis_gcc.h **** } 363:Drivers/CMSIS/Include/cmsis_gcc.h **** 364:Drivers/CMSIS/Include/cmsis_gcc.h **** 365:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 366:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Stack Pointer (non-secure) 367:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] topOfStack Stack Pointer value to set 369:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 370:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) 371:Drivers/CMSIS/Include/cmsis_gcc.h **** { 372:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); 373:Drivers/CMSIS/Include/cmsis_gcc.h **** } 374:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 375:Drivers/CMSIS/Include/cmsis_gcc.h **** 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 377:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 378:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask 379:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the priority mask bit from the Priority Mask Register. 380:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 381:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 382:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) 383:Drivers/CMSIS/Include/cmsis_gcc.h **** { 384:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 385:Drivers/CMSIS/Include/cmsis_gcc.h **** 386:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); 387:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 388:Drivers/CMSIS/Include/cmsis_gcc.h **** } 389:Drivers/CMSIS/Include/cmsis_gcc.h **** 390:Drivers/CMSIS/Include/cmsis_gcc.h **** 391:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 392:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 393:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Priority Mask (non-secure) 394:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current state of the non-secure priority mask bit from the Priority Mask Reg 395:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Priority Mask value 396:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 397:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) 398:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 60 399:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 400:Drivers/CMSIS/Include/cmsis_gcc.h **** 401:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, primask_ns" : "=r" (result) :: "memory"); 402:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 403:Drivers/CMSIS/Include/cmsis_gcc.h **** } 404:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 405:Drivers/CMSIS/Include/cmsis_gcc.h **** 406:Drivers/CMSIS/Include/cmsis_gcc.h **** 407:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 408:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask 409:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Priority Mask Register. 410:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 411:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 412:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) 413:Drivers/CMSIS/Include/cmsis_gcc.h **** { 414:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); 415:Drivers/CMSIS/Include/cmsis_gcc.h **** } 416:Drivers/CMSIS/Include/cmsis_gcc.h **** 417:Drivers/CMSIS/Include/cmsis_gcc.h **** 418:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 419:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 420:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Priority Mask (non-secure) 421:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Priority Mask Register when in secure state. 422:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] priMask Priority Mask 423:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 424:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) 425:Drivers/CMSIS/Include/cmsis_gcc.h **** { 426:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); 427:Drivers/CMSIS/Include/cmsis_gcc.h **** } 428:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 429:Drivers/CMSIS/Include/cmsis_gcc.h **** 430:Drivers/CMSIS/Include/cmsis_gcc.h **** 431:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 432:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 433:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 434:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 435:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Enable FIQ 436:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Enables FIQ interrupts by clearing the F-bit in the CPSR. 437:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 438:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 439:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __enable_fault_irq(void) 440:Drivers/CMSIS/Include/cmsis_gcc.h **** { 441:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsie f" : : : "memory"); 442:Drivers/CMSIS/Include/cmsis_gcc.h **** } 443:Drivers/CMSIS/Include/cmsis_gcc.h **** 444:Drivers/CMSIS/Include/cmsis_gcc.h **** 445:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 446:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Disable FIQ 447:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Disables FIQ interrupts by setting the F-bit in the CPSR. 448:Drivers/CMSIS/Include/cmsis_gcc.h **** Can only be executed in Privileged modes. 449:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 450:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __disable_fault_irq(void) 451:Drivers/CMSIS/Include/cmsis_gcc.h **** { 452:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("cpsid f" : : : "memory"); 453:Drivers/CMSIS/Include/cmsis_gcc.h **** } 454:Drivers/CMSIS/Include/cmsis_gcc.h **** 455:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 61 456:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 457:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority 458:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Base Priority register. 459:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 460:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 461:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) 462:Drivers/CMSIS/Include/cmsis_gcc.h **** { 463:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 464:Drivers/CMSIS/Include/cmsis_gcc.h **** 465:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri" : "=r" (result) ); 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 467:Drivers/CMSIS/Include/cmsis_gcc.h **** } 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 470:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 471:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Base Priority (non-secure) 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Base Priority register when in secure state. 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Base Priority register value 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) 477:Drivers/CMSIS/Include/cmsis_gcc.h **** { 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 485:Drivers/CMSIS/Include/cmsis_gcc.h **** 486:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register. 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 490:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 491:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) 492:Drivers/CMSIS/Include/cmsis_gcc.h **** { 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); 494:Drivers/CMSIS/Include/cmsis_gcc.h **** } 495:Drivers/CMSIS/Include/cmsis_gcc.h **** 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 497:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 498:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 499:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority (non-secure) 500:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Base Priority register when in secure state. 501:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 502:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 503:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) 504:Drivers/CMSIS/Include/cmsis_gcc.h **** { 505:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); 506:Drivers/CMSIS/Include/cmsis_gcc.h **** } 507:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 508:Drivers/CMSIS/Include/cmsis_gcc.h **** 509:Drivers/CMSIS/Include/cmsis_gcc.h **** 510:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 511:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Base Priority with condition 512:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Base Priority register only if BASEPRI masking is disable ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 62 513:Drivers/CMSIS/Include/cmsis_gcc.h **** or the new value increases the BASEPRI priority level. 514:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] basePri Base Priority value to set 515:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 516:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) 517:Drivers/CMSIS/Include/cmsis_gcc.h **** { 518:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); 519:Drivers/CMSIS/Include/cmsis_gcc.h **** } 520:Drivers/CMSIS/Include/cmsis_gcc.h **** 521:Drivers/CMSIS/Include/cmsis_gcc.h **** 522:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Fault Mask register. 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) 528:Drivers/CMSIS/Include/cmsis_gcc.h **** { 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 533:Drivers/CMSIS/Include/cmsis_gcc.h **** } 534:Drivers/CMSIS/Include/cmsis_gcc.h **** 535:Drivers/CMSIS/Include/cmsis_gcc.h **** 536:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 537:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 538:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Fault Mask (non-secure) 539:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Fault Mask register when in secure state. 540:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Fault Mask register value 541:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 542:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) 543:Drivers/CMSIS/Include/cmsis_gcc.h **** { 544:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 545:Drivers/CMSIS/Include/cmsis_gcc.h **** 546:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); 547:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 548:Drivers/CMSIS/Include/cmsis_gcc.h **** } 549:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 550:Drivers/CMSIS/Include/cmsis_gcc.h **** 551:Drivers/CMSIS/Include/cmsis_gcc.h **** 552:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 553:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask 554:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Fault Mask register. 555:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 556:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 557:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) 558:Drivers/CMSIS/Include/cmsis_gcc.h **** { 559:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); 560:Drivers/CMSIS/Include/cmsis_gcc.h **** } 561:Drivers/CMSIS/Include/cmsis_gcc.h **** 562:Drivers/CMSIS/Include/cmsis_gcc.h **** 563:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 564:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 565:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Fault Mask (non-secure) 566:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Fault Mask register when in secure state. 567:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] faultMask Fault Mask value to set 568:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 569:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 63 570:Drivers/CMSIS/Include/cmsis_gcc.h **** { 571:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); 572:Drivers/CMSIS/Include/cmsis_gcc.h **** } 573:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 574:Drivers/CMSIS/Include/cmsis_gcc.h **** 575:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 576:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 577:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ 578:Drivers/CMSIS/Include/cmsis_gcc.h **** 579:Drivers/CMSIS/Include/cmsis_gcc.h **** 580:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 581:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 582:Drivers/CMSIS/Include/cmsis_gcc.h **** 583:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 584:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit 585:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 586:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 587:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 588:Drivers/CMSIS/Include/cmsis_gcc.h **** 589:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). 590:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 591:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 592:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) 593:Drivers/CMSIS/Include/cmsis_gcc.h **** { 594:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 595:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 596:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 597:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 598:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 599:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 600:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim" : "=r" (result) ); 601:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 602:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 603:Drivers/CMSIS/Include/cmsis_gcc.h **** } 604:Drivers/CMSIS/Include/cmsis_gcc.h **** 605:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) 606:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 607:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Process Stack Pointer Limit (non-secure) 608:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 609:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 610:Drivers/CMSIS/Include/cmsis_gcc.h **** 611:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in 612:Drivers/CMSIS/Include/cmsis_gcc.h **** \return PSPLIM Register value 613:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 614:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) 615:Drivers/CMSIS/Include/cmsis_gcc.h **** { 616:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 617:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 618:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 619:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 620:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 621:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); 622:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 623:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 624:Drivers/CMSIS/Include/cmsis_gcc.h **** } 625:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 626:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 64 627:Drivers/CMSIS/Include/cmsis_gcc.h **** 628:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 629:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer Limit 630:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 631:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 632:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 633:Drivers/CMSIS/Include/cmsis_gcc.h **** 634:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). 635:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 636:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 637:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) 638:Drivers/CMSIS/Include/cmsis_gcc.h **** { 639:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 640:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 641:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 642:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 643:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 644:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); 645:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 646:Drivers/CMSIS/Include/cmsis_gcc.h **** } 647:Drivers/CMSIS/Include/cmsis_gcc.h **** 648:Drivers/CMSIS/Include/cmsis_gcc.h **** 649:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 650:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 651:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Process Stack Pointer (non-secure) 652:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 653:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 654:Drivers/CMSIS/Include/cmsis_gcc.h **** 655:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in s 656:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set 657:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 658:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) 659:Drivers/CMSIS/Include/cmsis_gcc.h **** { 660:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 661:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure PSPLIM is RAZ/WI 662:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)ProcStackPtrLimit; 663:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 664:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); 665:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 666:Drivers/CMSIS/Include/cmsis_gcc.h **** } 667:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 668:Drivers/CMSIS/Include/cmsis_gcc.h **** 669:Drivers/CMSIS/Include/cmsis_gcc.h **** 670:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 671:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit 672:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 673:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always in non-secure 674:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 675:Drivers/CMSIS/Include/cmsis_gcc.h **** 676:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). 677:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 678:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 679:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) 680:Drivers/CMSIS/Include/cmsis_gcc.h **** { 681:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 682:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 683:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 65 684:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 685:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 686:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 687:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim" : "=r" (result) ); 688:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 689:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 690:Drivers/CMSIS/Include/cmsis_gcc.h **** } 691:Drivers/CMSIS/Include/cmsis_gcc.h **** 692:Drivers/CMSIS/Include/cmsis_gcc.h **** 693:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 694:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 695:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get Main Stack Pointer Limit (non-secure) 696:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 697:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence zero is returned always. 698:Drivers/CMSIS/Include/cmsis_gcc.h **** 699:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in sec 700:Drivers/CMSIS/Include/cmsis_gcc.h **** \return MSPLIM Register value 701:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 702:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) 703:Drivers/CMSIS/Include/cmsis_gcc.h **** { 704:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 705:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 706:Drivers/CMSIS/Include/cmsis_gcc.h **** return 0U; 707:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 708:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 709:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); 710:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 711:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 712:Drivers/CMSIS/Include/cmsis_gcc.h **** } 713:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 714:Drivers/CMSIS/Include/cmsis_gcc.h **** 715:Drivers/CMSIS/Include/cmsis_gcc.h **** 716:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 717:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit 718:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure 719:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored in non-secure 720:Drivers/CMSIS/Include/cmsis_gcc.h **** mode. 721:Drivers/CMSIS/Include/cmsis_gcc.h **** 722:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). 723:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set 724:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 725:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) 726:Drivers/CMSIS/Include/cmsis_gcc.h **** { 727:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ 728:Drivers/CMSIS/Include/cmsis_gcc.h **** (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) 729:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 730:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 731:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 732:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); 733:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 734:Drivers/CMSIS/Include/cmsis_gcc.h **** } 735:Drivers/CMSIS/Include/cmsis_gcc.h **** 736:Drivers/CMSIS/Include/cmsis_gcc.h **** 737:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) 738:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 739:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set Main Stack Pointer Limit (non-secure) 740:Drivers/CMSIS/Include/cmsis_gcc.h **** Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 66 741:Drivers/CMSIS/Include/cmsis_gcc.h **** Stack Pointer Limit register hence the write is silently ignored. 742:Drivers/CMSIS/Include/cmsis_gcc.h **** 743:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secu 744:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] MainStackPtrLimit Main Stack Pointer value to set 745:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 746:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) 747:Drivers/CMSIS/Include/cmsis_gcc.h **** { 748:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) 749:Drivers/CMSIS/Include/cmsis_gcc.h **** // without main extensions, the non-secure MSPLIM is RAZ/WI 750:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)MainStackPtrLimit; 751:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 752:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); 753:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 754:Drivers/CMSIS/Include/cmsis_gcc.h **** } 755:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 756:Drivers/CMSIS/Include/cmsis_gcc.h **** 757:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 758:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ 759:Drivers/CMSIS/Include/cmsis_gcc.h **** 760:Drivers/CMSIS/Include/cmsis_gcc.h **** 761:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 762:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Get FPSCR 763:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Returns the current value of the Floating Point Status/Control register. 764:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Floating Point Status/Control register value 765:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 766:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) 767:Drivers/CMSIS/Include/cmsis_gcc.h **** { 768:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 769:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 770:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_get_fpscr) 771:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed 772:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 773:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 774:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_arm_get_fpscr(); 775:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 776:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 777:Drivers/CMSIS/Include/cmsis_gcc.h **** 778:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); 779:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 780:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 781:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 782:Drivers/CMSIS/Include/cmsis_gcc.h **** return(0U); 783:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 784:Drivers/CMSIS/Include/cmsis_gcc.h **** } 785:Drivers/CMSIS/Include/cmsis_gcc.h **** 786:Drivers/CMSIS/Include/cmsis_gcc.h **** 787:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 788:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Set FPSCR 789:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Assigns the given value to the Floating Point Status/Control register. 790:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] fpscr Floating Point Status/Control value to set 791:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 792:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) 793:Drivers/CMSIS/Include/cmsis_gcc.h **** { 794:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ 795:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) 796:Drivers/CMSIS/Include/cmsis_gcc.h **** #if __has_builtin(__builtin_arm_set_fpscr) 797:Drivers/CMSIS/Include/cmsis_gcc.h **** // Re-enable using built-in when GCC has been fixed ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 67 798:Drivers/CMSIS/Include/cmsis_gcc.h **** // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) 799:Drivers/CMSIS/Include/cmsis_gcc.h **** /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ 800:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_arm_set_fpscr(fpscr); 801:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 802:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); 803:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 804:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 805:Drivers/CMSIS/Include/cmsis_gcc.h **** (void)fpscr; 806:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 807:Drivers/CMSIS/Include/cmsis_gcc.h **** } 808:Drivers/CMSIS/Include/cmsis_gcc.h **** 809:Drivers/CMSIS/Include/cmsis_gcc.h **** 810:Drivers/CMSIS/Include/cmsis_gcc.h **** /*@} end of CMSIS_Core_RegAccFunctions */ 811:Drivers/CMSIS/Include/cmsis_gcc.h **** 812:Drivers/CMSIS/Include/cmsis_gcc.h **** 813:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 814:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 815:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 816:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 817:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 818:Drivers/CMSIS/Include/cmsis_gcc.h **** 819:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 820:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 821:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 822:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 823:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 824:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 825:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 826:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 827:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 828:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 829:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 830:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 831:Drivers/CMSIS/Include/cmsis_gcc.h **** 832:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 833:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation 834:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. 835:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 836:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") 837:Drivers/CMSIS/Include/cmsis_gcc.h **** 838:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 839:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt 840:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 841:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 842:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi") 843:Drivers/CMSIS/Include/cmsis_gcc.h **** 844:Drivers/CMSIS/Include/cmsis_gcc.h **** 845:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 846:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 847:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 848:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 849:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 850:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe") 851:Drivers/CMSIS/Include/cmsis_gcc.h **** 852:Drivers/CMSIS/Include/cmsis_gcc.h **** 853:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 854:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 68 855:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 856:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 857:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 858:Drivers/CMSIS/Include/cmsis_gcc.h **** 859:Drivers/CMSIS/Include/cmsis_gcc.h **** 860:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 861:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 862:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 863:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 864:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 865:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 866:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 867:Drivers/CMSIS/Include/cmsis_gcc.h **** { 868:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 869:Drivers/CMSIS/Include/cmsis_gcc.h **** } 870:Drivers/CMSIS/Include/cmsis_gcc.h **** 871:Drivers/CMSIS/Include/cmsis_gcc.h **** 872:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 873:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 874:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 875:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 876:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 877:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 878:Drivers/CMSIS/Include/cmsis_gcc.h **** { 879:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 880:Drivers/CMSIS/Include/cmsis_gcc.h **** } 881:Drivers/CMSIS/Include/cmsis_gcc.h **** 882:Drivers/CMSIS/Include/cmsis_gcc.h **** 883:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 884:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier 885:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before 886:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. 887:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 888:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) 889:Drivers/CMSIS/Include/cmsis_gcc.h **** { 890:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); 891:Drivers/CMSIS/Include/cmsis_gcc.h **** } 892:Drivers/CMSIS/Include/cmsis_gcc.h **** 893:Drivers/CMSIS/Include/cmsis_gcc.h **** 894:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 895:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) 896:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 897:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 898:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 899:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 900:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) 901:Drivers/CMSIS/Include/cmsis_gcc.h **** { 902:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 903:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); 904:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 905:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 906:Drivers/CMSIS/Include/cmsis_gcc.h **** 907:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 908:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 909:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 910:Drivers/CMSIS/Include/cmsis_gcc.h **** } 911:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 69 912:Drivers/CMSIS/Include/cmsis_gcc.h **** 913:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 914:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 915:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 916:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 917:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 918:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 919:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) 920:Drivers/CMSIS/Include/cmsis_gcc.h **** { 921:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 922:Drivers/CMSIS/Include/cmsis_gcc.h **** 923:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 924:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 925:Drivers/CMSIS/Include/cmsis_gcc.h **** } 926:Drivers/CMSIS/Include/cmsis_gcc.h **** 927:Drivers/CMSIS/Include/cmsis_gcc.h **** 928:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 929:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 930:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam 931:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 932:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 933:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 934:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) 935:Drivers/CMSIS/Include/cmsis_gcc.h **** { 936:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 937:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); 938:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 939:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; 940:Drivers/CMSIS/Include/cmsis_gcc.h **** 941:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 942:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 943:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 944:Drivers/CMSIS/Include/cmsis_gcc.h **** } 945:Drivers/CMSIS/Include/cmsis_gcc.h **** 946:Drivers/CMSIS/Include/cmsis_gcc.h **** 947:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 948:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) 949:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v 950:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate 951:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate 952:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value 953:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 954:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) 955:Drivers/CMSIS/Include/cmsis_gcc.h **** { 956:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; 957:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) 958:Drivers/CMSIS/Include/cmsis_gcc.h **** { 959:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; 960:Drivers/CMSIS/Include/cmsis_gcc.h **** } 961:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); 962:Drivers/CMSIS/Include/cmsis_gcc.h **** } 963:Drivers/CMSIS/Include/cmsis_gcc.h **** 964:Drivers/CMSIS/Include/cmsis_gcc.h **** 965:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 966:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint 967:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. 968:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 70 969:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. 970:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break 971:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 972:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) 973:Drivers/CMSIS/Include/cmsis_gcc.h **** 974:Drivers/CMSIS/Include/cmsis_gcc.h **** 975:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 976:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value 977:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. 978:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 979:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 980:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 981:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) 982:Drivers/CMSIS/Include/cmsis_gcc.h **** { 983:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 984:Drivers/CMSIS/Include/cmsis_gcc.h **** 985:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 986:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 987:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 988:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); 989:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 990:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ 991:Drivers/CMSIS/Include/cmsis_gcc.h **** 992:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ 993:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) 994:Drivers/CMSIS/Include/cmsis_gcc.h **** { 995:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; 996:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; 997:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; 998:Drivers/CMSIS/Include/cmsis_gcc.h **** } 999:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ 1000:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 1001:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 1002:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1003:Drivers/CMSIS/Include/cmsis_gcc.h **** 1004:Drivers/CMSIS/Include/cmsis_gcc.h **** 1005:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1006:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros 1007:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. 1008:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros 1009:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value 1010:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1011:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CLZ (uint8_t)__builtin_clz 1012:Drivers/CMSIS/Include/cmsis_gcc.h **** 1013:Drivers/CMSIS/Include/cmsis_gcc.h **** 1014:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 1015:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 1016:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 1017:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 1018:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1019:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (8 bit) 1020:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 8 bit value. 1021:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 1022:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint8_t at (*ptr) 1023:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1024:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) 1025:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 71 1026:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1027:Drivers/CMSIS/Include/cmsis_gcc.h **** 1028:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 1029:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); 1030:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 1031:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not 1032:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. 1033:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1034:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); 1035:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 1036:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint8_t) result); /* Add explicit type cast here */ 1037:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1038:Drivers/CMSIS/Include/cmsis_gcc.h **** 1039:Drivers/CMSIS/Include/cmsis_gcc.h **** 1040:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1041:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (16 bit) 1042:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 16 bit values. 1043:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 1044:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr) 1045:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1046:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) 1047:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1048:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1049:Drivers/CMSIS/Include/cmsis_gcc.h **** 1050:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 1051:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); 1052:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 1053:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not 1054:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. 1055:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1056:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); 1057:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 1058:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint16_t) result); /* Add explicit type cast here */ 1059:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1060:Drivers/CMSIS/Include/cmsis_gcc.h **** 1061:Drivers/CMSIS/Include/cmsis_gcc.h **** 1062:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1063:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (32 bit) 1064:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 32 bit values. 1065:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 1066:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint32_t at (*ptr) 1067:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1068:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) 1069:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1070:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1071:Drivers/CMSIS/Include/cmsis_gcc.h **** 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 1544 .loc 2 1072 4 discriminator 1 1545 00b6 BB69 ldr r3, [r7, #24] 1546 .syntax unified 1547 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1548 00b8 53E8003F ldrex r3, [r3] 1549 @ 0 "" 2 1550 .thumb 1551 .syntax unified 1552 00bc 7B61 str r3, [r7, #20] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 72 1553 .loc 2 1073 10 discriminator 1 1554 00be 7B69 ldr r3, [r7, #20] 1555 .LBE322: 1556 .LBE321: 1557 .loc 1 1441 5 discriminator 1 1558 00c0 43F08003 orr r3, r3, #128 1559 00c4 BB62 str r3, [r7, #40] 1560 00c6 FB68 ldr r3, [r7, #12] 1561 00c8 1B68 ldr r3, [r3] 1562 00ca 1433 adds r3, r3, #20 1563 00cc BA6A ldr r2, [r7, #40] 1564 00ce 7A62 str r2, [r7, #36] 1565 00d0 3B62 str r3, [r7, #32] 1566 .LBB323: 1567 .LBB324: 1074:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1075:Drivers/CMSIS/Include/cmsis_gcc.h **** 1076:Drivers/CMSIS/Include/cmsis_gcc.h **** 1077:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1078:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (8 bit) 1079:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 8 bit values. 1080:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 1081:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location 1082:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded 1083:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 1084:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1085:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) 1086:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1087:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1088:Drivers/CMSIS/Include/cmsis_gcc.h **** 1089:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); 1090:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1091:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1092:Drivers/CMSIS/Include/cmsis_gcc.h **** 1093:Drivers/CMSIS/Include/cmsis_gcc.h **** 1094:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1095:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (16 bit) 1096:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 16 bit values. 1097:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 1098:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location 1099:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded 1100:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 1101:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1102:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) 1103:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1104:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1105:Drivers/CMSIS/Include/cmsis_gcc.h **** 1106:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); 1107:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1108:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1109:Drivers/CMSIS/Include/cmsis_gcc.h **** 1110:Drivers/CMSIS/Include/cmsis_gcc.h **** 1111:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 1112:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (32 bit) 1113:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 32 bit values. 1114:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 1115:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 73 1116:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded 1117:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 1118:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 1119:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) 1120:Drivers/CMSIS/Include/cmsis_gcc.h **** { 1121:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 1122:Drivers/CMSIS/Include/cmsis_gcc.h **** 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 1568 .loc 2 1123 4 discriminator 1 1569 00d2 396A ldr r1, [r7, #32] 1570 00d4 7A6A ldr r2, [r7, #36] 1571 .syntax unified 1572 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1573 00d6 41E80023 strex r3, r2, [r1] 1574 @ 0 "" 2 1575 .thumb 1576 .syntax unified 1577 00da FB61 str r3, [r7, #28] 1124:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1578 .loc 2 1124 10 discriminator 1 1579 00dc FB69 ldr r3, [r7, #28] 1580 .LBE324: 1581 .LBE323: 1582 .loc 1 1441 5 discriminator 1 1583 00de 002B cmp r3, #0 1584 00e0 E5D1 bne .L72 1585 .LBE320: 1442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1586 .loc 1 1443 12 1587 00e2 0023 movs r3, #0 1588 00e4 00E0 b .L68 1589 .L65: 1444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1590 .loc 1 1447 12 1591 00e6 0223 movs r3, #2 1592 .L68: 1448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1593 .loc 1 1449 1 1594 00e8 1846 mov r0, r3 1595 00ea 3037 adds r7, r7, #48 1596 .LCFI61: 1597 .cfi_def_cfa_offset 8 1598 00ec BD46 mov sp, r7 1599 .LCFI62: 1600 .cfi_def_cfa_register 13 1601 @ sp needed 1602 00ee 80BD pop {r7, pc} 1603 .L74: 1604 .align 2 1605 .L73: 1606 00f0 00000000 .word UART_DMATransmitCplt 1607 00f4 00000000 .word UART_DMATxHalfCplt ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 74 1608 00f8 00000000 .word UART_DMAError 1609 .cfi_endproc 1610 .LFE246: 1612 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 1613 .align 1 1614 .global HAL_UART_Receive_DMA 1615 .syntax unified 1616 .thumb 1617 .thumb_func 1619 HAL_UART_Receive_DMA: 1620 .LFB247: 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in DMA mode. 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1) the received data contains the parity bit. 1461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1621 .loc 1 1464 1 1622 .cfi_startproc 1623 @ args = 0, pretend = 0, frame = 16 1624 @ frame_needed = 1, uses_anonymous_args = 0 1625 0000 80B5 push {r7, lr} 1626 .LCFI63: 1627 .cfi_def_cfa_offset 8 1628 .cfi_offset 7, -8 1629 .cfi_offset 14, -4 1630 0002 84B0 sub sp, sp, #16 1631 .LCFI64: 1632 .cfi_def_cfa_offset 24 1633 0004 00AF add r7, sp, #0 1634 .LCFI65: 1635 .cfi_def_cfa_register 7 1636 0006 F860 str r0, [r7, #12] 1637 0008 B960 str r1, [r7, #8] 1638 000a 1346 mov r3, r2 1639 000c FB80 strh r3, [r7, #6] @ movhi 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1640 .loc 1 1466 12 1641 000e FB68 ldr r3, [r7, #12] 1642 0010 93F83E30 ldrb r3, [r3, #62] 1643 0014 DBB2 uxtb r3, r3 1644 .loc 1 1466 6 1645 0016 202B cmp r3, #32 1646 0018 1DD1 bne .L76 1467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1647 .loc 1 1468 8 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 75 1648 001a BB68 ldr r3, [r7, #8] 1649 001c 002B cmp r3, #0 1650 001e 02D0 beq .L77 1651 .loc 1 1468 25 discriminator 1 1652 0020 FB88 ldrh r3, [r7, #6] 1653 0022 002B cmp r3, #0 1654 0024 01D1 bne .L78 1655 .L77: 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1656 .loc 1 1470 14 1657 0026 0123 movs r3, #1 1658 0028 16E0 b .L79 1659 .L78: 1471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1660 .loc 1 1474 5 1661 002a FB68 ldr r3, [r7, #12] 1662 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 1663 0030 012B cmp r3, #1 1664 0032 01D1 bne .L80 1665 .loc 1 1474 5 is_stmt 0 discriminator 1 1666 0034 0223 movs r3, #2 1667 0036 0FE0 b .L79 1668 .L80: 1669 .loc 1 1474 5 discriminator 2 1670 0038 FB68 ldr r3, [r7, #12] 1671 003a 0122 movs r2, #1 1672 003c 83F83C20 strb r2, [r3, #60] 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to Standard reception */ 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1673 .loc 1 1477 26 is_stmt 1 discriminator 2 1674 0040 FB68 ldr r3, [r7, #12] 1675 0042 0022 movs r2, #0 1676 0044 1A63 str r2, [r3, #48] 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (UART_Start_Receive_DMA(huart, pData, Size)); 1677 .loc 1 1479 13 discriminator 2 1678 0046 FB88 ldrh r3, [r7, #6] 1679 0048 1A46 mov r2, r3 1680 004a B968 ldr r1, [r7, #8] 1681 004c F868 ldr r0, [r7, #12] 1682 004e FFF7FEFF bl UART_Start_Receive_DMA 1683 0052 0346 mov r3, r0 1684 0054 00E0 b .L79 1685 .L76: 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1686 .loc 1 1483 12 1687 0056 0223 movs r3, #2 1688 .L79: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 76 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1689 .loc 1 1485 1 1690 0058 1846 mov r0, r3 1691 005a 1037 adds r7, r7, #16 1692 .LCFI66: 1693 .cfi_def_cfa_offset 8 1694 005c BD46 mov sp, r7 1695 .LCFI67: 1696 .cfi_def_cfa_register 13 1697 @ sp needed 1698 005e 80BD pop {r7, pc} 1699 .cfi_endproc 1700 .LFE247: 1702 .section .text.HAL_UART_DMAPause,"ax",%progbits 1703 .align 1 1704 .global HAL_UART_DMAPause 1705 .syntax unified 1706 .thumb 1707 .thumb_func 1709 HAL_UART_DMAPause: 1710 .LFB248: 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Pauses the DMA Transfer. 1489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1711 .loc 1 1494 1 1712 .cfi_startproc 1713 @ args = 0, pretend = 0, frame = 112 1714 @ frame_needed = 1, uses_anonymous_args = 0 1715 @ link register save eliminated. 1716 0000 80B4 push {r7} 1717 .LCFI68: 1718 .cfi_def_cfa_offset 4 1719 .cfi_offset 7, -4 1720 0002 9DB0 sub sp, sp, #116 1721 .LCFI69: 1722 .cfi_def_cfa_offset 120 1723 0004 00AF add r7, sp, #0 1724 .LCFI70: 1725 .cfi_def_cfa_register 7 1726 0006 7860 str r0, [r7, #4] 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1727 .loc 1 1495 12 1728 0008 0023 movs r3, #0 1729 000a FB66 str r3, [r7, #108] 1496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1730 .loc 1 1498 3 1731 000c 7B68 ldr r3, [r7, #4] 1732 000e 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 1733 0012 012B cmp r3, #1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 77 1734 0014 01D1 bne .L82 1735 .loc 1 1498 3 is_stmt 0 discriminator 1 1736 0016 0223 movs r3, #2 1737 0018 98E0 b .L83 1738 .L82: 1739 .loc 1 1498 3 discriminator 2 1740 001a 7B68 ldr r3, [r7, #4] 1741 001c 0122 movs r2, #1 1742 001e 83F83C20 strb r2, [r3, #60] 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 1743 .loc 1 1500 16 is_stmt 1 discriminator 2 1744 0022 7B68 ldr r3, [r7, #4] 1745 0024 1B68 ldr r3, [r3] 1746 0026 5B69 ldr r3, [r3, #20] 1747 0028 03F08003 and r3, r3, #128 1748 002c 802B cmp r3, #128 1749 002e 0CBF ite eq 1750 0030 0123 moveq r3, #1 1751 0032 0023 movne r3, #0 1752 0034 DBB2 uxtb r3, r3 1753 .loc 1 1500 14 discriminator 2 1754 0036 FB66 str r3, [r7, #108] 1501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1755 .loc 1 1501 13 discriminator 2 1756 0038 7B68 ldr r3, [r7, #4] 1757 003a 93F83D30 ldrb r3, [r3, #61] 1758 003e DBB2 uxtb r3, r3 1759 .loc 1 1501 6 discriminator 2 1760 0040 212B cmp r3, #33 1761 0042 1CD1 bne .L84 1762 .loc 1 1501 49 discriminator 1 1763 0044 FB6E ldr r3, [r7, #108] 1764 0046 002B cmp r3, #0 1765 0048 19D0 beq .L84 1766 .L87: 1767 .LBB325: 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request */ 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1768 .loc 1 1504 5 discriminator 1 1769 004a 7B68 ldr r3, [r7, #4] 1770 004c 1B68 ldr r3, [r3] 1771 004e 1433 adds r3, r3, #20 1772 0050 FB64 str r3, [r7, #76] 1773 .LBB326: 1774 .LBB327: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1775 .loc 2 1072 4 discriminator 1 1776 0052 FB6C ldr r3, [r7, #76] 1777 .syntax unified 1778 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1779 0054 53E8003F ldrex r3, [r3] 1780 @ 0 "" 2 1781 .thumb 1782 .syntax unified 1783 0058 BB64 str r3, [r7, #72] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 78 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1784 .loc 2 1073 10 discriminator 1 1785 005a BB6C ldr r3, [r7, #72] 1786 .LBE327: 1787 .LBE326: 1788 .loc 1 1504 5 discriminator 1 1789 005c 23F08003 bic r3, r3, #128 1790 0060 BB66 str r3, [r7, #104] 1791 0062 7B68 ldr r3, [r7, #4] 1792 0064 1B68 ldr r3, [r3] 1793 0066 1433 adds r3, r3, #20 1794 0068 BA6E ldr r2, [r7, #104] 1795 006a BA65 str r2, [r7, #88] 1796 006c 7B65 str r3, [r7, #84] 1797 .LBB328: 1798 .LBB329: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1799 .loc 2 1123 4 discriminator 1 1800 006e 796D ldr r1, [r7, #84] 1801 0070 BA6D ldr r2, [r7, #88] 1802 .syntax unified 1803 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1804 0072 41E80023 strex r3, r2, [r1] 1805 @ 0 "" 2 1806 .thumb 1807 .syntax unified 1808 0076 3B65 str r3, [r7, #80] 1809 .loc 2 1124 10 discriminator 1 1810 0078 3B6D ldr r3, [r7, #80] 1811 .LBE329: 1812 .LBE328: 1813 .loc 1 1504 5 discriminator 1 1814 007a 002B cmp r3, #0 1815 007c E5D1 bne .L87 1816 .L84: 1817 .LBE325: 1505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 1818 .loc 1 1507 16 1819 007e 7B68 ldr r3, [r7, #4] 1820 0080 1B68 ldr r3, [r3] 1821 0082 5B69 ldr r3, [r3, #20] 1822 0084 03F04003 and r3, r3, #64 1823 0088 402B cmp r3, #64 1824 008a 0CBF ite eq 1825 008c 0123 moveq r3, #1 1826 008e 0023 movne r3, #0 1827 0090 DBB2 uxtb r3, r3 1828 .loc 1 1507 14 1829 0092 FB66 str r3, [r7, #108] 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1830 .loc 1 1508 13 1831 0094 7B68 ldr r3, [r7, #4] 1832 0096 93F83E30 ldrb r3, [r3, #62] 1833 009a DBB2 uxtb r3, r3 1834 .loc 1 1508 6 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 79 1835 009c 222B cmp r3, #34 1836 009e 50D1 bne .L88 1837 .loc 1 1508 50 discriminator 1 1838 00a0 FB6E ldr r3, [r7, #108] 1839 00a2 002B cmp r3, #0 1840 00a4 4DD0 beq .L88 1841 .L91: 1842 .LBB330: 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1843 .loc 1 1511 5 discriminator 1 1844 00a6 7B68 ldr r3, [r7, #4] 1845 00a8 1B68 ldr r3, [r3] 1846 00aa 0C33 adds r3, r3, #12 1847 00ac BB63 str r3, [r7, #56] 1848 .LBB331: 1849 .LBB332: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1850 .loc 2 1072 4 discriminator 1 1851 00ae BB6B ldr r3, [r7, #56] 1852 .syntax unified 1853 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1854 00b0 53E8003F ldrex r3, [r3] 1855 @ 0 "" 2 1856 .thumb 1857 .syntax unified 1858 00b4 7B63 str r3, [r7, #52] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1859 .loc 2 1073 10 discriminator 1 1860 00b6 7B6B ldr r3, [r7, #52] 1861 .LBE332: 1862 .LBE331: 1863 .loc 1 1511 5 discriminator 1 1864 00b8 23F48073 bic r3, r3, #256 1865 00bc 7B66 str r3, [r7, #100] 1866 00be 7B68 ldr r3, [r7, #4] 1867 00c0 1B68 ldr r3, [r3] 1868 00c2 0C33 adds r3, r3, #12 1869 00c4 7A6E ldr r2, [r7, #100] 1870 00c6 7A64 str r2, [r7, #68] 1871 00c8 3B64 str r3, [r7, #64] 1872 .LBB333: 1873 .LBB334: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1874 .loc 2 1123 4 discriminator 1 1875 00ca 396C ldr r1, [r7, #64] 1876 00cc 7A6C ldr r2, [r7, #68] 1877 .syntax unified 1878 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1879 00ce 41E80023 strex r3, r2, [r1] 1880 @ 0 "" 2 1881 .thumb 1882 .syntax unified 1883 00d2 FB63 str r3, [r7, #60] 1884 .loc 2 1124 10 discriminator 1 1885 00d4 FB6B ldr r3, [r7, #60] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 80 1886 .LBE334: 1887 .LBE333: 1888 .loc 1 1511 5 discriminator 1 1889 00d6 002B cmp r3, #0 1890 00d8 E5D1 bne .L91 1891 .L94: 1892 .LBE330: 1893 .LBB335: 1512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1894 .loc 1 1512 5 discriminator 1 1895 00da 7B68 ldr r3, [r7, #4] 1896 00dc 1B68 ldr r3, [r3] 1897 00de 1433 adds r3, r3, #20 1898 00e0 7B62 str r3, [r7, #36] 1899 .LBB336: 1900 .LBB337: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1901 .loc 2 1072 4 discriminator 1 1902 00e2 7B6A ldr r3, [r7, #36] 1903 .syntax unified 1904 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1905 00e4 53E8003F ldrex r3, [r3] 1906 @ 0 "" 2 1907 .thumb 1908 .syntax unified 1909 00e8 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1910 .loc 2 1073 10 discriminator 1 1911 00ea 3B6A ldr r3, [r7, #32] 1912 .LBE337: 1913 .LBE336: 1914 .loc 1 1512 5 discriminator 1 1915 00ec 23F00103 bic r3, r3, #1 1916 00f0 3B66 str r3, [r7, #96] 1917 00f2 7B68 ldr r3, [r7, #4] 1918 00f4 1B68 ldr r3, [r3] 1919 00f6 1433 adds r3, r3, #20 1920 00f8 3A6E ldr r2, [r7, #96] 1921 00fa 3A63 str r2, [r7, #48] 1922 00fc FB62 str r3, [r7, #44] 1923 .LBB338: 1924 .LBB339: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1925 .loc 2 1123 4 discriminator 1 1926 00fe F96A ldr r1, [r7, #44] 1927 0100 3A6B ldr r2, [r7, #48] 1928 .syntax unified 1929 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1930 0102 41E80023 strex r3, r2, [r1] 1931 @ 0 "" 2 1932 .thumb 1933 .syntax unified 1934 0106 BB62 str r3, [r7, #40] 1935 .loc 2 1124 10 discriminator 1 1936 0108 BB6A ldr r3, [r7, #40] 1937 .LBE339: 1938 .LBE338: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 81 1939 .loc 1 1512 5 discriminator 1 1940 010a 002B cmp r3, #0 1941 010c E5D1 bne .L94 1942 .L97: 1943 .LBE335: 1944 .LBB340: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request */ 1515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1945 .loc 1 1515 5 discriminator 1 1946 010e 7B68 ldr r3, [r7, #4] 1947 0110 1B68 ldr r3, [r3] 1948 0112 1433 adds r3, r3, #20 1949 0114 3B61 str r3, [r7, #16] 1950 .LBB341: 1951 .LBB342: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1952 .loc 2 1072 4 discriminator 1 1953 0116 3B69 ldr r3, [r7, #16] 1954 .syntax unified 1955 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1956 0118 53E8003F ldrex r3, [r3] 1957 @ 0 "" 2 1958 .thumb 1959 .syntax unified 1960 011c FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 1961 .loc 2 1073 10 discriminator 1 1962 011e FB68 ldr r3, [r7, #12] 1963 .LBE342: 1964 .LBE341: 1965 .loc 1 1515 5 discriminator 1 1966 0120 23F04003 bic r3, r3, #64 1967 0124 FB65 str r3, [r7, #92] 1968 0126 7B68 ldr r3, [r7, #4] 1969 0128 1B68 ldr r3, [r3] 1970 012a 1433 adds r3, r3, #20 1971 012c FA6D ldr r2, [r7, #92] 1972 012e FA61 str r2, [r7, #28] 1973 0130 BB61 str r3, [r7, #24] 1974 .LBB343: 1975 .LBB344: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 1976 .loc 2 1123 4 discriminator 1 1977 0132 B969 ldr r1, [r7, #24] 1978 0134 FA69 ldr r2, [r7, #28] 1979 .syntax unified 1980 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 1981 0136 41E80023 strex r3, r2, [r1] 1982 @ 0 "" 2 1983 .thumb 1984 .syntax unified 1985 013a 7B61 str r3, [r7, #20] 1986 .loc 2 1124 10 discriminator 1 1987 013c 7B69 ldr r3, [r7, #20] 1988 .LBE344: 1989 .LBE343: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 82 1990 .loc 1 1515 5 discriminator 1 1991 013e 002B cmp r3, #0 1992 0140 E5D1 bne .L97 1993 .L88: 1994 .LBE340: 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1995 .loc 1 1519 3 1996 0142 7B68 ldr r3, [r7, #4] 1997 0144 0022 movs r2, #0 1998 0146 83F83C20 strb r2, [r3, #60] 1520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1999 .loc 1 1521 10 2000 014a 0023 movs r3, #0 2001 .L83: 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2002 .loc 1 1522 1 2003 014c 1846 mov r0, r3 2004 014e 7437 adds r7, r7, #116 2005 .LCFI71: 2006 .cfi_def_cfa_offset 4 2007 0150 BD46 mov sp, r7 2008 .LCFI72: 2009 .cfi_def_cfa_register 13 2010 @ sp needed 2011 0152 5DF8047B ldr r7, [sp], #4 2012 .LCFI73: 2013 .cfi_restore 7 2014 .cfi_def_cfa_offset 0 2015 0156 7047 bx lr 2016 .cfi_endproc 2017 .LFE248: 2019 .section .text.HAL_UART_DMAResume,"ax",%progbits 2020 .align 1 2021 .global HAL_UART_DMAResume 2022 .syntax unified 2023 .thumb 2024 .thumb_func 2026 HAL_UART_DMAResume: 2027 .LFB249: 1523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Resumes the DMA Transfer. 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) 1531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2028 .loc 1 1531 1 2029 .cfi_startproc 2030 @ args = 0, pretend = 0, frame = 112 2031 @ frame_needed = 1, uses_anonymous_args = 0 2032 @ link register save eliminated. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 83 2033 0000 80B4 push {r7} 2034 .LCFI74: 2035 .cfi_def_cfa_offset 4 2036 .cfi_offset 7, -4 2037 0002 9DB0 sub sp, sp, #116 2038 .LCFI75: 2039 .cfi_def_cfa_offset 120 2040 0004 00AF add r7, sp, #0 2041 .LCFI76: 2042 .cfi_def_cfa_register 7 2043 0006 7860 str r0, [r7, #4] 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2044 .loc 1 1533 3 2045 0008 7B68 ldr r3, [r7, #4] 2046 000a 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 2047 000e 012B cmp r3, #1 2048 0010 01D1 bne .L99 2049 .loc 1 1533 3 is_stmt 0 discriminator 1 2050 0012 0223 movs r3, #2 2051 0014 8BE0 b .L100 2052 .L99: 2053 .loc 1 1533 3 discriminator 2 2054 0016 7B68 ldr r3, [r7, #4] 2055 0018 0122 movs r2, #1 2056 001a 83F83C20 strb r2, [r3, #60] 1534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 2057 .loc 1 1535 12 is_stmt 1 discriminator 2 2058 001e 7B68 ldr r3, [r7, #4] 2059 0020 93F83D30 ldrb r3, [r3, #61] 2060 0024 DBB2 uxtb r3, r3 2061 .loc 1 1535 6 discriminator 2 2062 0026 212B cmp r3, #33 2063 0028 19D1 bne .L101 2064 .L104: 2065 .LBB345: 1536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Tx request */ 1538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2066 .loc 1 1538 5 discriminator 1 2067 002a 7B68 ldr r3, [r7, #4] 2068 002c 1B68 ldr r3, [r3] 2069 002e 1433 adds r3, r3, #20 2070 0030 3B65 str r3, [r7, #80] 2071 .LBB346: 2072 .LBB347: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2073 .loc 2 1072 4 discriminator 1 2074 0032 3B6D ldr r3, [r7, #80] 2075 .syntax unified 2076 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2077 0034 53E8003F ldrex r3, [r3] 2078 @ 0 "" 2 2079 .thumb 2080 .syntax unified 2081 0038 FB64 str r3, [r7, #76] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 84 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2082 .loc 2 1073 10 discriminator 1 2083 003a FB6C ldr r3, [r7, #76] 2084 .LBE347: 2085 .LBE346: 2086 .loc 1 1538 5 discriminator 1 2087 003c 43F08003 orr r3, r3, #128 2088 0040 FB66 str r3, [r7, #108] 2089 0042 7B68 ldr r3, [r7, #4] 2090 0044 1B68 ldr r3, [r3] 2091 0046 1433 adds r3, r3, #20 2092 0048 FA6E ldr r2, [r7, #108] 2093 004a FA65 str r2, [r7, #92] 2094 004c BB65 str r3, [r7, #88] 2095 .LBB348: 2096 .LBB349: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2097 .loc 2 1123 4 discriminator 1 2098 004e B96D ldr r1, [r7, #88] 2099 0050 FA6D ldr r2, [r7, #92] 2100 .syntax unified 2101 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2102 0052 41E80023 strex r3, r2, [r1] 2103 @ 0 "" 2 2104 .thumb 2105 .syntax unified 2106 0056 7B65 str r3, [r7, #84] 2107 .loc 2 1124 10 discriminator 1 2108 0058 7B6D ldr r3, [r7, #84] 2109 .LBE349: 2110 .LBE348: 2111 .loc 1 1538 5 discriminator 1 2112 005a 002B cmp r3, #0 2113 005c E5D1 bne .L104 2114 .L101: 2115 .LBE345: 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 2116 .loc 1 1541 12 2117 005e 7B68 ldr r3, [r7, #4] 2118 0060 93F83E30 ldrb r3, [r3, #62] 2119 0064 DBB2 uxtb r3, r3 2120 .loc 1 1541 6 2121 0066 222B cmp r3, #34 2122 0068 5CD1 bne .L105 2123 .LBB350: 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer*/ 1544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 2124 .loc 1 1544 5 2125 006a 0023 movs r3, #0 2126 006c FB60 str r3, [r7, #12] 2127 006e 7B68 ldr r3, [r7, #4] 2128 0070 1B68 ldr r3, [r3] 2129 0072 1B68 ldr r3, [r3] 2130 0074 FB60 str r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 85 2131 0076 7B68 ldr r3, [r7, #4] 2132 0078 1B68 ldr r3, [r3] 2133 007a 5B68 ldr r3, [r3, #4] 2134 007c FB60 str r3, [r7, #12] 2135 007e FB68 ldr r3, [r7, #12] 2136 .LBE350: 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */ 1547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 2137 .loc 1 1547 20 2138 0080 7B68 ldr r3, [r7, #4] 2139 0082 1B69 ldr r3, [r3, #16] 2140 .loc 1 1547 8 2141 0084 002B cmp r3, #0 2142 0086 19D0 beq .L112 2143 .L109: 2144 .LBB351: 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 2145 .loc 1 1549 7 discriminator 1 2146 0088 7B68 ldr r3, [r7, #4] 2147 008a 1B68 ldr r3, [r3] 2148 008c 0C33 adds r3, r3, #12 2149 008e FB63 str r3, [r7, #60] 2150 .LBB352: 2151 .LBB353: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2152 .loc 2 1072 4 discriminator 1 2153 0090 FB6B ldr r3, [r7, #60] 2154 .syntax unified 2155 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2156 0092 53E8003F ldrex r3, [r3] 2157 @ 0 "" 2 2158 .thumb 2159 .syntax unified 2160 0096 BB63 str r3, [r7, #56] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2161 .loc 2 1073 10 discriminator 1 2162 0098 BB6B ldr r3, [r7, #56] 2163 .LBE353: 2164 .LBE352: 2165 .loc 1 1549 7 discriminator 1 2166 009a 43F48073 orr r3, r3, #256 2167 009e BB66 str r3, [r7, #104] 2168 00a0 7B68 ldr r3, [r7, #4] 2169 00a2 1B68 ldr r3, [r3] 2170 00a4 0C33 adds r3, r3, #12 2171 00a6 BA6E ldr r2, [r7, #104] 2172 00a8 BA64 str r2, [r7, #72] 2173 00aa 7B64 str r3, [r7, #68] 2174 .LBB354: 2175 .LBB355: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2176 .loc 2 1123 4 discriminator 1 2177 00ac 796C ldr r1, [r7, #68] 2178 00ae BA6C ldr r2, [r7, #72] 2179 .syntax unified ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 86 2180 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2181 00b0 41E80023 strex r3, r2, [r1] 2182 @ 0 "" 2 2183 .thumb 2184 .syntax unified 2185 00b4 3B64 str r3, [r7, #64] 2186 .loc 2 1124 10 discriminator 1 2187 00b6 3B6C ldr r3, [r7, #64] 2188 .LBE355: 2189 .LBE354: 2190 .loc 1 1549 7 discriminator 1 2191 00b8 002B cmp r3, #0 2192 00ba E5D1 bne .L109 2193 .L112: 2194 .LBE351: 2195 .LBB356: 1550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 2196 .loc 1 1551 5 discriminator 1 2197 00bc 7B68 ldr r3, [r7, #4] 2198 00be 1B68 ldr r3, [r3] 2199 00c0 1433 adds r3, r3, #20 2200 00c2 BB62 str r3, [r7, #40] 2201 .LBB357: 2202 .LBB358: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2203 .loc 2 1072 4 discriminator 1 2204 00c4 BB6A ldr r3, [r7, #40] 2205 .syntax unified 2206 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2207 00c6 53E8003F ldrex r3, [r3] 2208 @ 0 "" 2 2209 .thumb 2210 .syntax unified 2211 00ca 7B62 str r3, [r7, #36] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2212 .loc 2 1073 10 discriminator 1 2213 00cc 7B6A ldr r3, [r7, #36] 2214 .LBE358: 2215 .LBE357: 2216 .loc 1 1551 5 discriminator 1 2217 00ce 43F00103 orr r3, r3, #1 2218 00d2 7B66 str r3, [r7, #100] 2219 00d4 7B68 ldr r3, [r7, #4] 2220 00d6 1B68 ldr r3, [r3] 2221 00d8 1433 adds r3, r3, #20 2222 00da 7A6E ldr r2, [r7, #100] 2223 00dc 7A63 str r2, [r7, #52] 2224 00de 3B63 str r3, [r7, #48] 2225 .LBB359: 2226 .LBB360: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2227 .loc 2 1123 4 discriminator 1 2228 00e0 396B ldr r1, [r7, #48] 2229 00e2 7A6B ldr r2, [r7, #52] 2230 .syntax unified 2231 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 87 2232 00e4 41E80023 strex r3, r2, [r1] 2233 @ 0 "" 2 2234 .thumb 2235 .syntax unified 2236 00e8 FB62 str r3, [r7, #44] 2237 .loc 2 1124 10 discriminator 1 2238 00ea FB6A ldr r3, [r7, #44] 2239 .LBE360: 2240 .LBE359: 2241 .loc 1 1551 5 discriminator 1 2242 00ec 002B cmp r3, #0 2243 00ee E5D1 bne .L112 2244 .L115: 2245 .LBE356: 2246 .LBB361: 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Rx request */ 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2247 .loc 1 1554 5 discriminator 1 2248 00f0 7B68 ldr r3, [r7, #4] 2249 00f2 1B68 ldr r3, [r3] 2250 00f4 1433 adds r3, r3, #20 2251 00f6 7B61 str r3, [r7, #20] 2252 .LBB362: 2253 .LBB363: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2254 .loc 2 1072 4 discriminator 1 2255 00f8 7B69 ldr r3, [r7, #20] 2256 .syntax unified 2257 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2258 00fa 53E8003F ldrex r3, [r3] 2259 @ 0 "" 2 2260 .thumb 2261 .syntax unified 2262 00fe 3B61 str r3, [r7, #16] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2263 .loc 2 1073 10 discriminator 1 2264 0100 3B69 ldr r3, [r7, #16] 2265 .LBE363: 2266 .LBE362: 2267 .loc 1 1554 5 discriminator 1 2268 0102 43F04003 orr r3, r3, #64 2269 0106 3B66 str r3, [r7, #96] 2270 0108 7B68 ldr r3, [r7, #4] 2271 010a 1B68 ldr r3, [r3] 2272 010c 1433 adds r3, r3, #20 2273 010e 3A6E ldr r2, [r7, #96] 2274 0110 3A62 str r2, [r7, #32] 2275 0112 FB61 str r3, [r7, #28] 2276 .LBB364: 2277 .LBB365: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2278 .loc 2 1123 4 discriminator 1 2279 0114 F969 ldr r1, [r7, #28] 2280 0116 3A6A ldr r2, [r7, #32] 2281 .syntax unified 2282 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 88 2283 0118 41E80023 strex r3, r2, [r1] 2284 @ 0 "" 2 2285 .thumb 2286 .syntax unified 2287 011c BB61 str r3, [r7, #24] 2288 .loc 2 1124 10 discriminator 1 2289 011e BB69 ldr r3, [r7, #24] 2290 .LBE365: 2291 .LBE364: 2292 .loc 1 1554 5 discriminator 1 2293 0120 002B cmp r3, #0 2294 0122 E5D1 bne .L115 2295 .L105: 2296 .LBE361: 1555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2297 .loc 1 1558 3 2298 0124 7B68 ldr r3, [r7, #4] 2299 0126 0022 movs r2, #0 2300 0128 83F83C20 strb r2, [r3, #60] 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2301 .loc 1 1560 10 2302 012c 0023 movs r3, #0 2303 .L100: 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2304 .loc 1 1561 1 2305 012e 1846 mov r0, r3 2306 0130 7437 adds r7, r7, #116 2307 .LCFI77: 2308 .cfi_def_cfa_offset 4 2309 0132 BD46 mov sp, r7 2310 .LCFI78: 2311 .cfi_def_cfa_register 13 2312 @ sp needed 2313 0134 5DF8047B ldr r7, [sp], #4 2314 .LCFI79: 2315 .cfi_restore 7 2316 .cfi_def_cfa_offset 0 2317 0138 7047 bx lr 2318 .cfi_endproc 2319 .LFE249: 2321 .section .text.HAL_UART_DMAStop,"ax",%progbits 2322 .align 1 2323 .global HAL_UART_DMAStop 2324 .syntax unified 2325 .thumb 2326 .thumb_func 2328 HAL_UART_DMAStop: 2329 .LFB250: 1562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Stops the DMA Transfer. 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 89 1567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2330 .loc 1 1570 1 2331 .cfi_startproc 2332 @ args = 0, pretend = 0, frame = 64 2333 @ frame_needed = 1, uses_anonymous_args = 0 2334 0000 80B5 push {r7, lr} 2335 .LCFI80: 2336 .cfi_def_cfa_offset 8 2337 .cfi_offset 7, -8 2338 .cfi_offset 14, -4 2339 0002 90B0 sub sp, sp, #64 2340 .LCFI81: 2341 .cfi_def_cfa_offset 72 2342 0004 00AF add r7, sp, #0 2343 .LCFI82: 2344 .cfi_def_cfa_register 7 2345 0006 7860 str r0, [r7, #4] 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2346 .loc 1 1571 12 2347 0008 0023 movs r3, #0 2348 000a FB63 str r3, [r7, #60] 1572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the correspond call back is executed HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 2349 .loc 1 1579 16 2350 000c 7B68 ldr r3, [r7, #4] 2351 000e 1B68 ldr r3, [r3] 2352 0010 5B69 ldr r3, [r3, #20] 2353 0012 03F08003 and r3, r3, #128 2354 0016 802B cmp r3, #128 2355 0018 0CBF ite eq 2356 001a 0123 moveq r3, #1 2357 001c 0023 movne r3, #0 2358 001e DBB2 uxtb r3, r3 2359 .loc 1 1579 14 2360 0020 FB63 str r3, [r7, #60] 1580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2361 .loc 1 1580 13 2362 0022 7B68 ldr r3, [r7, #4] 2363 0024 93F83D30 ldrb r3, [r3, #61] 2364 0028 DBB2 uxtb r3, r3 2365 .loc 1 1580 6 2366 002a 212B cmp r3, #33 2367 002c 28D1 bne .L117 2368 .loc 1 1580 49 discriminator 1 2369 002e FB6B ldr r3, [r7, #60] 2370 0030 002B cmp r3, #0 2371 0032 25D0 beq .L117 2372 .L120: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 90 2373 .LBB366: 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2374 .loc 1 1582 5 discriminator 1 2375 0034 7B68 ldr r3, [r7, #4] 2376 0036 1B68 ldr r3, [r3] 2377 0038 1433 adds r3, r3, #20 2378 003a 7B62 str r3, [r7, #36] 2379 .LBB367: 2380 .LBB368: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2381 .loc 2 1072 4 discriminator 1 2382 003c 7B6A ldr r3, [r7, #36] 2383 .syntax unified 2384 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2385 003e 53E8003F ldrex r3, [r3] 2386 @ 0 "" 2 2387 .thumb 2388 .syntax unified 2389 0042 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2390 .loc 2 1073 10 discriminator 1 2391 0044 3B6A ldr r3, [r7, #32] 2392 .LBE368: 2393 .LBE367: 2394 .loc 1 1582 5 discriminator 1 2395 0046 23F08003 bic r3, r3, #128 2396 004a BB63 str r3, [r7, #56] 2397 004c 7B68 ldr r3, [r7, #4] 2398 004e 1B68 ldr r3, [r3] 2399 0050 1433 adds r3, r3, #20 2400 0052 BA6B ldr r2, [r7, #56] 2401 0054 3A63 str r2, [r7, #48] 2402 0056 FB62 str r3, [r7, #44] 2403 .LBB369: 2404 .LBB370: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2405 .loc 2 1123 4 discriminator 1 2406 0058 F96A ldr r1, [r7, #44] 2407 005a 3A6B ldr r2, [r7, #48] 2408 .syntax unified 2409 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2410 005c 41E80023 strex r3, r2, [r1] 2411 @ 0 "" 2 2412 .thumb 2413 .syntax unified 2414 0060 BB62 str r3, [r7, #40] 2415 .loc 2 1124 10 discriminator 1 2416 0062 BB6A ldr r3, [r7, #40] 2417 .LBE370: 2418 .LBE369: 2419 .loc 1 1582 5 discriminator 1 2420 0064 002B cmp r3, #0 2421 0066 E5D1 bne .L120 2422 .LBE366: 1583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 91 1585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2423 .loc 1 1585 14 2424 0068 7B68 ldr r3, [r7, #4] 2425 006a 5B6B ldr r3, [r3, #52] 2426 .loc 1 1585 8 2427 006c 002B cmp r3, #0 2428 006e 04D0 beq .L121 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx); 2429 .loc 1 1587 7 2430 0070 7B68 ldr r3, [r7, #4] 2431 0072 5B6B ldr r3, [r3, #52] 2432 0074 1846 mov r0, r3 2433 0076 FFF7FEFF bl HAL_DMA_Abort 2434 .L121: 1588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 2435 .loc 1 1589 5 2436 007a 7868 ldr r0, [r7, #4] 2437 007c FFF7FEFF bl UART_EndTxTransfer 2438 .L117: 1590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 2439 .loc 1 1593 16 2440 0080 7B68 ldr r3, [r7, #4] 2441 0082 1B68 ldr r3, [r3] 2442 0084 5B69 ldr r3, [r3, #20] 2443 0086 03F04003 and r3, r3, #64 2444 008a 402B cmp r3, #64 2445 008c 0CBF ite eq 2446 008e 0123 moveq r3, #1 2447 0090 0023 movne r3, #0 2448 0092 DBB2 uxtb r3, r3 2449 .loc 1 1593 14 2450 0094 FB63 str r3, [r7, #60] 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2451 .loc 1 1594 13 2452 0096 7B68 ldr r3, [r7, #4] 2453 0098 93F83E30 ldrb r3, [r3, #62] 2454 009c DBB2 uxtb r3, r3 2455 .loc 1 1594 6 2456 009e 222B cmp r3, #34 2457 00a0 28D1 bne .L122 2458 .loc 1 1594 50 discriminator 1 2459 00a2 FB6B ldr r3, [r7, #60] 2460 00a4 002B cmp r3, #0 2461 00a6 25D0 beq .L122 2462 .L125: 2463 .LBB371: 1595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2464 .loc 1 1596 5 discriminator 1 2465 00a8 7B68 ldr r3, [r7, #4] 2466 00aa 1B68 ldr r3, [r3] 2467 00ac 1433 adds r3, r3, #20 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 92 2468 00ae 3B61 str r3, [r7, #16] 2469 .LBB372: 2470 .LBB373: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2471 .loc 2 1072 4 discriminator 1 2472 00b0 3B69 ldr r3, [r7, #16] 2473 .syntax unified 2474 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2475 00b2 53E8003F ldrex r3, [r3] 2476 @ 0 "" 2 2477 .thumb 2478 .syntax unified 2479 00b6 FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2480 .loc 2 1073 10 discriminator 1 2481 00b8 FB68 ldr r3, [r7, #12] 2482 .LBE373: 2483 .LBE372: 2484 .loc 1 1596 5 discriminator 1 2485 00ba 23F04003 bic r3, r3, #64 2486 00be 7B63 str r3, [r7, #52] 2487 00c0 7B68 ldr r3, [r7, #4] 2488 00c2 1B68 ldr r3, [r3] 2489 00c4 1433 adds r3, r3, #20 2490 00c6 7A6B ldr r2, [r7, #52] 2491 00c8 FA61 str r2, [r7, #28] 2492 00ca BB61 str r3, [r7, #24] 2493 .LBB374: 2494 .LBB375: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2495 .loc 2 1123 4 discriminator 1 2496 00cc B969 ldr r1, [r7, #24] 2497 00ce FA69 ldr r2, [r7, #28] 2498 .syntax unified 2499 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2500 00d0 41E80023 strex r3, r2, [r1] 2501 @ 0 "" 2 2502 .thumb 2503 .syntax unified 2504 00d4 7B61 str r3, [r7, #20] 2505 .loc 2 1124 10 discriminator 1 2506 00d6 7B69 ldr r3, [r7, #20] 2507 .LBE375: 2508 .LBE374: 2509 .loc 1 1596 5 discriminator 1 2510 00d8 002B cmp r3, #0 2511 00da E5D1 bne .L125 2512 .LBE371: 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2513 .loc 1 1599 14 2514 00dc 7B68 ldr r3, [r7, #4] 2515 00de 9B6B ldr r3, [r3, #56] 2516 .loc 1 1599 8 2517 00e0 002B cmp r3, #0 2518 00e2 04D0 beq .L126 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 93 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx); 2519 .loc 1 1601 7 2520 00e4 7B68 ldr r3, [r7, #4] 2521 00e6 9B6B ldr r3, [r3, #56] 2522 00e8 1846 mov r0, r3 2523 00ea FFF7FEFF bl HAL_DMA_Abort 2524 .L126: 1602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 2525 .loc 1 1603 5 2526 00ee 7868 ldr r0, [r7, #4] 2527 00f0 FFF7FEFF bl UART_EndRxTransfer 2528 .L122: 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2529 .loc 1 1606 10 2530 00f4 0023 movs r3, #0 1607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2531 .loc 1 1607 1 2532 00f6 1846 mov r0, r3 2533 00f8 4037 adds r7, r7, #64 2534 .LCFI83: 2535 .cfi_def_cfa_offset 8 2536 00fa BD46 mov sp, r7 2537 .LCFI84: 2538 .cfi_def_cfa_register 13 2539 @ sp needed 2540 00fc 80BD pop {r7, pc} 2541 .cfi_endproc 2542 .LFE250: 2544 .section .text.HAL_UARTEx_ReceiveToIdle,"ax",%progbits 2545 .align 1 2546 .global HAL_UARTEx_ReceiveToIdle 2547 .syntax unified 2548 .thumb 2549 .thumb_func 2551 HAL_UARTEx_ReceiveToIdle: 2552 .LFB251: 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receive an amount of data in blocking mode till either the expected number of data is re 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note HAL_OK is returned if reception is completed (expected number of data has been received 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * or if reception is stopped after IDLE event (less than the expected number of data has 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * In this case, RxLen output parameter indicates number of data available in reception bu 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param RxLen Number of data elements finally received (could be lower than Size, in case rece 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration expressed in ms (covers the whole reception sequence). 1622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 94 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Timeout) 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2553 .loc 1 1626 1 2554 .cfi_startproc 2555 @ args = 4, pretend = 0, frame = 32 2556 @ frame_needed = 1, uses_anonymous_args = 0 2557 0000 80B5 push {r7, lr} 2558 .LCFI85: 2559 .cfi_def_cfa_offset 8 2560 .cfi_offset 7, -8 2561 .cfi_offset 14, -4 2562 0002 88B0 sub sp, sp, #32 2563 .LCFI86: 2564 .cfi_def_cfa_offset 40 2565 0004 00AF add r7, sp, #0 2566 .LCFI87: 2567 .cfi_def_cfa_register 7 2568 0006 F860 str r0, [r7, #12] 2569 0008 B960 str r1, [r7, #8] 2570 000a 3B60 str r3, [r7] 2571 000c 1346 mov r3, r2 @ movhi 2572 000e FB80 strh r3, [r7, #6] @ movhi 1627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart; 1630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 2573 .loc 1 1632 12 2574 0010 FB68 ldr r3, [r7, #12] 2575 0012 93F83E30 ldrb r3, [r3, #62] 2576 0016 DBB2 uxtb r3, r3 2577 .loc 1 1632 6 2578 0018 202B cmp r3, #32 2579 001a 40F0C980 bne .L129 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 2580 .loc 1 1634 8 2581 001e BB68 ldr r3, [r7, #8] 2582 0020 002B cmp r3, #0 2583 0022 02D0 beq .L130 2584 .loc 1 1634 25 discriminator 1 2585 0024 FB88 ldrh r3, [r7, #6] 2586 0026 002B cmp r3, #0 2587 0028 01D1 bne .L131 2588 .L130: 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 2589 .loc 1 1636 15 2590 002a 0123 movs r3, #1 2591 002c C1E0 b .L132 2592 .L131: 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2593 .loc 1 1639 5 2594 002e FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 95 2595 0030 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 2596 0034 012B cmp r3, #1 2597 0036 01D1 bne .L133 2598 .loc 1 1639 5 is_stmt 0 discriminator 1 2599 0038 0223 movs r3, #2 2600 003a BAE0 b .L132 2601 .L133: 2602 .loc 1 1639 5 discriminator 2 2603 003c FB68 ldr r3, [r7, #12] 2604 003e 0122 movs r2, #1 2605 0040 83F83C20 strb r2, [r3, #60] 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2606 .loc 1 1641 22 is_stmt 1 discriminator 2 2607 0044 FB68 ldr r3, [r7, #12] 2608 0046 0022 movs r2, #0 2609 0048 1A64 str r2, [r3, #64] 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 2610 .loc 1 1642 20 discriminator 2 2611 004a FB68 ldr r3, [r7, #12] 2612 004c 2222 movs r2, #34 2613 004e 83F83E20 strb r2, [r3, #62] 1643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2614 .loc 1 1643 26 discriminator 2 2615 0052 FB68 ldr r3, [r7, #12] 2616 0054 0122 movs r2, #1 2617 0056 1A63 str r2, [r3, #48] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 2618 .loc 1 1646 17 discriminator 2 2619 0058 FFF7FEFF bl HAL_GetTick 2620 005c 7861 str r0, [r7, #20] 1647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 2621 .loc 1 1648 24 discriminator 2 2622 005e FB68 ldr r3, [r7, #12] 2623 0060 FA88 ldrh r2, [r7, #6] @ movhi 2624 0062 9A85 strh r2, [r3, #44] @ movhi 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 2625 .loc 1 1649 24 discriminator 2 2626 0064 FB68 ldr r3, [r7, #12] 2627 0066 FA88 ldrh r2, [r7, #6] @ movhi 2628 0068 DA85 strh r2, [r3, #46] @ movhi 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 2629 .loc 1 1652 21 discriminator 2 2630 006a FB68 ldr r3, [r7, #12] 2631 006c 9B68 ldr r3, [r3, #8] 2632 .loc 1 1652 8 discriminator 2 2633 006e B3F5805F cmp r3, #4096 2634 0072 08D1 bne .L134 2635 .loc 1 1652 71 discriminator 1 2636 0074 FB68 ldr r3, [r7, #12] 2637 0076 1B69 ldr r3, [r3, #16] 2638 .loc 1 1652 56 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 96 2639 0078 002B cmp r3, #0 2640 007a 04D1 bne .L134 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 2641 .loc 1 1654 19 2642 007c 0023 movs r3, #0 2643 007e FB61 str r3, [r7, #28] 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 2644 .loc 1 1655 19 2645 0080 BB68 ldr r3, [r7, #8] 2646 0082 BB61 str r3, [r7, #24] 2647 0084 03E0 b .L135 2648 .L134: 1656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 2649 .loc 1 1659 19 2650 0086 BB68 ldr r3, [r7, #8] 2651 0088 FB61 str r3, [r7, #28] 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 2652 .loc 1 1660 19 2653 008a 0023 movs r3, #0 2654 008c BB61 str r3, [r7, #24] 2655 .L135: 1661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2656 .loc 1 1663 5 2657 008e FB68 ldr r3, [r7, #12] 2658 0090 0022 movs r2, #0 2659 0092 83F83C20 strb r2, [r3, #60] 1664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize output number of received elements */ 1666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen = 0U; 2660 .loc 1 1666 12 2661 0096 3B68 ldr r3, [r7] 2662 0098 0022 movs r2, #0 2663 009a 1A80 strh r2, [r3] @ movhi 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* as long as data have to be received */ 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 2664 .loc 1 1669 11 2665 009c 74E0 b .L136 2666 .L145: 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if IDLE flag is set */ 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) 2667 .loc 1 1672 11 2668 009e FB68 ldr r3, [r7, #12] 2669 00a0 1B68 ldr r3, [r3] 2670 00a2 1B68 ldr r3, [r3] 2671 00a4 03F01003 and r3, r3, #16 2672 .loc 1 1672 10 2673 00a8 102B cmp r3, #16 2674 00aa 14D1 bne .L137 2675 .LBB376: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 97 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear IDLE flag in ISR */ 1675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 2676 .loc 1 1675 9 2677 00ac 0023 movs r3, #0 2678 00ae 3B61 str r3, [r7, #16] 2679 00b0 FB68 ldr r3, [r7, #12] 2680 00b2 1B68 ldr r3, [r3] 2681 00b4 1B68 ldr r3, [r3] 2682 00b6 3B61 str r3, [r7, #16] 2683 00b8 FB68 ldr r3, [r7, #12] 2684 00ba 1B68 ldr r3, [r3] 2685 00bc 5B68 ldr r3, [r3, #4] 2686 00be 3B61 str r3, [r7, #16] 2687 00c0 3B69 ldr r3, [r7, #16] 2688 .LBE376: 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Set, but no data ever received, clear flag without exiting loop */ 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Set, and data has already been received, this means Idle Event is valid : End recepti 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (*RxLen > 0U) 2689 .loc 1 1679 13 2690 00c2 3B68 ldr r3, [r7] 2691 00c4 1B88 ldrh r3, [r3] 2692 .loc 1 1679 12 2693 00c6 002B cmp r3, #0 2694 00c8 05D0 beq .L137 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2695 .loc 1 1681 26 2696 00ca FB68 ldr r3, [r7, #12] 2697 00cc 2022 movs r2, #32 2698 00ce 83F83E20 strb r2, [r3, #62] 1682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2699 .loc 1 1683 18 2700 00d2 0023 movs r3, #0 2701 00d4 6DE0 b .L132 2702 .L137: 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if RXNE flag is set */ 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) 2703 .loc 1 1688 11 2704 00d6 FB68 ldr r3, [r7, #12] 2705 00d8 1B68 ldr r3, [r3] 2706 00da 1B68 ldr r3, [r3] 2707 00dc 03F02003 and r3, r3, #32 2708 .loc 1 1688 10 2709 00e0 202B cmp r3, #32 2710 00e2 3CD1 bne .L138 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 2711 .loc 1 1690 12 2712 00e4 FB69 ldr r3, [r7, #28] 2713 00e6 002B cmp r3, #0 2714 00e8 0CD1 bne .L139 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 98 1691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 2715 .loc 1 1692 42 2716 00ea FB68 ldr r3, [r7, #12] 2717 00ec 1B68 ldr r3, [r3] 2718 .loc 1 1692 52 2719 00ee 5B68 ldr r3, [r3, #4] 2720 .loc 1 1692 26 2721 00f0 9BB2 uxth r3, r3 2722 00f2 C3F30803 ubfx r3, r3, #0, #9 2723 00f6 9AB2 uxth r2, r3 2724 .loc 1 1692 24 2725 00f8 BB69 ldr r3, [r7, #24] 2726 00fa 1A80 strh r2, [r3] @ movhi 1693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 2727 .loc 1 1693 22 2728 00fc BB69 ldr r3, [r7, #24] 2729 00fe 0233 adds r3, r3, #2 2730 0100 BB61 str r3, [r7, #24] 2731 0102 1FE0 b .L140 2732 .L139: 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WO 2733 .loc 1 1697 27 2734 0104 FB68 ldr r3, [r7, #12] 2735 0106 9B68 ldr r3, [r3, #8] 2736 .loc 1 1697 14 2737 0108 B3F5805F cmp r3, #4096 2738 010c 07D0 beq .L141 2739 .loc 1 1697 78 discriminator 1 2740 010e FB68 ldr r3, [r7, #12] 2741 0110 9B68 ldr r3, [r3, #8] 2742 .loc 1 1697 62 discriminator 1 2743 0112 002B cmp r3, #0 2744 0114 0AD1 bne .L142 2745 .loc 1 1697 128 discriminator 2 2746 0116 FB68 ldr r3, [r7, #12] 2747 0118 1B69 ldr r3, [r3, #16] 2748 .loc 1 1697 113 discriminator 2 2749 011a 002B cmp r3, #0 2750 011c 06D1 bne .L142 2751 .L141: 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 2752 .loc 1 1699 42 2753 011e FB68 ldr r3, [r7, #12] 2754 0120 1B68 ldr r3, [r3] 2755 .loc 1 1699 52 2756 0122 5B68 ldr r3, [r3, #4] 2757 .loc 1 1699 27 2758 0124 DAB2 uxtb r2, r3 2759 .loc 1 1699 25 2760 0126 FB69 ldr r3, [r7, #28] 2761 0128 1A70 strb r2, [r3] 2762 012a 08E0 b .L143 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 99 2763 .L142: 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 2764 .loc 1 1703 42 2765 012c FB68 ldr r3, [r7, #12] 2766 012e 1B68 ldr r3, [r3] 2767 .loc 1 1703 52 2768 0130 5B68 ldr r3, [r3, #4] 2769 .loc 1 1703 27 2770 0132 DBB2 uxtb r3, r3 2771 0134 03F07F03 and r3, r3, #127 2772 0138 DAB2 uxtb r2, r3 2773 .loc 1 1703 25 2774 013a FB69 ldr r3, [r7, #28] 2775 013c 1A70 strb r2, [r3] 2776 .L143: 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 2777 .loc 1 1706 21 2778 013e FB69 ldr r3, [r7, #28] 2779 0140 0133 adds r3, r3, #1 2780 0142 FB61 str r3, [r7, #28] 2781 .L140: 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Increment number of received elements */ 1709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen += 1U; 2782 .loc 1 1709 16 2783 0144 3B68 ldr r3, [r7] 2784 0146 1B88 ldrh r3, [r3] 2785 0148 0133 adds r3, r3, #1 2786 014a 9AB2 uxth r2, r3 2787 014c 3B68 ldr r3, [r7] 2788 014e 1A80 strh r2, [r3] @ movhi 1710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 2789 .loc 1 1710 14 2790 0150 FB68 ldr r3, [r7, #12] 2791 0152 DB8D ldrh r3, [r3, #46] @ movhi 2792 0154 9BB2 uxth r3, r3 2793 .loc 1 1710 27 2794 0156 013B subs r3, r3, #1 2795 0158 9AB2 uxth r2, r3 2796 015a FB68 ldr r3, [r7, #12] 2797 015c DA85 strh r2, [r3, #46] @ movhi 2798 .L138: 1711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */ 1714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) 2799 .loc 1 1714 10 2800 015e BB6A ldr r3, [r7, #40] 2801 0160 B3F1FF3F cmp r3, #-1 2802 0164 10D0 beq .L136 1715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 100 2803 .loc 1 1716 15 2804 0166 FFF7FEFF bl HAL_GetTick 2805 016a 0246 mov r2, r0 2806 .loc 1 1716 29 2807 016c 7B69 ldr r3, [r7, #20] 2808 016e D31A subs r3, r2, r3 2809 .loc 1 1716 12 2810 0170 BA6A ldr r2, [r7, #40] 2811 0172 9A42 cmp r2, r3 2812 0174 02D3 bcc .L144 2813 .loc 1 1716 53 discriminator 1 2814 0176 BB6A ldr r3, [r7, #40] 2815 0178 002B cmp r3, #0 2816 017a 05D1 bne .L136 2817 .L144: 1717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2818 .loc 1 1718 26 2819 017c FB68 ldr r3, [r7, #12] 2820 017e 2022 movs r2, #32 2821 0180 83F83E20 strb r2, [r3, #62] 1719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 2822 .loc 1 1720 18 2823 0184 0323 movs r3, #3 2824 0186 14E0 b .L132 2825 .L136: 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2826 .loc 1 1669 17 2827 0188 FB68 ldr r3, [r7, #12] 2828 018a DB8D ldrh r3, [r3, #46] @ movhi 2829 018c 9BB2 uxth r3, r3 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2830 .loc 1 1669 11 2831 018e 002B cmp r3, #0 2832 0190 85D1 bne .L145 1721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set number of received elements in output parameter : RxLen */ 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen = huart->RxXferSize - huart->RxXferCount; 2833 .loc 1 1726 19 2834 0192 FB68 ldr r3, [r7, #12] 2835 0194 9A8D ldrh r2, [r3, #44] 2836 .loc 1 1726 39 2837 0196 FB68 ldr r3, [r7, #12] 2838 0198 DB8D ldrh r3, [r3, #46] @ movhi 2839 019a 9BB2 uxth r3, r3 2840 .loc 1 1726 32 2841 019c D31A subs r3, r2, r3 2842 019e 9AB2 uxth r2, r3 2843 .loc 1 1726 12 2844 01a0 3B68 ldr r3, [r7] 2845 01a2 1A80 strh r2, [r3] @ movhi 1727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 101 2846 .loc 1 1728 20 2847 01a4 FB68 ldr r3, [r7, #12] 2848 01a6 2022 movs r2, #32 2849 01a8 83F83E20 strb r2, [r3, #62] 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2850 .loc 1 1730 12 2851 01ac 0023 movs r3, #0 2852 01ae 00E0 b .L132 2853 .L129: 1731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 2854 .loc 1 1734 12 2855 01b0 0223 movs r3, #2 2856 .L132: 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2857 .loc 1 1736 1 2858 01b2 1846 mov r0, r3 2859 01b4 2037 adds r7, r7, #32 2860 .LCFI88: 2861 .cfi_def_cfa_offset 8 2862 01b6 BD46 mov sp, r7 2863 .LCFI89: 2864 .cfi_def_cfa_register 13 2865 @ sp needed 2866 01b8 80BD pop {r7, pc} 2867 .cfi_endproc 2868 .LFE251: 2870 .section .text.HAL_UARTEx_ReceiveToIdle_IT,"ax",%progbits 2871 .align 1 2872 .global HAL_UARTEx_ReceiveToIdle_IT 2873 .syntax unified 2874 .thumb 2875 .thumb_func 2877 HAL_UARTEx_ReceiveToIdle_IT: 2878 .LFB252: 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receive an amount of data in interrupt mode till either the expected number of data is r 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * to UART interrupts raised by RXNE and IDLE events. Callback is called at end of recepti 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * number of received data elements. 1743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2879 .loc 1 1752 1 2880 .cfi_startproc ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 102 2881 @ args = 0, pretend = 0, frame = 48 2882 @ frame_needed = 1, uses_anonymous_args = 0 2883 0000 80B5 push {r7, lr} 2884 .LCFI90: 2885 .cfi_def_cfa_offset 8 2886 .cfi_offset 7, -8 2887 .cfi_offset 14, -4 2888 0002 8CB0 sub sp, sp, #48 2889 .LCFI91: 2890 .cfi_def_cfa_offset 56 2891 0004 00AF add r7, sp, #0 2892 .LCFI92: 2893 .cfi_def_cfa_register 7 2894 0006 F860 str r0, [r7, #12] 2895 0008 B960 str r1, [r7, #8] 2896 000a 1346 mov r3, r2 2897 000c FB80 strh r3, [r7, #6] @ movhi 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 2898 .loc 1 1756 12 2899 000e FB68 ldr r3, [r7, #12] 2900 0010 93F83E30 ldrb r3, [r3, #62] 2901 0014 DBB2 uxtb r3, r3 2902 .loc 1 1756 6 2903 0016 202B cmp r3, #32 2904 0018 52D1 bne .L147 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 2905 .loc 1 1758 8 2906 001a BB68 ldr r3, [r7, #8] 2907 001c 002B cmp r3, #0 2908 001e 02D0 beq .L148 2909 .loc 1 1758 25 discriminator 1 2910 0020 FB88 ldrh r3, [r7, #6] 2911 0022 002B cmp r3, #0 2912 0024 01D1 bne .L149 2913 .L148: 1759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 2914 .loc 1 1760 14 2915 0026 0123 movs r3, #1 2916 0028 4BE0 b .L150 2917 .L149: 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2918 .loc 1 1763 5 2919 002a FB68 ldr r3, [r7, #12] 2920 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 2921 0030 012B cmp r3, #1 2922 0032 01D1 bne .L151 2923 .loc 1 1763 5 is_stmt 0 discriminator 1 2924 0034 0223 movs r3, #2 2925 0036 44E0 b .L150 2926 .L151: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 103 2927 .loc 1 1763 5 discriminator 2 2928 0038 FB68 ldr r3, [r7, #12] 2929 003a 0122 movs r2, #1 2930 003c 83F83C20 strb r2, [r3, #60] 1764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to reception till IDLE Event*/ 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2931 .loc 1 1766 26 is_stmt 1 discriminator 2 2932 0040 FB68 ldr r3, [r7, #12] 2933 0042 0122 movs r2, #1 2934 0044 1A63 str r2, [r3, #48] 1767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = UART_Start_Receive_IT(huart, pData, Size); 2935 .loc 1 1768 15 discriminator 2 2936 0046 FB88 ldrh r3, [r7, #6] 2937 0048 1A46 mov r2, r3 2938 004a B968 ldr r1, [r7, #8] 2939 004c F868 ldr r0, [r7, #12] 2940 004e FFF7FEFF bl UART_Start_Receive_IT 2941 0052 0346 mov r3, r0 2942 0054 87F82F30 strb r3, [r7, #47] 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check Rx process has been successfully started */ 1771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (status == HAL_OK) 2943 .loc 1 1771 8 discriminator 2 2944 0058 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2 2945 005c 002B cmp r3, #0 2946 005e 2CD1 bne .L152 1772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2947 .loc 1 1773 16 2948 0060 FB68 ldr r3, [r7, #12] 2949 0062 1B6B ldr r3, [r3, #48] 2950 .loc 1 1773 10 2951 0064 012B cmp r3, #1 2952 0066 25D1 bne .L153 2953 .LBB377: 1774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 2954 .loc 1 1775 9 2955 0068 0023 movs r3, #0 2956 006a 3B61 str r3, [r7, #16] 2957 006c FB68 ldr r3, [r7, #12] 2958 006e 1B68 ldr r3, [r3] 2959 0070 1B68 ldr r3, [r3] 2960 0072 3B61 str r3, [r7, #16] 2961 0074 FB68 ldr r3, [r7, #12] 2962 0076 1B68 ldr r3, [r3] 2963 0078 5B68 ldr r3, [r3, #4] 2964 007a 3B61 str r3, [r7, #16] 2965 007c 3B69 ldr r3, [r7, #16] 2966 .L156: 2967 .LBE377: 2968 .LBB378: 1776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 2969 .loc 1 1776 9 discriminator 1 2970 007e FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 104 2971 0080 1B68 ldr r3, [r3] 2972 0082 0C33 adds r3, r3, #12 2973 0084 BB61 str r3, [r7, #24] 2974 .LBB379: 2975 .LBB380: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2976 .loc 2 1072 4 discriminator 1 2977 0086 BB69 ldr r3, [r7, #24] 2978 .syntax unified 2979 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2980 0088 53E8003F ldrex r3, [r3] 2981 @ 0 "" 2 2982 .thumb 2983 .syntax unified 2984 008c 7B61 str r3, [r7, #20] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2985 .loc 2 1073 10 discriminator 1 2986 008e 7B69 ldr r3, [r7, #20] 2987 .LBE380: 2988 .LBE379: 2989 .loc 1 1776 9 discriminator 1 2990 0090 43F01003 orr r3, r3, #16 2991 0094 BB62 str r3, [r7, #40] 2992 0096 FB68 ldr r3, [r7, #12] 2993 0098 1B68 ldr r3, [r3] 2994 009a 0C33 adds r3, r3, #12 2995 009c BA6A ldr r2, [r7, #40] 2996 009e 7A62 str r2, [r7, #36] 2997 00a0 3B62 str r3, [r7, #32] 2998 .LBB381: 2999 .LBB382: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3000 .loc 2 1123 4 discriminator 1 3001 00a2 396A ldr r1, [r7, #32] 3002 00a4 7A6A ldr r2, [r7, #36] 3003 .syntax unified 3004 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3005 00a6 41E80023 strex r3, r2, [r1] 3006 @ 0 "" 2 3007 .thumb 3008 .syntax unified 3009 00aa FB61 str r3, [r7, #28] 3010 .loc 2 1124 10 discriminator 1 3011 00ac FB69 ldr r3, [r7, #28] 3012 .LBE382: 3013 .LBE381: 3014 .loc 1 1776 9 discriminator 1 3015 00ae 002B cmp r3, #0 3016 00b0 E5D1 bne .L156 3017 00b2 02E0 b .L152 3018 .L153: 3019 .LBE378: 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of errors already pending when reception is started, 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Interrupts may have already been raised and lead to reception abortion. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 105 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (Overrun error for instance). 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ 1784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 3020 .loc 1 1784 16 3021 00b4 0123 movs r3, #1 3022 00b6 87F82F30 strb r3, [r7, #47] 3023 .L152: 1785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 3024 .loc 1 1788 12 3025 00ba 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2 3026 00be 00E0 b .L150 3027 .L147: 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 3028 .loc 1 1792 12 3029 00c0 0223 movs r3, #2 3030 .L150: 1793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3031 .loc 1 1794 1 3032 00c2 1846 mov r0, r3 3033 00c4 3037 adds r7, r7, #48 3034 .LCFI93: 3035 .cfi_def_cfa_offset 8 3036 00c6 BD46 mov sp, r7 3037 .LCFI94: 3038 .cfi_def_cfa_register 13 3039 @ sp needed 3040 00c8 80BD pop {r7, pc} 3041 .cfi_endproc 3042 .LFE252: 3044 .section .text.HAL_UARTEx_ReceiveToIdle_DMA,"ax",%progbits 3045 .align 1 3046 .global HAL_UARTEx_ReceiveToIdle_DMA 3047 .syntax unified 3048 .thumb 3049 .thumb_func 3051 HAL_UARTEx_ReceiveToIdle_DMA: 3052 .LFB253: 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receive an amount of data in DMA mode till either the expected number of data is receive 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved 1799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * to DMA services, transferring automatically received data elements in user reception bu 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * calling registered callbacks at half/end of reception. UART IDLE events are also used t 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * reception phase as ended. In all cases, callback execution will indicate number of rece 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the parity bit (MSB position). 1804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 106 1808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t 1813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3053 .loc 1 1813 1 3054 .cfi_startproc 3055 @ args = 0, pretend = 0, frame = 48 3056 @ frame_needed = 1, uses_anonymous_args = 0 3057 0000 80B5 push {r7, lr} 3058 .LCFI95: 3059 .cfi_def_cfa_offset 8 3060 .cfi_offset 7, -8 3061 .cfi_offset 14, -4 3062 0002 8CB0 sub sp, sp, #48 3063 .LCFI96: 3064 .cfi_def_cfa_offset 56 3065 0004 00AF add r7, sp, #0 3066 .LCFI97: 3067 .cfi_def_cfa_register 7 3068 0006 F860 str r0, [r7, #12] 3069 0008 B960 str r1, [r7, #8] 3070 000a 1346 mov r3, r2 3071 000c FB80 strh r3, [r7, #6] @ movhi 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 3072 .loc 1 1817 12 3073 000e FB68 ldr r3, [r7, #12] 3074 0010 93F83E30 ldrb r3, [r3, #62] 3075 0014 DBB2 uxtb r3, r3 3076 .loc 1 1817 6 3077 0016 202B cmp r3, #32 3078 0018 52D1 bne .L158 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 3079 .loc 1 1819 8 3080 001a BB68 ldr r3, [r7, #8] 3081 001c 002B cmp r3, #0 3082 001e 02D0 beq .L159 3083 .loc 1 1819 25 discriminator 1 3084 0020 FB88 ldrh r3, [r7, #6] 3085 0022 002B cmp r3, #0 3086 0024 01D1 bne .L160 3087 .L159: 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 3088 .loc 1 1821 14 3089 0026 0123 movs r3, #1 3090 0028 4BE0 b .L161 3091 .L160: 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 3092 .loc 1 1824 5 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 107 3093 002a FB68 ldr r3, [r7, #12] 3094 002c 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 3095 0030 012B cmp r3, #1 3096 0032 01D1 bne .L162 3097 .loc 1 1824 5 is_stmt 0 discriminator 1 3098 0034 0223 movs r3, #2 3099 0036 44E0 b .L161 3100 .L162: 3101 .loc 1 1824 5 discriminator 2 3102 0038 FB68 ldr r3, [r7, #12] 3103 003a 0122 movs r2, #1 3104 003c 83F83C20 strb r2, [r3, #60] 1825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to reception till IDLE Event*/ 1827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 3105 .loc 1 1827 26 is_stmt 1 discriminator 2 3106 0040 FB68 ldr r3, [r7, #12] 3107 0042 0122 movs r2, #1 3108 0044 1A63 str r2, [r3, #48] 1828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = UART_Start_Receive_DMA(huart, pData, Size); 3109 .loc 1 1829 15 discriminator 2 3110 0046 FB88 ldrh r3, [r7, #6] 3111 0048 1A46 mov r2, r3 3112 004a B968 ldr r1, [r7, #8] 3113 004c F868 ldr r0, [r7, #12] 3114 004e FFF7FEFF bl UART_Start_Receive_DMA 3115 0052 0346 mov r3, r0 3116 0054 87F82F30 strb r3, [r7, #47] 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check Rx process has been successfully started */ 1832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (status == HAL_OK) 3117 .loc 1 1832 8 discriminator 2 3118 0058 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2 3119 005c 002B cmp r3, #0 3120 005e 2CD1 bne .L163 1833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3121 .loc 1 1834 16 3122 0060 FB68 ldr r3, [r7, #12] 3123 0062 1B6B ldr r3, [r3, #48] 3124 .loc 1 1834 10 3125 0064 012B cmp r3, #1 3126 0066 25D1 bne .L164 3127 .LBB383: 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 3128 .loc 1 1836 9 3129 0068 0023 movs r3, #0 3130 006a 3B61 str r3, [r7, #16] 3131 006c FB68 ldr r3, [r7, #12] 3132 006e 1B68 ldr r3, [r3] 3133 0070 1B68 ldr r3, [r3] 3134 0072 3B61 str r3, [r7, #16] 3135 0074 FB68 ldr r3, [r7, #12] 3136 0076 1B68 ldr r3, [r3] 3137 0078 5B68 ldr r3, [r3, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 108 3138 007a 3B61 str r3, [r7, #16] 3139 007c 3B69 ldr r3, [r7, #16] 3140 .L167: 3141 .LBE383: 3142 .LBB384: 1837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 3143 .loc 1 1837 9 discriminator 1 3144 007e FB68 ldr r3, [r7, #12] 3145 0080 1B68 ldr r3, [r3] 3146 0082 0C33 adds r3, r3, #12 3147 0084 BB61 str r3, [r7, #24] 3148 .LBB385: 3149 .LBB386: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3150 .loc 2 1072 4 discriminator 1 3151 0086 BB69 ldr r3, [r7, #24] 3152 .syntax unified 3153 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3154 0088 53E8003F ldrex r3, [r3] 3155 @ 0 "" 2 3156 .thumb 3157 .syntax unified 3158 008c 7B61 str r3, [r7, #20] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3159 .loc 2 1073 10 discriminator 1 3160 008e 7B69 ldr r3, [r7, #20] 3161 .LBE386: 3162 .LBE385: 3163 .loc 1 1837 9 discriminator 1 3164 0090 43F01003 orr r3, r3, #16 3165 0094 BB62 str r3, [r7, #40] 3166 0096 FB68 ldr r3, [r7, #12] 3167 0098 1B68 ldr r3, [r3] 3168 009a 0C33 adds r3, r3, #12 3169 009c BA6A ldr r2, [r7, #40] 3170 009e 7A62 str r2, [r7, #36] 3171 00a0 3B62 str r3, [r7, #32] 3172 .LBB387: 3173 .LBB388: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3174 .loc 2 1123 4 discriminator 1 3175 00a2 396A ldr r1, [r7, #32] 3176 00a4 7A6A ldr r2, [r7, #36] 3177 .syntax unified 3178 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3179 00a6 41E80023 strex r3, r2, [r1] 3180 @ 0 "" 2 3181 .thumb 3182 .syntax unified 3183 00aa FB61 str r3, [r7, #28] 3184 .loc 2 1124 10 discriminator 1 3185 00ac FB69 ldr r3, [r7, #28] 3186 .LBE388: 3187 .LBE387: 3188 .loc 1 1837 9 discriminator 1 3189 00ae 002B cmp r3, #0 3190 00b0 E5D1 bne .L167 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 109 3191 00b2 02E0 b .L163 3192 .L164: 3193 .LBE384: 1838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of errors already pending when reception is started, 1842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Interrupts may have already been raised and lead to reception abortion. 1843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (Overrun error for instance). 1844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ 1845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 3194 .loc 1 1845 16 3195 00b4 0123 movs r3, #1 3196 00b6 87F82F30 strb r3, [r7, #47] 3197 .L163: 1846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 3198 .loc 1 1849 12 3199 00ba 97F82F30 ldrb r3, [r7, #47] @ zero_extendqisi2 3200 00be 00E0 b .L161 3201 .L158: 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 3202 .loc 1 1853 12 3203 00c0 0223 movs r3, #2 3204 .L161: 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3205 .loc 1 1855 1 3206 00c2 1846 mov r0, r3 3207 00c4 3037 adds r7, r7, #48 3208 .LCFI98: 3209 .cfi_def_cfa_offset 8 3210 00c6 BD46 mov sp, r7 3211 .LCFI99: 3212 .cfi_def_cfa_register 13 3213 @ sp needed 3214 00c8 80BD pop {r7, pc} 3215 .cfi_endproc 3216 .LFE253: 3218 .section .text.HAL_UART_Abort,"ax",%progbits 3219 .align 1 3220 .global HAL_UART_Abort 3221 .syntax unified 3222 .thumb 3223 .thumb_func 3225 HAL_UART_Abort: 3226 .LFB254: 1856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode). 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 110 1861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) 1870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3227 .loc 1 1870 1 3228 .cfi_startproc 3229 @ args = 0, pretend = 0, frame = 128 3230 @ frame_needed = 1, uses_anonymous_args = 0 3231 0000 80B5 push {r7, lr} 3232 .LCFI100: 3233 .cfi_def_cfa_offset 8 3234 .cfi_offset 7, -8 3235 .cfi_offset 14, -4 3236 0002 A0B0 sub sp, sp, #128 3237 .LCFI101: 3238 .cfi_def_cfa_offset 136 3239 0004 00AF add r7, sp, #0 3240 .LCFI102: 3241 .cfi_def_cfa_register 7 3242 0006 7860 str r0, [r7, #4] 3243 .L171: 3244 .LBB389: 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USA 3245 .loc 1 1872 3 discriminator 1 3246 0008 7B68 ldr r3, [r7, #4] 3247 000a 1B68 ldr r3, [r3] 3248 000c 0C33 adds r3, r3, #12 3249 000e FB65 str r3, [r7, #92] 3250 .LBB390: 3251 .LBB391: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3252 .loc 2 1072 4 discriminator 1 3253 0010 FB6D ldr r3, [r7, #92] 3254 .syntax unified 3255 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3256 0012 53E8003F ldrex r3, [r3] 3257 @ 0 "" 2 3258 .thumb 3259 .syntax unified 3260 0016 BB65 str r3, [r7, #88] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3261 .loc 2 1073 10 discriminator 1 3262 0018 BB6D ldr r3, [r7, #88] 3263 .LBE391: 3264 .LBE390: 3265 .loc 1 1872 3 discriminator 1 3266 001a 23F4F073 bic r3, r3, #480 3267 001e FB67 str r3, [r7, #124] 3268 0020 7B68 ldr r3, [r7, #4] 3269 0022 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 111 3270 0024 0C33 adds r3, r3, #12 3271 0026 FA6F ldr r2, [r7, #124] 3272 0028 BA66 str r2, [r7, #104] 3273 002a 7B66 str r3, [r7, #100] 3274 .LBB392: 3275 .LBB393: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3276 .loc 2 1123 4 discriminator 1 3277 002c 796E ldr r1, [r7, #100] 3278 002e BA6E ldr r2, [r7, #104] 3279 .syntax unified 3280 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3281 0030 41E80023 strex r3, r2, [r1] 3282 @ 0 "" 2 3283 .thumb 3284 .syntax unified 3285 0034 3B66 str r3, [r7, #96] 3286 .loc 2 1124 10 discriminator 1 3287 0036 3B6E ldr r3, [r7, #96] 3288 .LBE393: 3289 .LBE392: 3290 .loc 1 1872 3 discriminator 1 3291 0038 002B cmp r3, #0 3292 003a E5D1 bne .L171 3293 .L174: 3294 .LBE389: 3295 .LBB394: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3296 .loc 1 1873 3 discriminator 1 3297 003c 7B68 ldr r3, [r7, #4] 3298 003e 1B68 ldr r3, [r3] 3299 0040 1433 adds r3, r3, #20 3300 0042 BB64 str r3, [r7, #72] 3301 .LBB395: 3302 .LBB396: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3303 .loc 2 1072 4 discriminator 1 3304 0044 BB6C ldr r3, [r7, #72] 3305 .syntax unified 3306 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3307 0046 53E8003F ldrex r3, [r3] 3308 @ 0 "" 2 3309 .thumb 3310 .syntax unified 3311 004a 7B64 str r3, [r7, #68] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3312 .loc 2 1073 10 discriminator 1 3313 004c 7B6C ldr r3, [r7, #68] 3314 .LBE396: 3315 .LBE395: 3316 .loc 1 1873 3 discriminator 1 3317 004e 23F00103 bic r3, r3, #1 3318 0052 BB67 str r3, [r7, #120] 3319 0054 7B68 ldr r3, [r7, #4] 3320 0056 1B68 ldr r3, [r3] 3321 0058 1433 adds r3, r3, #20 3322 005a BA6F ldr r2, [r7, #120] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 112 3323 005c 7A65 str r2, [r7, #84] 3324 005e 3B65 str r3, [r7, #80] 3325 .LBB397: 3326 .LBB398: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3327 .loc 2 1123 4 discriminator 1 3328 0060 396D ldr r1, [r7, #80] 3329 0062 7A6D ldr r2, [r7, #84] 3330 .syntax unified 3331 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3332 0064 41E80023 strex r3, r2, [r1] 3333 @ 0 "" 2 3334 .thumb 3335 .syntax unified 3336 0068 FB64 str r3, [r7, #76] 3337 .loc 2 1124 10 discriminator 1 3338 006a FB6C ldr r3, [r7, #76] 3339 .LBE398: 3340 .LBE397: 3341 .loc 1 1873 3 discriminator 1 3342 006c 002B cmp r3, #0 3343 006e E5D1 bne .L174 3344 .LBE394: 1874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 1876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3345 .loc 1 1876 12 3346 0070 7B68 ldr r3, [r7, #4] 3347 0072 1B6B ldr r3, [r3, #48] 3348 .loc 1 1876 6 3349 0074 012B cmp r3, #1 3350 0076 19D1 bne .L175 3351 .L178: 3352 .LBB399: 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 3353 .loc 1 1878 5 discriminator 1 3354 0078 7B68 ldr r3, [r7, #4] 3355 007a 1B68 ldr r3, [r3] 3356 007c 0C33 adds r3, r3, #12 3357 007e 7B63 str r3, [r7, #52] 3358 .LBB400: 3359 .LBB401: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3360 .loc 2 1072 4 discriminator 1 3361 0080 7B6B ldr r3, [r7, #52] 3362 .syntax unified 3363 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3364 0082 53E8003F ldrex r3, [r3] 3365 @ 0 "" 2 3366 .thumb 3367 .syntax unified 3368 0086 3B63 str r3, [r7, #48] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3369 .loc 2 1073 10 discriminator 1 3370 0088 3B6B ldr r3, [r7, #48] 3371 .LBE401: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 113 3372 .LBE400: 3373 .loc 1 1878 5 discriminator 1 3374 008a 23F01003 bic r3, r3, #16 3375 008e 7B67 str r3, [r7, #116] 3376 0090 7B68 ldr r3, [r7, #4] 3377 0092 1B68 ldr r3, [r3] 3378 0094 0C33 adds r3, r3, #12 3379 0096 7A6F ldr r2, [r7, #116] 3380 0098 3A64 str r2, [r7, #64] 3381 009a FB63 str r3, [r7, #60] 3382 .LBB402: 3383 .LBB403: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3384 .loc 2 1123 4 discriminator 1 3385 009c F96B ldr r1, [r7, #60] 3386 009e 3A6C ldr r2, [r7, #64] 3387 .syntax unified 3388 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3389 00a0 41E80023 strex r3, r2, [r1] 3390 @ 0 "" 2 3391 .thumb 3392 .syntax unified 3393 00a4 BB63 str r3, [r7, #56] 3394 .loc 2 1124 10 discriminator 1 3395 00a6 BB6B ldr r3, [r7, #56] 3396 .LBE403: 3397 .LBE402: 3398 .loc 1 1878 5 discriminator 1 3399 00a8 002B cmp r3, #0 3400 00aa E5D1 bne .L178 3401 .L175: 3402 .LBE399: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 3403 .loc 1 1882 7 3404 00ac 7B68 ldr r3, [r7, #4] 3405 00ae 1B68 ldr r3, [r3] 3406 00b0 5B69 ldr r3, [r3, #20] 3407 00b2 03F08003 and r3, r3, #128 3408 .loc 1 1882 6 3409 00b6 802B cmp r3, #128 3410 00b8 36D1 bne .L179 3411 .L182: 3412 .LBB404: 1883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 3413 .loc 1 1884 5 discriminator 1 3414 00ba 7B68 ldr r3, [r7, #4] 3415 00bc 1B68 ldr r3, [r3] 3416 00be 1433 adds r3, r3, #20 3417 00c0 3B62 str r3, [r7, #32] 3418 .LBB405: 3419 .LBB406: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3420 .loc 2 1072 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 114 3421 00c2 3B6A ldr r3, [r7, #32] 3422 .syntax unified 3423 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3424 00c4 53E8003F ldrex r3, [r3] 3425 @ 0 "" 2 3426 .thumb 3427 .syntax unified 3428 00c8 FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3429 .loc 2 1073 10 discriminator 1 3430 00ca FB69 ldr r3, [r7, #28] 3431 .LBE406: 3432 .LBE405: 3433 .loc 1 1884 5 discriminator 1 3434 00cc 23F08003 bic r3, r3, #128 3435 00d0 3B67 str r3, [r7, #112] 3436 00d2 7B68 ldr r3, [r7, #4] 3437 00d4 1B68 ldr r3, [r3] 3438 00d6 1433 adds r3, r3, #20 3439 00d8 3A6F ldr r2, [r7, #112] 3440 00da FA62 str r2, [r7, #44] 3441 00dc BB62 str r3, [r7, #40] 3442 .LBB407: 3443 .LBB408: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3444 .loc 2 1123 4 discriminator 1 3445 00de B96A ldr r1, [r7, #40] 3446 00e0 FA6A ldr r2, [r7, #44] 3447 .syntax unified 3448 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3449 00e2 41E80023 strex r3, r2, [r1] 3450 @ 0 "" 2 3451 .thumb 3452 .syntax unified 3453 00e6 7B62 str r3, [r7, #36] 3454 .loc 2 1124 10 discriminator 1 3455 00e8 7B6A ldr r3, [r7, #36] 3456 .LBE408: 3457 .LBE407: 3458 .loc 1 1884 5 discriminator 1 3459 00ea 002B cmp r3, #0 3460 00ec E5D1 bne .L182 3461 .LBE404: 1885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream: use blocking DMA Abort API (no callback) */ 1887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 3462 .loc 1 1887 14 3463 00ee 7B68 ldr r3, [r7, #4] 3464 00f0 5B6B ldr r3, [r3, #52] 3465 .loc 1 1887 8 3466 00f2 002B cmp r3, #0 3467 00f4 18D0 beq .L179 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 3468 .loc 1 1891 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 115 3469 00f6 7B68 ldr r3, [r7, #4] 3470 00f8 5B6B ldr r3, [r3, #52] 3471 .loc 1 1891 40 3472 00fa 0022 movs r2, #0 3473 00fc 1A65 str r2, [r3, #80] 1892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 3474 .loc 1 1893 11 3475 00fe 7B68 ldr r3, [r7, #4] 3476 0100 5B6B ldr r3, [r3, #52] 3477 0102 1846 mov r0, r3 3478 0104 FFF7FEFF bl HAL_DMA_Abort 3479 0108 0346 mov r3, r0 3480 .loc 1 1893 10 3481 010a 002B cmp r3, #0 3482 010c 0CD0 beq .L179 1894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 3483 .loc 1 1895 13 3484 010e 7B68 ldr r3, [r7, #4] 3485 0110 5B6B ldr r3, [r3, #52] 3486 0112 1846 mov r0, r3 3487 0114 FFF7FEFF bl HAL_DMA_GetError 3488 0118 0346 mov r3, r0 3489 .loc 1 1895 12 3490 011a 202B cmp r3, #32 3491 011c 04D1 bne .L179 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 3492 .loc 1 1898 28 3493 011e 7B68 ldr r3, [r7, #4] 3494 0120 1022 movs r2, #16 3495 0122 1A64 str r2, [r3, #64] 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 3496 .loc 1 1900 18 3497 0124 0323 movs r3, #3 3498 0126 52E0 b .L183 3499 .L179: 1901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 3500 .loc 1 1907 7 3501 0128 7B68 ldr r3, [r7, #4] 3502 012a 1B68 ldr r3, [r3] 3503 012c 5B69 ldr r3, [r3, #20] 3504 012e 03F04003 and r3, r3, #64 3505 .loc 1 1907 6 3506 0132 402B cmp r3, #64 3507 0134 36D1 bne .L184 3508 .L187: 3509 .LBB409: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 116 1908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 3510 .loc 1 1909 5 discriminator 1 3511 0136 7B68 ldr r3, [r7, #4] 3512 0138 1B68 ldr r3, [r3] 3513 013a 1433 adds r3, r3, #20 3514 013c FB60 str r3, [r7, #12] 3515 .LBB410: 3516 .LBB411: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3517 .loc 2 1072 4 discriminator 1 3518 013e FB68 ldr r3, [r7, #12] 3519 .syntax unified 3520 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3521 0140 53E8003F ldrex r3, [r3] 3522 @ 0 "" 2 3523 .thumb 3524 .syntax unified 3525 0144 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3526 .loc 2 1073 10 discriminator 1 3527 0146 BB68 ldr r3, [r7, #8] 3528 .LBE411: 3529 .LBE410: 3530 .loc 1 1909 5 discriminator 1 3531 0148 23F04003 bic r3, r3, #64 3532 014c FB66 str r3, [r7, #108] 3533 014e 7B68 ldr r3, [r7, #4] 3534 0150 1B68 ldr r3, [r3] 3535 0152 1433 adds r3, r3, #20 3536 0154 FA6E ldr r2, [r7, #108] 3537 0156 BA61 str r2, [r7, #24] 3538 0158 7B61 str r3, [r7, #20] 3539 .LBB412: 3540 .LBB413: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3541 .loc 2 1123 4 discriminator 1 3542 015a 7969 ldr r1, [r7, #20] 3543 015c BA69 ldr r2, [r7, #24] 3544 .syntax unified 3545 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3546 015e 41E80023 strex r3, r2, [r1] 3547 @ 0 "" 2 3548 .thumb 3549 .syntax unified 3550 0162 3B61 str r3, [r7, #16] 3551 .loc 2 1124 10 discriminator 1 3552 0164 3B69 ldr r3, [r7, #16] 3553 .LBE413: 3554 .LBE412: 3555 .loc 1 1909 5 discriminator 1 3556 0166 002B cmp r3, #0 3557 0168 E5D1 bne .L187 3558 .LBE409: 1910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream: use blocking DMA Abort API (no callback) */ 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 117 3559 .loc 1 1912 14 3560 016a 7B68 ldr r3, [r7, #4] 3561 016c 9B6B ldr r3, [r3, #56] 3562 .loc 1 1912 8 3563 016e 002B cmp r3, #0 3564 0170 18D0 beq .L184 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 3565 .loc 1 1916 12 3566 0172 7B68 ldr r3, [r7, #4] 3567 0174 9B6B ldr r3, [r3, #56] 3568 .loc 1 1916 40 3569 0176 0022 movs r2, #0 3570 0178 1A65 str r2, [r3, #80] 1917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 3571 .loc 1 1918 11 3572 017a 7B68 ldr r3, [r7, #4] 3573 017c 9B6B ldr r3, [r3, #56] 3574 017e 1846 mov r0, r3 3575 0180 FFF7FEFF bl HAL_DMA_Abort 3576 0184 0346 mov r3, r0 3577 .loc 1 1918 10 3578 0186 002B cmp r3, #0 3579 0188 0CD0 beq .L184 1919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 3580 .loc 1 1920 13 3581 018a 7B68 ldr r3, [r7, #4] 3582 018c 9B6B ldr r3, [r3, #56] 3583 018e 1846 mov r0, r3 3584 0190 FFF7FEFF bl HAL_DMA_GetError 3585 0194 0346 mov r3, r0 3586 .loc 1 1920 12 3587 0196 202B cmp r3, #32 3588 0198 04D1 bne .L184 1921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 3589 .loc 1 1923 28 3590 019a 7B68 ldr r3, [r7, #4] 3591 019c 1022 movs r2, #16 3592 019e 1A64 str r2, [r3, #64] 1924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 3593 .loc 1 1925 18 3594 01a0 0323 movs r3, #3 3595 01a2 14E0 b .L183 3596 .L184: 1926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 118 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3597 .loc 1 1932 22 3598 01a4 7B68 ldr r3, [r7, #4] 3599 01a6 0022 movs r2, #0 3600 01a8 DA84 strh r2, [r3, #38] @ movhi 1933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3601 .loc 1 1933 22 3602 01aa 7B68 ldr r3, [r7, #4] 3603 01ac 0022 movs r2, #0 3604 01ae DA85 strh r2, [r3, #46] @ movhi 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3605 .loc 1 1936 20 3606 01b0 7B68 ldr r3, [r7, #4] 3607 01b2 0022 movs r2, #0 3608 01b4 1A64 str r2, [r3, #64] 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState and huart->gState to Ready */ 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3609 .loc 1 1939 18 3610 01b6 7B68 ldr r3, [r7, #4] 3611 01b8 2022 movs r2, #32 3612 01ba 83F83E20 strb r2, [r3, #62] 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3613 .loc 1 1940 17 3614 01be 7B68 ldr r3, [r7, #4] 3615 01c0 2022 movs r2, #32 3616 01c2 83F83D20 strb r2, [r3, #61] 1941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3617 .loc 1 1941 24 3618 01c6 7B68 ldr r3, [r7, #4] 3619 01c8 0022 movs r2, #0 3620 01ca 1A63 str r2, [r3, #48] 1942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3621 .loc 1 1943 10 3622 01cc 0023 movs r3, #0 3623 .L183: 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3624 .loc 1 1944 1 3625 01ce 1846 mov r0, r3 3626 01d0 8037 adds r7, r7, #128 3627 .LCFI103: 3628 .cfi_def_cfa_offset 8 3629 01d2 BD46 mov sp, r7 3630 .LCFI104: 3631 .cfi_def_cfa_register 13 3632 @ sp needed 3633 01d4 80BD pop {r7, pc} 3634 .cfi_endproc 3635 .LFE254: 3637 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 3638 .align 1 3639 .global HAL_UART_AbortTransmit 3640 .syntax unified 3641 .thumb ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 119 3642 .thumb_func 3644 HAL_UART_AbortTransmit: 3645 .LFB255: 1945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode). 1948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 1952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3646 .loc 1 1959 1 3647 .cfi_startproc 3648 @ args = 0, pretend = 0, frame = 56 3649 @ frame_needed = 1, uses_anonymous_args = 0 3650 0000 80B5 push {r7, lr} 3651 .LCFI105: 3652 .cfi_def_cfa_offset 8 3653 .cfi_offset 7, -8 3654 .cfi_offset 14, -4 3655 0002 8EB0 sub sp, sp, #56 3656 .LCFI106: 3657 .cfi_def_cfa_offset 64 3658 0004 00AF add r7, sp, #0 3659 .LCFI107: 3660 .cfi_def_cfa_register 7 3661 0006 7860 str r0, [r7, #4] 3662 .L191: 3663 .LBB414: 1960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 3664 .loc 1 1961 3 discriminator 1 3665 0008 7B68 ldr r3, [r7, #4] 3666 000a 1B68 ldr r3, [r3] 3667 000c 0C33 adds r3, r3, #12 3668 000e 3B62 str r3, [r7, #32] 3669 .LBB415: 3670 .LBB416: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3671 .loc 2 1072 4 discriminator 1 3672 0010 3B6A ldr r3, [r7, #32] 3673 .syntax unified 3674 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3675 0012 53E8003F ldrex r3, [r3] 3676 @ 0 "" 2 3677 .thumb 3678 .syntax unified 3679 0016 FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3680 .loc 2 1073 10 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 120 3681 0018 FB69 ldr r3, [r7, #28] 3682 .LBE416: 3683 .LBE415: 3684 .loc 1 1961 3 discriminator 1 3685 001a 23F0C003 bic r3, r3, #192 3686 001e 7B63 str r3, [r7, #52] 3687 0020 7B68 ldr r3, [r7, #4] 3688 0022 1B68 ldr r3, [r3] 3689 0024 0C33 adds r3, r3, #12 3690 0026 7A6B ldr r2, [r7, #52] 3691 0028 FA62 str r2, [r7, #44] 3692 002a BB62 str r3, [r7, #40] 3693 .LBB417: 3694 .LBB418: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3695 .loc 2 1123 4 discriminator 1 3696 002c B96A ldr r1, [r7, #40] 3697 002e FA6A ldr r2, [r7, #44] 3698 .syntax unified 3699 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3700 0030 41E80023 strex r3, r2, [r1] 3701 @ 0 "" 2 3702 .thumb 3703 .syntax unified 3704 0034 7B62 str r3, [r7, #36] 3705 .loc 2 1124 10 discriminator 1 3706 0036 7B6A ldr r3, [r7, #36] 3707 .LBE418: 3708 .LBE417: 3709 .loc 1 1961 3 discriminator 1 3710 0038 002B cmp r3, #0 3711 003a E5D1 bne .L191 3712 .LBE414: 1962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 3713 .loc 1 1964 7 3714 003c 7B68 ldr r3, [r7, #4] 3715 003e 1B68 ldr r3, [r3] 3716 0040 5B69 ldr r3, [r3, #20] 3717 0042 03F08003 and r3, r3, #128 3718 .loc 1 1964 6 3719 0046 802B cmp r3, #128 3720 0048 36D1 bne .L192 3721 .L195: 3722 .LBB419: 1965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 3723 .loc 1 1966 5 discriminator 1 3724 004a 7B68 ldr r3, [r7, #4] 3725 004c 1B68 ldr r3, [r3] 3726 004e 1433 adds r3, r3, #20 3727 0050 FB60 str r3, [r7, #12] 3728 .LBB420: 3729 .LBB421: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3730 .loc 2 1072 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 121 3731 0052 FB68 ldr r3, [r7, #12] 3732 .syntax unified 3733 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3734 0054 53E8003F ldrex r3, [r3] 3735 @ 0 "" 2 3736 .thumb 3737 .syntax unified 3738 0058 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3739 .loc 2 1073 10 discriminator 1 3740 005a BB68 ldr r3, [r7, #8] 3741 .LBE421: 3742 .LBE420: 3743 .loc 1 1966 5 discriminator 1 3744 005c 23F08003 bic r3, r3, #128 3745 0060 3B63 str r3, [r7, #48] 3746 0062 7B68 ldr r3, [r7, #4] 3747 0064 1B68 ldr r3, [r3] 3748 0066 1433 adds r3, r3, #20 3749 0068 3A6B ldr r2, [r7, #48] 3750 006a BA61 str r2, [r7, #24] 3751 006c 7B61 str r3, [r7, #20] 3752 .LBB422: 3753 .LBB423: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3754 .loc 2 1123 4 discriminator 1 3755 006e 7969 ldr r1, [r7, #20] 3756 0070 BA69 ldr r2, [r7, #24] 3757 .syntax unified 3758 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3759 0072 41E80023 strex r3, r2, [r1] 3760 @ 0 "" 2 3761 .thumb 3762 .syntax unified 3763 0076 3B61 str r3, [r7, #16] 3764 .loc 2 1124 10 discriminator 1 3765 0078 3B69 ldr r3, [r7, #16] 3766 .LBE423: 3767 .LBE422: 3768 .loc 1 1966 5 discriminator 1 3769 007a 002B cmp r3, #0 3770 007c E5D1 bne .L195 3771 .LBE419: 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 3772 .loc 1 1969 14 3773 007e 7B68 ldr r3, [r7, #4] 3774 0080 5B6B ldr r3, [r3, #52] 3775 .loc 1 1969 8 3776 0082 002B cmp r3, #0 3777 0084 18D0 beq .L192 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 3778 .loc 1 1973 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 122 3779 0086 7B68 ldr r3, [r7, #4] 3780 0088 5B6B ldr r3, [r3, #52] 3781 .loc 1 1973 40 3782 008a 0022 movs r2, #0 3783 008c 1A65 str r2, [r3, #80] 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 3784 .loc 1 1975 11 3785 008e 7B68 ldr r3, [r7, #4] 3786 0090 5B6B ldr r3, [r3, #52] 3787 0092 1846 mov r0, r3 3788 0094 FFF7FEFF bl HAL_DMA_Abort 3789 0098 0346 mov r3, r0 3790 .loc 1 1975 10 3791 009a 002B cmp r3, #0 3792 009c 0CD0 beq .L192 1976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 3793 .loc 1 1977 13 3794 009e 7B68 ldr r3, [r7, #4] 3795 00a0 5B6B ldr r3, [r3, #52] 3796 00a2 1846 mov r0, r3 3797 00a4 FFF7FEFF bl HAL_DMA_GetError 3798 00a8 0346 mov r3, r0 3799 .loc 1 1977 12 3800 00aa 202B cmp r3, #32 3801 00ac 04D1 bne .L192 1978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 3802 .loc 1 1980 28 3803 00ae 7B68 ldr r3, [r7, #4] 3804 00b0 1022 movs r2, #16 3805 00b2 1A64 str r2, [r3, #64] 1981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 3806 .loc 1 1982 18 3807 00b4 0323 movs r3, #3 3808 00b6 07E0 b .L196 3809 .L192: 1983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3810 .loc 1 1989 22 3811 00b8 7B68 ldr r3, [r7, #4] 3812 00ba 0022 movs r2, #0 3813 00bc DA84 strh r2, [r3, #38] @ movhi 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3814 .loc 1 1992 17 3815 00be 7B68 ldr r3, [r7, #4] 3816 00c0 2022 movs r2, #32 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 123 3817 00c2 83F83D20 strb r2, [r3, #61] 1993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3818 .loc 1 1994 10 3819 00c6 0023 movs r3, #0 3820 .L196: 1995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3821 .loc 1 1995 1 3822 00c8 1846 mov r0, r3 3823 00ca 3837 adds r7, r7, #56 3824 .LCFI108: 3825 .cfi_def_cfa_offset 8 3826 00cc BD46 mov sp, r7 3827 .LCFI109: 3828 .cfi_def_cfa_register 13 3829 @ sp needed 3830 00ce 80BD pop {r7, pc} 3831 .cfi_endproc 3832 .LFE255: 3834 .section .text.HAL_UART_AbortReceive,"ax",%progbits 3835 .align 1 3836 .global HAL_UART_AbortReceive 3837 .syntax unified 3838 .thumb 3839 .thumb_func 3841 HAL_UART_AbortReceive: 3842 .LFB256: 1996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode). 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) 2010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3843 .loc 1 2010 1 3844 .cfi_startproc 3845 @ args = 0, pretend = 0, frame = 104 3846 @ frame_needed = 1, uses_anonymous_args = 0 3847 0000 80B5 push {r7, lr} 3848 .LCFI110: 3849 .cfi_def_cfa_offset 8 3850 .cfi_offset 7, -8 3851 .cfi_offset 14, -4 3852 0002 9AB0 sub sp, sp, #104 3853 .LCFI111: 3854 .cfi_def_cfa_offset 112 3855 0004 00AF add r7, sp, #0 3856 .LCFI112: 3857 .cfi_def_cfa_register 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 124 3858 0006 7860 str r0, [r7, #4] 3859 .L200: 3860 .LBB424: 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 3861 .loc 1 2012 3 discriminator 1 3862 0008 7B68 ldr r3, [r7, #4] 3863 000a 1B68 ldr r3, [r3] 3864 000c 0C33 adds r3, r3, #12 3865 000e BB64 str r3, [r7, #72] 3866 .LBB425: 3867 .LBB426: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3868 .loc 2 1072 4 discriminator 1 3869 0010 BB6C ldr r3, [r7, #72] 3870 .syntax unified 3871 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3872 0012 53E8003F ldrex r3, [r3] 3873 @ 0 "" 2 3874 .thumb 3875 .syntax unified 3876 0016 7B64 str r3, [r7, #68] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3877 .loc 2 1073 10 discriminator 1 3878 0018 7B6C ldr r3, [r7, #68] 3879 .LBE426: 3880 .LBE425: 3881 .loc 1 2012 3 discriminator 1 3882 001a 23F49073 bic r3, r3, #288 3883 001e 7B66 str r3, [r7, #100] 3884 0020 7B68 ldr r3, [r7, #4] 3885 0022 1B68 ldr r3, [r3] 3886 0024 0C33 adds r3, r3, #12 3887 0026 7A6E ldr r2, [r7, #100] 3888 0028 7A65 str r2, [r7, #84] 3889 002a 3B65 str r3, [r7, #80] 3890 .LBB427: 3891 .LBB428: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3892 .loc 2 1123 4 discriminator 1 3893 002c 396D ldr r1, [r7, #80] 3894 002e 7A6D ldr r2, [r7, #84] 3895 .syntax unified 3896 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3897 0030 41E80023 strex r3, r2, [r1] 3898 @ 0 "" 2 3899 .thumb 3900 .syntax unified 3901 0034 FB64 str r3, [r7, #76] 3902 .loc 2 1124 10 discriminator 1 3903 0036 FB6C ldr r3, [r7, #76] 3904 .LBE428: 3905 .LBE427: 3906 .loc 1 2012 3 discriminator 1 3907 0038 002B cmp r3, #0 3908 003a E5D1 bne .L200 3909 .L203: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 125 3910 .LBE424: 3911 .LBB429: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3912 .loc 1 2013 3 discriminator 1 3913 003c 7B68 ldr r3, [r7, #4] 3914 003e 1B68 ldr r3, [r3] 3915 0040 1433 adds r3, r3, #20 3916 0042 7B63 str r3, [r7, #52] 3917 .LBB430: 3918 .LBB431: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3919 .loc 2 1072 4 discriminator 1 3920 0044 7B6B ldr r3, [r7, #52] 3921 .syntax unified 3922 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3923 0046 53E8003F ldrex r3, [r3] 3924 @ 0 "" 2 3925 .thumb 3926 .syntax unified 3927 004a 3B63 str r3, [r7, #48] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3928 .loc 2 1073 10 discriminator 1 3929 004c 3B6B ldr r3, [r7, #48] 3930 .LBE431: 3931 .LBE430: 3932 .loc 1 2013 3 discriminator 1 3933 004e 23F00103 bic r3, r3, #1 3934 0052 3B66 str r3, [r7, #96] 3935 0054 7B68 ldr r3, [r7, #4] 3936 0056 1B68 ldr r3, [r3] 3937 0058 1433 adds r3, r3, #20 3938 005a 3A6E ldr r2, [r7, #96] 3939 005c 3A64 str r2, [r7, #64] 3940 005e FB63 str r3, [r7, #60] 3941 .LBB432: 3942 .LBB433: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3943 .loc 2 1123 4 discriminator 1 3944 0060 F96B ldr r1, [r7, #60] 3945 0062 3A6C ldr r2, [r7, #64] 3946 .syntax unified 3947 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3948 0064 41E80023 strex r3, r2, [r1] 3949 @ 0 "" 2 3950 .thumb 3951 .syntax unified 3952 0068 BB63 str r3, [r7, #56] 3953 .loc 2 1124 10 discriminator 1 3954 006a BB6B ldr r3, [r7, #56] 3955 .LBE433: 3956 .LBE432: 3957 .loc 1 2013 3 discriminator 1 3958 006c 002B cmp r3, #0 3959 006e E5D1 bne .L203 3960 .LBE429: 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 126 2016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3961 .loc 1 2016 12 3962 0070 7B68 ldr r3, [r7, #4] 3963 0072 1B6B ldr r3, [r3, #48] 3964 .loc 1 2016 6 3965 0074 012B cmp r3, #1 3966 0076 19D1 bne .L204 3967 .L207: 3968 .LBB434: 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 3969 .loc 1 2018 5 discriminator 1 3970 0078 7B68 ldr r3, [r7, #4] 3971 007a 1B68 ldr r3, [r3] 3972 007c 0C33 adds r3, r3, #12 3973 007e 3B62 str r3, [r7, #32] 3974 .LBB435: 3975 .LBB436: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3976 .loc 2 1072 4 discriminator 1 3977 0080 3B6A ldr r3, [r7, #32] 3978 .syntax unified 3979 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3980 0082 53E8003F ldrex r3, [r3] 3981 @ 0 "" 2 3982 .thumb 3983 .syntax unified 3984 0086 FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3985 .loc 2 1073 10 discriminator 1 3986 0088 FB69 ldr r3, [r7, #28] 3987 .LBE436: 3988 .LBE435: 3989 .loc 1 2018 5 discriminator 1 3990 008a 23F01003 bic r3, r3, #16 3991 008e FB65 str r3, [r7, #92] 3992 0090 7B68 ldr r3, [r7, #4] 3993 0092 1B68 ldr r3, [r3] 3994 0094 0C33 adds r3, r3, #12 3995 0096 FA6D ldr r2, [r7, #92] 3996 0098 FA62 str r2, [r7, #44] 3997 009a BB62 str r3, [r7, #40] 3998 .LBB437: 3999 .LBB438: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4000 .loc 2 1123 4 discriminator 1 4001 009c B96A ldr r1, [r7, #40] 4002 009e FA6A ldr r2, [r7, #44] 4003 .syntax unified 4004 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4005 00a0 41E80023 strex r3, r2, [r1] 4006 @ 0 "" 2 4007 .thumb 4008 .syntax unified 4009 00a4 7B62 str r3, [r7, #36] 4010 .loc 2 1124 10 discriminator 1 4011 00a6 7B6A ldr r3, [r7, #36] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 127 4012 .LBE438: 4013 .LBE437: 4014 .loc 1 2018 5 discriminator 1 4015 00a8 002B cmp r3, #0 4016 00aa E5D1 bne .L207 4017 .L204: 4018 .LBE434: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 4019 .loc 1 2022 7 4020 00ac 7B68 ldr r3, [r7, #4] 4021 00ae 1B68 ldr r3, [r3] 4022 00b0 5B69 ldr r3, [r3, #20] 4023 00b2 03F04003 and r3, r3, #64 4024 .loc 1 2022 6 4025 00b6 402B cmp r3, #64 4026 00b8 36D1 bne .L208 4027 .L211: 4028 .LBB439: 2023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 4029 .loc 1 2024 5 discriminator 1 4030 00ba 7B68 ldr r3, [r7, #4] 4031 00bc 1B68 ldr r3, [r3] 4032 00be 1433 adds r3, r3, #20 4033 00c0 FB60 str r3, [r7, #12] 4034 .LBB440: 4035 .LBB441: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4036 .loc 2 1072 4 discriminator 1 4037 00c2 FB68 ldr r3, [r7, #12] 4038 .syntax unified 4039 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4040 00c4 53E8003F ldrex r3, [r3] 4041 @ 0 "" 2 4042 .thumb 4043 .syntax unified 4044 00c8 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4045 .loc 2 1073 10 discriminator 1 4046 00ca BB68 ldr r3, [r7, #8] 4047 .LBE441: 4048 .LBE440: 4049 .loc 1 2024 5 discriminator 1 4050 00cc 23F04003 bic r3, r3, #64 4051 00d0 BB65 str r3, [r7, #88] 4052 00d2 7B68 ldr r3, [r7, #4] 4053 00d4 1B68 ldr r3, [r3] 4054 00d6 1433 adds r3, r3, #20 4055 00d8 BA6D ldr r2, [r7, #88] 4056 00da BA61 str r2, [r7, #24] 4057 00dc 7B61 str r3, [r7, #20] 4058 .LBB442: 4059 .LBB443: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 128 4060 .loc 2 1123 4 discriminator 1 4061 00de 7969 ldr r1, [r7, #20] 4062 00e0 BA69 ldr r2, [r7, #24] 4063 .syntax unified 4064 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4065 00e2 41E80023 strex r3, r2, [r1] 4066 @ 0 "" 2 4067 .thumb 4068 .syntax unified 4069 00e6 3B61 str r3, [r7, #16] 4070 .loc 2 1124 10 discriminator 1 4071 00e8 3B69 ldr r3, [r7, #16] 4072 .LBE443: 4073 .LBE442: 4074 .loc 1 2024 5 discriminator 1 4075 00ea 002B cmp r3, #0 4076 00ec E5D1 bne .L211 4077 .LBE439: 2025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 2027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 4078 .loc 1 2027 14 4079 00ee 7B68 ldr r3, [r7, #4] 4080 00f0 9B6B ldr r3, [r3, #56] 4081 .loc 1 2027 8 4082 00f2 002B cmp r3, #0 4083 00f4 18D0 beq .L208 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 2031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 4084 .loc 1 2031 12 4085 00f6 7B68 ldr r3, [r7, #4] 4086 00f8 9B6B ldr r3, [r3, #56] 4087 .loc 1 2031 40 4088 00fa 0022 movs r2, #0 4089 00fc 1A65 str r2, [r3, #80] 2032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 4090 .loc 1 2033 11 4091 00fe 7B68 ldr r3, [r7, #4] 4092 0100 9B6B ldr r3, [r3, #56] 4093 0102 1846 mov r0, r3 4094 0104 FFF7FEFF bl HAL_DMA_Abort 4095 0108 0346 mov r3, r0 4096 .loc 1 2033 10 4097 010a 002B cmp r3, #0 4098 010c 0CD0 beq .L208 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 4099 .loc 1 2035 13 4100 010e 7B68 ldr r3, [r7, #4] 4101 0110 9B6B ldr r3, [r3, #56] 4102 0112 1846 mov r0, r3 4103 0114 FFF7FEFF bl HAL_DMA_GetError 4104 0118 0346 mov r3, r0 4105 .loc 1 2035 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 129 4106 011a 202B cmp r3, #32 4107 011c 04D1 bne .L208 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 2038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 4108 .loc 1 2038 28 4109 011e 7B68 ldr r3, [r7, #4] 4110 0120 1022 movs r2, #16 4111 0122 1A64 str r2, [r3, #64] 2039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 4112 .loc 1 2040 18 4113 0124 0323 movs r3, #3 4114 0126 0AE0 b .L212 4115 .L208: 2041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4116 .loc 1 2047 22 4117 0128 7B68 ldr r3, [r7, #4] 4118 012a 0022 movs r2, #0 4119 012c DA85 strh r2, [r3, #46] @ movhi 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4120 .loc 1 2050 18 4121 012e 7B68 ldr r3, [r7, #4] 4122 0130 2022 movs r2, #32 4123 0132 83F83E20 strb r2, [r3, #62] 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4124 .loc 1 2051 24 4125 0136 7B68 ldr r3, [r7, #4] 4126 0138 0022 movs r2, #0 4127 013a 1A63 str r2, [r3, #48] 2052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 4128 .loc 1 2053 10 4129 013c 0023 movs r3, #0 4130 .L212: 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4131 .loc 1 2054 1 4132 013e 1846 mov r0, r3 4133 0140 6837 adds r7, r7, #104 4134 .LCFI113: 4135 .cfi_def_cfa_offset 8 4136 0142 BD46 mov sp, r7 4137 .LCFI114: 4138 .cfi_def_cfa_register 13 4139 @ sp needed 4140 0144 80BD pop {r7, pc} 4141 .cfi_endproc 4142 .LFE256: 4144 .section .text.HAL_UART_Abort_IT,"ax",%progbits ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 130 4145 .align 1 4146 .global HAL_UART_Abort_IT 4147 .syntax unified 4148 .thumb 4149 .thumb_func 4151 HAL_UART_Abort_IT: 4152 .LFB257: 2055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode). 2058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 2060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4153 .loc 1 2071 1 4154 .cfi_startproc 4155 @ args = 0, pretend = 0, frame = 136 4156 @ frame_needed = 1, uses_anonymous_args = 0 4157 0000 80B5 push {r7, lr} 4158 .LCFI115: 4159 .cfi_def_cfa_offset 8 4160 .cfi_offset 7, -8 4161 .cfi_offset 14, -4 4162 0002 A2B0 sub sp, sp, #136 4163 .LCFI116: 4164 .cfi_def_cfa_offset 144 4165 0004 00AF add r7, sp, #0 4166 .LCFI117: 4167 .cfi_def_cfa_register 7 4168 0006 7860 str r0, [r7, #4] 2072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 4169 .loc 1 2072 12 4170 0008 0123 movs r3, #1 4171 000a C7F88430 str r3, [r7, #132] 4172 .L216: 4173 .LBB444: 2073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USA 4174 .loc 1 2075 3 discriminator 1 4175 000e 7B68 ldr r3, [r7, #4] 4176 0010 1B68 ldr r3, [r3] 4177 0012 0C33 adds r3, r3, #12 4178 0014 3B66 str r3, [r7, #96] 4179 .LBB445: 4180 .LBB446: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 131 4181 .loc 2 1072 4 discriminator 1 4182 0016 3B6E ldr r3, [r7, #96] 4183 .syntax unified 4184 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4185 0018 53E8003F ldrex r3, [r3] 4186 @ 0 "" 2 4187 .thumb 4188 .syntax unified 4189 001c FB65 str r3, [r7, #92] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4190 .loc 2 1073 10 discriminator 1 4191 001e FB6D ldr r3, [r7, #92] 4192 .LBE446: 4193 .LBE445: 4194 .loc 1 2075 3 discriminator 1 4195 0020 23F4F073 bic r3, r3, #480 4196 0024 C7F88030 str r3, [r7, #128] 4197 0028 7B68 ldr r3, [r7, #4] 4198 002a 1B68 ldr r3, [r3] 4199 002c 0C33 adds r3, r3, #12 4200 002e D7F88020 ldr r2, [r7, #128] 4201 0032 FA66 str r2, [r7, #108] 4202 0034 BB66 str r3, [r7, #104] 4203 .LBB447: 4204 .LBB448: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4205 .loc 2 1123 4 discriminator 1 4206 0036 B96E ldr r1, [r7, #104] 4207 0038 FA6E ldr r2, [r7, #108] 4208 .syntax unified 4209 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4210 003a 41E80023 strex r3, r2, [r1] 4211 @ 0 "" 2 4212 .thumb 4213 .syntax unified 4214 003e 7B66 str r3, [r7, #100] 4215 .loc 2 1124 10 discriminator 1 4216 0040 7B6E ldr r3, [r7, #100] 4217 .LBE448: 4218 .LBE447: 4219 .loc 1 2075 3 discriminator 1 4220 0042 002B cmp r3, #0 4221 0044 E3D1 bne .L216 4222 .L219: 4223 .LBE444: 4224 .LBB449: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4225 .loc 1 2076 3 discriminator 1 4226 0046 7B68 ldr r3, [r7, #4] 4227 0048 1B68 ldr r3, [r3] 4228 004a 1433 adds r3, r3, #20 4229 004c FB64 str r3, [r7, #76] 4230 .LBB450: 4231 .LBB451: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4232 .loc 2 1072 4 discriminator 1 4233 004e FB6C ldr r3, [r7, #76] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 132 4234 .syntax unified 4235 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4236 0050 53E8003F ldrex r3, [r3] 4237 @ 0 "" 2 4238 .thumb 4239 .syntax unified 4240 0054 BB64 str r3, [r7, #72] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4241 .loc 2 1073 10 discriminator 1 4242 0056 BB6C ldr r3, [r7, #72] 4243 .LBE451: 4244 .LBE450: 4245 .loc 1 2076 3 discriminator 1 4246 0058 23F00103 bic r3, r3, #1 4247 005c FB67 str r3, [r7, #124] 4248 005e 7B68 ldr r3, [r7, #4] 4249 0060 1B68 ldr r3, [r3] 4250 0062 1433 adds r3, r3, #20 4251 0064 FA6F ldr r2, [r7, #124] 4252 0066 BA65 str r2, [r7, #88] 4253 0068 7B65 str r3, [r7, #84] 4254 .LBB452: 4255 .LBB453: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4256 .loc 2 1123 4 discriminator 1 4257 006a 796D ldr r1, [r7, #84] 4258 006c BA6D ldr r2, [r7, #88] 4259 .syntax unified 4260 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4261 006e 41E80023 strex r3, r2, [r1] 4262 @ 0 "" 2 4263 .thumb 4264 .syntax unified 4265 0072 3B65 str r3, [r7, #80] 4266 .loc 2 1124 10 discriminator 1 4267 0074 3B6D ldr r3, [r7, #80] 4268 .LBE453: 4269 .LBE452: 4270 .loc 1 2076 3 discriminator 1 4271 0076 002B cmp r3, #0 4272 0078 E5D1 bne .L219 4273 .LBE449: 2077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 2079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4274 .loc 1 2079 12 4275 007a 7B68 ldr r3, [r7, #4] 4276 007c 1B6B ldr r3, [r3, #48] 4277 .loc 1 2079 6 4278 007e 012B cmp r3, #1 4279 0080 19D1 bne .L220 4280 .L223: 4281 .LBB454: 2080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 4282 .loc 1 2081 5 discriminator 1 4283 0082 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 133 4284 0084 1B68 ldr r3, [r3] 4285 0086 0C33 adds r3, r3, #12 4286 0088 BB63 str r3, [r7, #56] 4287 .LBB455: 4288 .LBB456: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4289 .loc 2 1072 4 discriminator 1 4290 008a BB6B ldr r3, [r7, #56] 4291 .syntax unified 4292 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4293 008c 53E8003F ldrex r3, [r3] 4294 @ 0 "" 2 4295 .thumb 4296 .syntax unified 4297 0090 7B63 str r3, [r7, #52] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4298 .loc 2 1073 10 discriminator 1 4299 0092 7B6B ldr r3, [r7, #52] 4300 .LBE456: 4301 .LBE455: 4302 .loc 1 2081 5 discriminator 1 4303 0094 23F01003 bic r3, r3, #16 4304 0098 BB67 str r3, [r7, #120] 4305 009a 7B68 ldr r3, [r7, #4] 4306 009c 1B68 ldr r3, [r3] 4307 009e 0C33 adds r3, r3, #12 4308 00a0 BA6F ldr r2, [r7, #120] 4309 00a2 7A64 str r2, [r7, #68] 4310 00a4 3B64 str r3, [r7, #64] 4311 .LBB457: 4312 .LBB458: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4313 .loc 2 1123 4 discriminator 1 4314 00a6 396C ldr r1, [r7, #64] 4315 00a8 7A6C ldr r2, [r7, #68] 4316 .syntax unified 4317 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4318 00aa 41E80023 strex r3, r2, [r1] 4319 @ 0 "" 2 4320 .thumb 4321 .syntax unified 4322 00ae FB63 str r3, [r7, #60] 4323 .loc 2 1124 10 discriminator 1 4324 00b0 FB6B ldr r3, [r7, #60] 4325 .LBE458: 4326 .LBE457: 4327 .loc 1 2081 5 discriminator 1 4328 00b2 002B cmp r3, #0 4329 00b4 E5D1 bne .L223 4330 .L220: 4331 .LBE454: 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks sh 2085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** before any call to DMA Abort functions */ 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Tx Handle is valid */ 2087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 134 4332 .loc 1 2087 12 4333 00b6 7B68 ldr r3, [r7, #4] 4334 00b8 5B6B ldr r3, [r3, #52] 4335 .loc 1 2087 6 4336 00ba 002B cmp r3, #0 4337 00bc 0FD0 beq .L224 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 2091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 4338 .loc 1 2091 9 4339 00be 7B68 ldr r3, [r7, #4] 4340 00c0 1B68 ldr r3, [r3] 4341 00c2 5B69 ldr r3, [r3, #20] 4342 00c4 03F08003 and r3, r3, #128 4343 .loc 1 2091 8 4344 00c8 802B cmp r3, #128 4345 00ca 04D1 bne .L225 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 4346 .loc 1 2093 12 4347 00cc 7B68 ldr r3, [r7, #4] 4348 00ce 5B6B ldr r3, [r3, #52] 4349 .loc 1 2093 40 4350 00d0 534A ldr r2, .L240 4351 00d2 1A65 str r2, [r3, #80] 4352 00d4 03E0 b .L224 4353 .L225: 2094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 4354 .loc 1 2097 12 4355 00d6 7B68 ldr r3, [r7, #4] 4356 00d8 5B6B ldr r3, [r3, #52] 4357 .loc 1 2097 40 4358 00da 0022 movs r2, #0 4359 00dc 1A65 str r2, [r3, #80] 4360 .L224: 2098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Rx Handle is valid */ 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 4361 .loc 1 2101 12 4362 00de 7B68 ldr r3, [r7, #4] 4363 00e0 9B6B ldr r3, [r3, #56] 4364 .loc 1 2101 6 4365 00e2 002B cmp r3, #0 4366 00e4 0FD0 beq .L226 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 2105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 4367 .loc 1 2105 9 4368 00e6 7B68 ldr r3, [r7, #4] 4369 00e8 1B68 ldr r3, [r3] 4370 00ea 5B69 ldr r3, [r3, #20] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 135 4371 00ec 03F04003 and r3, r3, #64 4372 .loc 1 2105 8 4373 00f0 402B cmp r3, #64 4374 00f2 04D1 bne .L227 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 4375 .loc 1 2107 12 4376 00f4 7B68 ldr r3, [r7, #4] 4377 00f6 9B6B ldr r3, [r3, #56] 4378 .loc 1 2107 40 4379 00f8 4A4A ldr r2, .L240+4 4380 00fa 1A65 str r2, [r3, #80] 4381 00fc 03E0 b .L226 4382 .L227: 2108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 4383 .loc 1 2111 12 4384 00fe 7B68 ldr r3, [r7, #4] 4385 0100 9B6B ldr r3, [r3, #56] 4386 .loc 1 2111 40 4387 0102 0022 movs r2, #0 4388 0104 1A65 str r2, [r3, #80] 4389 .L226: 2112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 2116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 4390 .loc 1 2116 7 4391 0106 7B68 ldr r3, [r7, #4] 4392 0108 1B68 ldr r3, [r3] 4393 010a 5B69 ldr r3, [r3, #20] 4394 010c 03F08003 and r3, r3, #128 4395 .loc 1 2116 6 4396 0110 802B cmp r3, #128 4397 0112 2DD1 bne .L228 4398 .L231: 4399 .LBB459: 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable DMA Tx at UART level */ 2119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 4400 .loc 1 2119 5 discriminator 1 4401 0114 7B68 ldr r3, [r7, #4] 4402 0116 1B68 ldr r3, [r3] 4403 0118 1433 adds r3, r3, #20 4404 011a 7B62 str r3, [r7, #36] 4405 .LBB460: 4406 .LBB461: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4407 .loc 2 1072 4 discriminator 1 4408 011c 7B6A ldr r3, [r7, #36] 4409 .syntax unified 4410 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4411 011e 53E8003F ldrex r3, [r3] 4412 @ 0 "" 2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 136 4413 .thumb 4414 .syntax unified 4415 0122 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4416 .loc 2 1073 10 discriminator 1 4417 0124 3B6A ldr r3, [r7, #32] 4418 .LBE461: 4419 .LBE460: 4420 .loc 1 2119 5 discriminator 1 4421 0126 23F08003 bic r3, r3, #128 4422 012a 7B67 str r3, [r7, #116] 4423 012c 7B68 ldr r3, [r7, #4] 4424 012e 1B68 ldr r3, [r3] 4425 0130 1433 adds r3, r3, #20 4426 0132 7A6F ldr r2, [r7, #116] 4427 0134 3A63 str r2, [r7, #48] 4428 0136 FB62 str r3, [r7, #44] 4429 .LBB462: 4430 .LBB463: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4431 .loc 2 1123 4 discriminator 1 4432 0138 F96A ldr r1, [r7, #44] 4433 013a 3A6B ldr r2, [r7, #48] 4434 .syntax unified 4435 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4436 013c 41E80023 strex r3, r2, [r1] 4437 @ 0 "" 2 4438 .thumb 4439 .syntax unified 4440 0140 BB62 str r3, [r7, #40] 4441 .loc 2 1124 10 discriminator 1 4442 0142 BB6A ldr r3, [r7, #40] 4443 .LBE463: 4444 .LBE462: 4445 .loc 1 2119 5 discriminator 1 4446 0144 002B cmp r3, #0 4447 0146 E5D1 bne .L231 4448 .LBE459: 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use non blocking DMA Abort API (callback) */ 2122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 4449 .loc 1 2122 14 4450 0148 7B68 ldr r3, [r7, #4] 4451 014a 5B6B ldr r3, [r3, #52] 4452 .loc 1 2122 8 4453 014c 002B cmp r3, #0 4454 014e 0FD0 beq .L228 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised : 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 2128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 4455 .loc 1 2128 11 4456 0150 7B68 ldr r3, [r7, #4] 4457 0152 5B6B ldr r3, [r3, #52] 4458 0154 1846 mov r0, r3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 137 4459 0156 FFF7FEFF bl HAL_DMA_Abort_IT 4460 015a 0346 mov r3, r0 4461 .loc 1 2128 10 4462 015c 002B cmp r3, #0 4463 015e 04D0 beq .L232 2129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 4464 .loc 1 2130 14 4465 0160 7B68 ldr r3, [r7, #4] 4466 0162 5B6B ldr r3, [r3, #52] 4467 .loc 1 2130 42 4468 0164 0022 movs r2, #0 4469 0166 1A65 str r2, [r3, #80] 4470 0168 02E0 b .L228 4471 .L232: 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 4472 .loc 1 2134 19 4473 016a 0023 movs r3, #0 4474 016c C7F88430 str r3, [r7, #132] 4475 .L228: 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 4476 .loc 1 2140 7 4477 0170 7B68 ldr r3, [r7, #4] 4478 0172 1B68 ldr r3, [r3] 4479 0174 5B69 ldr r3, [r3, #20] 4480 0176 03F04003 and r3, r3, #64 4481 .loc 1 2140 6 4482 017a 402B cmp r3, #64 4483 017c 30D1 bne .L233 4484 .L236: 4485 .LBB464: 2141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 4486 .loc 1 2142 5 discriminator 1 4487 017e 7B68 ldr r3, [r7, #4] 4488 0180 1B68 ldr r3, [r3] 4489 0182 1433 adds r3, r3, #20 4490 0184 3B61 str r3, [r7, #16] 4491 .LBB465: 4492 .LBB466: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4493 .loc 2 1072 4 discriminator 1 4494 0186 3B69 ldr r3, [r7, #16] 4495 .syntax unified 4496 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4497 0188 53E8003F ldrex r3, [r3] 4498 @ 0 "" 2 4499 .thumb 4500 .syntax unified ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 138 4501 018c FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4502 .loc 2 1073 10 discriminator 1 4503 018e FB68 ldr r3, [r7, #12] 4504 .LBE466: 4505 .LBE465: 4506 .loc 1 2142 5 discriminator 1 4507 0190 23F04003 bic r3, r3, #64 4508 0194 3B67 str r3, [r7, #112] 4509 0196 7B68 ldr r3, [r7, #4] 4510 0198 1B68 ldr r3, [r3] 4511 019a 1433 adds r3, r3, #20 4512 019c 3A6F ldr r2, [r7, #112] 4513 019e FA61 str r2, [r7, #28] 4514 01a0 BB61 str r3, [r7, #24] 4515 .LBB467: 4516 .LBB468: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4517 .loc 2 1123 4 discriminator 1 4518 01a2 B969 ldr r1, [r7, #24] 4519 01a4 FA69 ldr r2, [r7, #28] 4520 .syntax unified 4521 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4522 01a6 41E80023 strex r3, r2, [r1] 4523 @ 0 "" 2 4524 .thumb 4525 .syntax unified 4526 01aa 7B61 str r3, [r7, #20] 4527 .loc 2 1124 10 discriminator 1 4528 01ac 7B69 ldr r3, [r7, #20] 4529 .LBE468: 4530 .LBE467: 4531 .loc 1 2142 5 discriminator 1 4532 01ae 002B cmp r3, #0 4533 01b0 E5D1 bne .L236 4534 .LBE464: 2143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use non blocking DMA Abort API (callback) */ 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 4535 .loc 1 2145 14 4536 01b2 7B68 ldr r3, [r7, #4] 4537 01b4 9B6B ldr r3, [r3, #56] 4538 .loc 1 2145 8 4539 01b6 002B cmp r3, #0 4540 01b8 12D0 beq .L233 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised : 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 4541 .loc 1 2151 11 4542 01ba 7B68 ldr r3, [r7, #4] 4543 01bc 9B6B ldr r3, [r3, #56] 4544 01be 1846 mov r0, r3 4545 01c0 FFF7FEFF bl HAL_DMA_Abort_IT 4546 01c4 0346 mov r3, r0 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 139 4547 .loc 1 2151 10 4548 01c6 002B cmp r3, #0 4549 01c8 07D0 beq .L237 2152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 4550 .loc 1 2153 14 4551 01ca 7B68 ldr r3, [r7, #4] 4552 01cc 9B6B ldr r3, [r3, #56] 4553 .loc 1 2153 42 4554 01ce 0022 movs r2, #0 4555 01d0 1A65 str r2, [r3, #80] 2154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 4556 .loc 1 2154 19 4557 01d2 0123 movs r3, #1 4558 01d4 C7F88430 str r3, [r7, #132] 4559 01d8 02E0 b .L233 4560 .L237: 2155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 4561 .loc 1 2158 19 4562 01da 0023 movs r3, #0 4563 01dc C7F88430 str r3, [r7, #132] 4564 .L233: 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback * 2164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (AbortCplt == 0x01U) 4565 .loc 1 2164 6 4566 01e0 D7F88430 ldr r3, [r7, #132] 4567 01e4 012B cmp r3, #1 4568 01e6 16D1 bne .L238 2165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 2167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 4569 .loc 1 2167 24 4570 01e8 7B68 ldr r3, [r7, #4] 4571 01ea 0022 movs r2, #0 4572 01ec DA84 strh r2, [r3, #38] @ movhi 2168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4573 .loc 1 2168 24 4574 01ee 7B68 ldr r3, [r7, #4] 4575 01f0 0022 movs r2, #0 4576 01f2 DA85 strh r2, [r3, #46] @ movhi 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 4577 .loc 1 2171 22 4578 01f4 7B68 ldr r3, [r7, #4] 4579 01f6 0022 movs r2, #0 4580 01f8 1A64 str r2, [r3, #64] 2172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 2174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 140 4581 .loc 1 2174 20 4582 01fa 7B68 ldr r3, [r7, #4] 4583 01fc 2022 movs r2, #32 4584 01fe 83F83D20 strb r2, [r3, #61] 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4585 .loc 1 2175 20 4586 0202 7B68 ldr r3, [r7, #4] 4587 0204 2022 movs r2, #32 4588 0206 83F83E20 strb r2, [r3, #62] 2176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4589 .loc 1 2176 26 4590 020a 7B68 ldr r3, [r7, #4] 4591 020c 0022 movs r2, #0 4592 020e 1A63 str r2, [r3, #48] 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 2181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 2182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 4593 .loc 1 2184 5 4594 0210 7868 ldr r0, [r7, #4] 4595 0212 FFF7FEFF bl HAL_UART_AbortCpltCallback 4596 .L238: 2185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 4597 .loc 1 2188 10 4598 0216 0023 movs r3, #0 2189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4599 .loc 1 2189 1 4600 0218 1846 mov r0, r3 4601 021a 8837 adds r7, r7, #136 4602 .LCFI118: 4603 .cfi_def_cfa_offset 8 4604 021c BD46 mov sp, r7 4605 .LCFI119: 4606 .cfi_def_cfa_register 13 4607 @ sp needed 4608 021e 80BD pop {r7, pc} 4609 .L241: 4610 .align 2 4611 .L240: 4612 0220 00000000 .word UART_DMATxAbortCallback 4613 0224 00000000 .word UART_DMARxAbortCallback 4614 .cfi_endproc 4615 .LFE257: 4617 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 4618 .align 1 4619 .global HAL_UART_AbortTransmit_IT 4620 .syntax unified 4621 .thumb 4622 .thumb_func 4624 HAL_UART_AbortTransmit_IT: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 141 4625 .LFB258: 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode). 2193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 2195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4626 .loc 1 2206 1 4627 .cfi_startproc 4628 @ args = 0, pretend = 0, frame = 56 4629 @ frame_needed = 1, uses_anonymous_args = 0 4630 0000 80B5 push {r7, lr} 4631 .LCFI120: 4632 .cfi_def_cfa_offset 8 4633 .cfi_offset 7, -8 4634 .cfi_offset 14, -4 4635 0002 8EB0 sub sp, sp, #56 4636 .LCFI121: 4637 .cfi_def_cfa_offset 64 4638 0004 00AF add r7, sp, #0 4639 .LCFI122: 4640 .cfi_def_cfa_register 7 4641 0006 7860 str r0, [r7, #4] 4642 .L245: 4643 .LBB469: 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 4644 .loc 1 2208 3 discriminator 1 4645 0008 7B68 ldr r3, [r7, #4] 4646 000a 1B68 ldr r3, [r3] 4647 000c 0C33 adds r3, r3, #12 4648 000e 3B62 str r3, [r7, #32] 4649 .LBB470: 4650 .LBB471: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4651 .loc 2 1072 4 discriminator 1 4652 0010 3B6A ldr r3, [r7, #32] 4653 .syntax unified 4654 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4655 0012 53E8003F ldrex r3, [r3] 4656 @ 0 "" 2 4657 .thumb 4658 .syntax unified 4659 0016 FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4660 .loc 2 1073 10 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 142 4661 0018 FB69 ldr r3, [r7, #28] 4662 .LBE471: 4663 .LBE470: 4664 .loc 1 2208 3 discriminator 1 4665 001a 23F0C003 bic r3, r3, #192 4666 001e 7B63 str r3, [r7, #52] 4667 0020 7B68 ldr r3, [r7, #4] 4668 0022 1B68 ldr r3, [r3] 4669 0024 0C33 adds r3, r3, #12 4670 0026 7A6B ldr r2, [r7, #52] 4671 0028 FA62 str r2, [r7, #44] 4672 002a BB62 str r3, [r7, #40] 4673 .LBB472: 4674 .LBB473: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4675 .loc 2 1123 4 discriminator 1 4676 002c B96A ldr r1, [r7, #40] 4677 002e FA6A ldr r2, [r7, #44] 4678 .syntax unified 4679 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4680 0030 41E80023 strex r3, r2, [r1] 4681 @ 0 "" 2 4682 .thumb 4683 .syntax unified 4684 0034 7B62 str r3, [r7, #36] 4685 .loc 2 1124 10 discriminator 1 4686 0036 7B6A ldr r3, [r7, #36] 4687 .LBE473: 4688 .LBE472: 4689 .loc 1 2208 3 discriminator 1 4690 0038 002B cmp r3, #0 4691 003a E5D1 bne .L245 4692 .LBE469: 2209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 4693 .loc 1 2211 7 4694 003c 7B68 ldr r3, [r7, #4] 4695 003e 1B68 ldr r3, [r3] 4696 0040 5B69 ldr r3, [r3, #20] 4697 0042 03F08003 and r3, r3, #128 4698 .loc 1 2211 6 4699 0046 802B cmp r3, #128 4700 0048 3CD1 bne .L246 4701 .L249: 4702 .LBB474: 2212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 4703 .loc 1 2213 5 discriminator 1 4704 004a 7B68 ldr r3, [r7, #4] 4705 004c 1B68 ldr r3, [r3] 4706 004e 1433 adds r3, r3, #20 4707 0050 FB60 str r3, [r7, #12] 4708 .LBB475: 4709 .LBB476: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4710 .loc 2 1072 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 143 4711 0052 FB68 ldr r3, [r7, #12] 4712 .syntax unified 4713 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4714 0054 53E8003F ldrex r3, [r3] 4715 @ 0 "" 2 4716 .thumb 4717 .syntax unified 4718 0058 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4719 .loc 2 1073 10 discriminator 1 4720 005a BB68 ldr r3, [r7, #8] 4721 .LBE476: 4722 .LBE475: 4723 .loc 1 2213 5 discriminator 1 4724 005c 23F08003 bic r3, r3, #128 4725 0060 3B63 str r3, [r7, #48] 4726 0062 7B68 ldr r3, [r7, #4] 4727 0064 1B68 ldr r3, [r3] 4728 0066 1433 adds r3, r3, #20 4729 0068 3A6B ldr r2, [r7, #48] 4730 006a BA61 str r2, [r7, #24] 4731 006c 7B61 str r3, [r7, #20] 4732 .LBB477: 4733 .LBB478: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4734 .loc 2 1123 4 discriminator 1 4735 006e 7969 ldr r1, [r7, #20] 4736 0070 BA69 ldr r2, [r7, #24] 4737 .syntax unified 4738 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4739 0072 41E80023 strex r3, r2, [r1] 4740 @ 0 "" 2 4741 .thumb 4742 .syntax unified 4743 0076 3B61 str r3, [r7, #16] 4744 .loc 2 1124 10 discriminator 1 4745 0078 3B69 ldr r3, [r7, #16] 4746 .LBE478: 4747 .LBE477: 4748 .loc 1 2213 5 discriminator 1 4749 007a 002B cmp r3, #0 4750 007c E5D1 bne .L249 4751 .LBE474: 2214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ 2216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 4752 .loc 1 2216 14 4753 007e 7B68 ldr r3, [r7, #4] 4754 0080 5B6B ldr r3, [r3, #52] 4755 .loc 1 2216 8 4756 0082 002B cmp r3, #0 4757 0084 13D0 beq .L250 2217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; 4758 .loc 1 2220 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 144 4759 0086 7B68 ldr r3, [r7, #4] 4760 0088 5B6B ldr r3, [r3, #52] 4761 .loc 1 2220 40 4762 008a 164A ldr r2, .L253 4763 008c 1A65 str r2, [r3, #80] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 2223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 4764 .loc 1 2223 11 4765 008e 7B68 ldr r3, [r7, #4] 4766 0090 5B6B ldr r3, [r3, #52] 4767 0092 1846 mov r0, r3 4768 0094 FFF7FEFF bl HAL_DMA_Abort_IT 4769 0098 0346 mov r3, r0 4770 .loc 1 2223 10 4771 009a 002B cmp r3, #0 4772 009c 1CD0 beq .L251 2224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx); 4773 .loc 1 2226 14 4774 009e 7B68 ldr r3, [r7, #4] 4775 00a0 5B6B ldr r3, [r3, #52] 4776 .loc 1 2226 22 4777 00a2 1B6D ldr r3, [r3, #80] 4778 .loc 1 2226 47 4779 00a4 7A68 ldr r2, [r7, #4] 4780 00a6 526B ldr r2, [r2, #52] 4781 .loc 1 2226 9 4782 00a8 1046 mov r0, r2 4783 00aa 9847 blx r3 4784 .LVL0: 4785 00ac 14E0 b .L251 4786 .L250: 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 4787 .loc 1 2232 26 4788 00ae 7B68 ldr r3, [r7, #4] 4789 00b0 0022 movs r2, #0 4790 00b2 DA84 strh r2, [r3, #38] @ movhi 2233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 4791 .loc 1 2235 21 4792 00b4 7B68 ldr r3, [r7, #4] 4793 00b6 2022 movs r2, #32 4794 00b8 83F83D20 strb r2, [r3, #61] 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 145 2242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 4795 .loc 1 2243 7 4796 00bc 7868 ldr r0, [r7, #4] 4797 00be FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 4798 00c2 09E0 b .L251 4799 .L246: 2244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 4800 .loc 1 2250 24 4801 00c4 7B68 ldr r3, [r7, #4] 4802 00c6 0022 movs r2, #0 4803 00c8 DA84 strh r2, [r3, #38] @ movhi 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 4804 .loc 1 2253 19 4805 00ca 7B68 ldr r3, [r7, #4] 4806 00cc 2022 movs r2, #32 4807 00ce 83F83D20 strb r2, [r3, #61] 2254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 4808 .loc 1 2261 5 4809 00d2 7868 ldr r0, [r7, #4] 4810 00d4 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 4811 .L251: 2262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 4812 .loc 1 2265 10 4813 00d8 0023 movs r3, #0 2266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4814 .loc 1 2266 1 4815 00da 1846 mov r0, r3 4816 00dc 3837 adds r7, r7, #56 4817 .LCFI123: 4818 .cfi_def_cfa_offset 8 4819 00de BD46 mov sp, r7 4820 .LCFI124: 4821 .cfi_def_cfa_register 13 4822 @ sp needed 4823 00e0 80BD pop {r7, pc} 4824 .L254: 4825 00e2 00BF .align 2 4826 .L253: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 146 4827 00e4 00000000 .word UART_DMATxOnlyAbortCallback 4828 .cfi_endproc 4829 .LFE258: 4831 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits 4832 .align 1 4833 .global HAL_UART_AbortReceive_IT 4834 .syntax unified 4835 .thumb 4836 .thumb_func 4838 HAL_UART_AbortReceive_IT: 4839 .LFB259: 2267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode). 2270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 2272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 2274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort_IT (in case of transfer in DMA mode) 2276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) 2283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4840 .loc 1 2283 1 4841 .cfi_startproc 4842 @ args = 0, pretend = 0, frame = 104 4843 @ frame_needed = 1, uses_anonymous_args = 0 4844 0000 80B5 push {r7, lr} 4845 .LCFI125: 4846 .cfi_def_cfa_offset 8 4847 .cfi_offset 7, -8 4848 .cfi_offset 14, -4 4849 0002 9AB0 sub sp, sp, #104 4850 .LCFI126: 4851 .cfi_def_cfa_offset 112 4852 0004 00AF add r7, sp, #0 4853 .LCFI127: 4854 .cfi_def_cfa_register 7 4855 0006 7860 str r0, [r7, #4] 4856 .L258: 4857 .LBB479: 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 4858 .loc 1 2285 3 discriminator 1 4859 0008 7B68 ldr r3, [r7, #4] 4860 000a 1B68 ldr r3, [r3] 4861 000c 0C33 adds r3, r3, #12 4862 000e BB64 str r3, [r7, #72] 4863 .LBB480: 4864 .LBB481: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4865 .loc 2 1072 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 147 4866 0010 BB6C ldr r3, [r7, #72] 4867 .syntax unified 4868 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4869 0012 53E8003F ldrex r3, [r3] 4870 @ 0 "" 2 4871 .thumb 4872 .syntax unified 4873 0016 7B64 str r3, [r7, #68] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4874 .loc 2 1073 10 discriminator 1 4875 0018 7B6C ldr r3, [r7, #68] 4876 .LBE481: 4877 .LBE480: 4878 .loc 1 2285 3 discriminator 1 4879 001a 23F49073 bic r3, r3, #288 4880 001e 7B66 str r3, [r7, #100] 4881 0020 7B68 ldr r3, [r7, #4] 4882 0022 1B68 ldr r3, [r3] 4883 0024 0C33 adds r3, r3, #12 4884 0026 7A6E ldr r2, [r7, #100] 4885 0028 7A65 str r2, [r7, #84] 4886 002a 3B65 str r3, [r7, #80] 4887 .LBB482: 4888 .LBB483: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4889 .loc 2 1123 4 discriminator 1 4890 002c 396D ldr r1, [r7, #80] 4891 002e 7A6D ldr r2, [r7, #84] 4892 .syntax unified 4893 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4894 0030 41E80023 strex r3, r2, [r1] 4895 @ 0 "" 2 4896 .thumb 4897 .syntax unified 4898 0034 FB64 str r3, [r7, #76] 4899 .loc 2 1124 10 discriminator 1 4900 0036 FB6C ldr r3, [r7, #76] 4901 .LBE483: 4902 .LBE482: 4903 .loc 1 2285 3 discriminator 1 4904 0038 002B cmp r3, #0 4905 003a E5D1 bne .L258 4906 .L261: 4907 .LBE479: 4908 .LBB484: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4909 .loc 1 2286 3 discriminator 1 4910 003c 7B68 ldr r3, [r7, #4] 4911 003e 1B68 ldr r3, [r3] 4912 0040 1433 adds r3, r3, #20 4913 0042 7B63 str r3, [r7, #52] 4914 .LBB485: 4915 .LBB486: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4916 .loc 2 1072 4 discriminator 1 4917 0044 7B6B ldr r3, [r7, #52] 4918 .syntax unified ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 148 4919 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4920 0046 53E8003F ldrex r3, [r3] 4921 @ 0 "" 2 4922 .thumb 4923 .syntax unified 4924 004a 3B63 str r3, [r7, #48] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4925 .loc 2 1073 10 discriminator 1 4926 004c 3B6B ldr r3, [r7, #48] 4927 .LBE486: 4928 .LBE485: 4929 .loc 1 2286 3 discriminator 1 4930 004e 23F00103 bic r3, r3, #1 4931 0052 3B66 str r3, [r7, #96] 4932 0054 7B68 ldr r3, [r7, #4] 4933 0056 1B68 ldr r3, [r3] 4934 0058 1433 adds r3, r3, #20 4935 005a 3A6E ldr r2, [r7, #96] 4936 005c 3A64 str r2, [r7, #64] 4937 005e FB63 str r3, [r7, #60] 4938 .LBB487: 4939 .LBB488: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4940 .loc 2 1123 4 discriminator 1 4941 0060 F96B ldr r1, [r7, #60] 4942 0062 3A6C ldr r2, [r7, #64] 4943 .syntax unified 4944 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4945 0064 41E80023 strex r3, r2, [r1] 4946 @ 0 "" 2 4947 .thumb 4948 .syntax unified 4949 0068 BB63 str r3, [r7, #56] 4950 .loc 2 1124 10 discriminator 1 4951 006a BB6B ldr r3, [r7, #56] 4952 .LBE488: 4953 .LBE487: 4954 .loc 1 2286 3 discriminator 1 4955 006c 002B cmp r3, #0 4956 006e E5D1 bne .L261 4957 .LBE484: 2287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 2289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 4958 .loc 1 2289 12 4959 0070 7B68 ldr r3, [r7, #4] 4960 0072 1B6B ldr r3, [r3, #48] 4961 .loc 1 2289 6 4962 0074 012B cmp r3, #1 4963 0076 19D1 bne .L262 4964 .L265: 4965 .LBB489: 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 4966 .loc 1 2291 5 discriminator 1 4967 0078 7B68 ldr r3, [r7, #4] 4968 007a 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 149 4969 007c 0C33 adds r3, r3, #12 4970 007e 3B62 str r3, [r7, #32] 4971 .LBB490: 4972 .LBB491: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4973 .loc 2 1072 4 discriminator 1 4974 0080 3B6A ldr r3, [r7, #32] 4975 .syntax unified 4976 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4977 0082 53E8003F ldrex r3, [r3] 4978 @ 0 "" 2 4979 .thumb 4980 .syntax unified 4981 0086 FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4982 .loc 2 1073 10 discriminator 1 4983 0088 FB69 ldr r3, [r7, #28] 4984 .LBE491: 4985 .LBE490: 4986 .loc 1 2291 5 discriminator 1 4987 008a 23F01003 bic r3, r3, #16 4988 008e FB65 str r3, [r7, #92] 4989 0090 7B68 ldr r3, [r7, #4] 4990 0092 1B68 ldr r3, [r3] 4991 0094 0C33 adds r3, r3, #12 4992 0096 FA6D ldr r2, [r7, #92] 4993 0098 FA62 str r2, [r7, #44] 4994 009a BB62 str r3, [r7, #40] 4995 .LBB492: 4996 .LBB493: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4997 .loc 2 1123 4 discriminator 1 4998 009c B96A ldr r1, [r7, #40] 4999 009e FA6A ldr r2, [r7, #44] 5000 .syntax unified 5001 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5002 00a0 41E80023 strex r3, r2, [r1] 5003 @ 0 "" 2 5004 .thumb 5005 .syntax unified 5006 00a4 7B62 str r3, [r7, #36] 5007 .loc 2 1124 10 discriminator 1 5008 00a6 7B6A ldr r3, [r7, #36] 5009 .LBE493: 5010 .LBE492: 5011 .loc 1 2291 5 discriminator 1 5012 00a8 002B cmp r3, #0 5013 00aa E5D1 bne .L265 5014 .L262: 5015 .LBE489: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 5016 .loc 1 2295 7 5017 00ac 7B68 ldr r3, [r7, #4] 5018 00ae 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 150 5019 00b0 5B69 ldr r3, [r3, #20] 5020 00b2 03F04003 and r3, r3, #64 5021 .loc 1 2295 6 5022 00b6 402B cmp r3, #64 5023 00b8 3FD1 bne .L266 5024 .L269: 5025 .LBB494: 2296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 5026 .loc 1 2297 5 discriminator 1 5027 00ba 7B68 ldr r3, [r7, #4] 5028 00bc 1B68 ldr r3, [r3] 5029 00be 1433 adds r3, r3, #20 5030 00c0 FB60 str r3, [r7, #12] 5031 .LBB495: 5032 .LBB496: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5033 .loc 2 1072 4 discriminator 1 5034 00c2 FB68 ldr r3, [r7, #12] 5035 .syntax unified 5036 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5037 00c4 53E8003F ldrex r3, [r3] 5038 @ 0 "" 2 5039 .thumb 5040 .syntax unified 5041 00c8 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5042 .loc 2 1073 10 discriminator 1 5043 00ca BB68 ldr r3, [r7, #8] 5044 .LBE496: 5045 .LBE495: 5046 .loc 1 2297 5 discriminator 1 5047 00cc 23F04003 bic r3, r3, #64 5048 00d0 BB65 str r3, [r7, #88] 5049 00d2 7B68 ldr r3, [r7, #4] 5050 00d4 1B68 ldr r3, [r3] 5051 00d6 1433 adds r3, r3, #20 5052 00d8 BA6D ldr r2, [r7, #88] 5053 00da BA61 str r2, [r7, #24] 5054 00dc 7B61 str r3, [r7, #20] 5055 .LBB497: 5056 .LBB498: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5057 .loc 2 1123 4 discriminator 1 5058 00de 7969 ldr r1, [r7, #20] 5059 00e0 BA69 ldr r2, [r7, #24] 5060 .syntax unified 5061 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5062 00e2 41E80023 strex r3, r2, [r1] 5063 @ 0 "" 2 5064 .thumb 5065 .syntax unified 5066 00e6 3B61 str r3, [r7, #16] 5067 .loc 2 1124 10 discriminator 1 5068 00e8 3B69 ldr r3, [r7, #16] 5069 .LBE498: 5070 .LBE497: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 151 5071 .loc 1 2297 5 discriminator 1 5072 00ea 002B cmp r3, #0 5073 00ec E5D1 bne .L269 5074 .LBE494: 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 5075 .loc 1 2300 14 5076 00ee 7B68 ldr r3, [r7, #4] 5077 00f0 9B6B ldr r3, [r3, #56] 5078 .loc 1 2300 8 5079 00f2 002B cmp r3, #0 5080 00f4 13D0 beq .L270 2301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; 5081 .loc 1 2304 12 5082 00f6 7B68 ldr r3, [r7, #4] 5083 00f8 9B6B ldr r3, [r3, #56] 5084 .loc 1 2304 40 5085 00fa 194A ldr r2, .L273 5086 00fc 1A65 str r2, [r3, #80] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 2307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 5087 .loc 1 2307 11 5088 00fe 7B68 ldr r3, [r7, #4] 5089 0100 9B6B ldr r3, [r3, #56] 5090 0102 1846 mov r0, r3 5091 0104 FFF7FEFF bl HAL_DMA_Abort_IT 5092 0108 0346 mov r3, r0 5093 .loc 1 2307 10 5094 010a 002B cmp r3, #0 5095 010c 22D0 beq .L271 2308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ 2310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 5096 .loc 1 2310 14 5097 010e 7B68 ldr r3, [r7, #4] 5098 0110 9B6B ldr r3, [r3, #56] 5099 .loc 1 2310 22 5100 0112 1B6D ldr r3, [r3, #80] 5101 .loc 1 2310 47 5102 0114 7A68 ldr r2, [r7, #4] 5103 0116 926B ldr r2, [r2, #56] 5104 .loc 1 2310 9 5105 0118 1046 mov r0, r2 5106 011a 9847 blx r3 5107 .LVL1: 5108 011c 1AE0 b .L271 5109 .L270: 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 152 2316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5110 .loc 1 2316 26 5111 011e 7B68 ldr r3, [r7, #4] 5112 0120 0022 movs r2, #0 5113 0122 DA85 strh r2, [r3, #46] @ movhi 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5114 .loc 1 2319 22 5115 0124 7B68 ldr r3, [r7, #4] 5116 0126 2022 movs r2, #32 5117 0128 83F83E20 strb r2, [r3, #62] 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5118 .loc 1 2320 28 5119 012c 7B68 ldr r3, [r7, #4] 5120 012e 0022 movs r2, #0 5121 0130 1A63 str r2, [r3, #48] 2321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 5122 .loc 1 2328 7 5123 0132 7868 ldr r0, [r7, #4] 5124 0134 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 5125 0138 0CE0 b .L271 5126 .L266: 2329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5127 .loc 1 2335 24 5128 013a 7B68 ldr r3, [r7, #4] 5129 013c 0022 movs r2, #0 5130 013e DA85 strh r2, [r3, #46] @ movhi 2336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5131 .loc 1 2338 20 5132 0140 7B68 ldr r3, [r7, #4] 5133 0142 2022 movs r2, #32 5134 0144 83F83E20 strb r2, [r3, #62] 2339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5135 .loc 1 2339 26 5136 0148 7B68 ldr r3, [r7, #4] 5137 014a 0022 movs r2, #0 5138 014c 1A63 str r2, [r3, #48] 2340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 153 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 5139 .loc 1 2347 5 5140 014e 7868 ldr r0, [r7, #4] 5141 0150 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 5142 .L271: 2348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 5143 .loc 1 2351 10 5144 0154 0023 movs r3, #0 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5145 .loc 1 2352 1 5146 0156 1846 mov r0, r3 5147 0158 6837 adds r7, r7, #104 5148 .LCFI128: 5149 .cfi_def_cfa_offset 8 5150 015a BD46 mov sp, r7 5151 .LCFI129: 5152 .cfi_def_cfa_register 13 5153 @ sp needed 5154 015c 80BD pop {r7, pc} 5155 .L274: 5156 015e 00BF .align 2 5157 .L273: 5158 0160 00000000 .word UART_DMARxOnlyAbortCallback 5159 .cfi_endproc 5160 .LFE259: 5162 .section .text.HAL_UART_IRQHandler,"ax",%progbits 5163 .align 1 5164 .global HAL_UART_IRQHandler 5165 .syntax unified 5166 .thumb 5167 .thumb_func 5169 HAL_UART_IRQHandler: 5170 .LFB260: 2353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART interrupt request. 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5171 .loc 1 2361 1 5172 .cfi_startproc 5173 @ args = 0, pretend = 0, frame = 232 5174 @ frame_needed = 1, uses_anonymous_args = 0 5175 0000 80B5 push {r7, lr} 5176 .LCFI130: 5177 .cfi_def_cfa_offset 8 5178 .cfi_offset 7, -8 5179 .cfi_offset 14, -4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 154 5180 0002 BAB0 sub sp, sp, #232 5181 .LCFI131: 5182 .cfi_def_cfa_offset 240 5183 0004 00AF add r7, sp, #0 5184 .LCFI132: 5185 .cfi_def_cfa_register 7 5186 0006 7860 str r0, [r7, #4] 2362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 5187 .loc 1 2362 25 5188 0008 7B68 ldr r3, [r7, #4] 5189 000a 1B68 ldr r3, [r3] 5190 .loc 1 2362 12 5191 000c 1B68 ldr r3, [r3] 5192 000e C7F8E430 str r3, [r7, #228] 2363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 5193 .loc 1 2363 25 5194 0012 7B68 ldr r3, [r7, #4] 5195 0014 1B68 ldr r3, [r3] 5196 .loc 1 2363 12 5197 0016 DB68 ldr r3, [r3, #12] 5198 0018 C7F8E030 str r3, [r7, #224] 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 5199 .loc 1 2364 25 5200 001c 7B68 ldr r3, [r7, #4] 5201 001e 1B68 ldr r3, [r3] 5202 .loc 1 2364 12 5203 0020 5B69 ldr r3, [r3, #20] 5204 0022 C7F8DC30 str r3, [r7, #220] 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 5205 .loc 1 2365 12 5206 0026 0023 movs r3, #0 5207 0028 C7F8D830 str r3, [r7, #216] 2366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 5208 .loc 1 2366 12 5209 002c 0023 movs r3, #0 5210 002e C7F8D430 str r3, [r7, #212] 2367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If no error occurs */ 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE)); 5211 .loc 1 2369 14 5212 0032 D7F8E430 ldr r3, [r7, #228] 5213 0036 03F00F03 and r3, r3, #15 5214 003a C7F8D830 str r3, [r7, #216] 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 5215 .loc 1 2370 6 5216 003e D7F8D830 ldr r3, [r7, #216] 5217 0042 002B cmp r3, #0 5218 0044 0FD1 bne .L276 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -------------------------------------------------*/ 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) 5219 .loc 1 2373 20 5220 0046 D7F8E430 ldr r3, [r7, #228] 5221 004a 03F02003 and r3, r3, #32 5222 .loc 1 2373 8 5223 004e 002B cmp r3, #0 5224 0050 09D0 beq .L276 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 155 5225 .loc 1 2373 59 discriminator 1 5226 0052 D7F8E030 ldr r3, [r7, #224] 5227 0056 03F02003 and r3, r3, #32 5228 .loc 1 2373 47 discriminator 1 5229 005a 002B cmp r3, #0 5230 005c 03D0 beq .L276 2374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 5231 .loc 1 2375 7 5232 005e 7868 ldr r0, [r7, #4] 5233 0060 FFF7FEFF bl UART_Receive_IT 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 5234 .loc 1 2376 7 5235 0064 56E2 b .L275 5236 .L276: 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If some errors occur */ 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) 5237 .loc 1 2381 6 5238 0066 D7F8D830 ldr r3, [r7, #216] 5239 006a 002B cmp r3, #0 5240 006c 00F0DE80 beq .L278 5241 .loc 1 2381 42 discriminator 1 5242 0070 D7F8DC30 ldr r3, [r7, #220] 5243 0074 03F00103 and r3, r3, #1 5244 .loc 1 2381 29 discriminator 1 5245 0078 002B cmp r3, #0 5246 007a 06D1 bne .L279 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 5247 .loc 1 2382 45 5248 007c D7F8E030 ldr r3, [r7, #224] 5249 0080 03F49073 and r3, r3, #288 5250 .loc 1 2382 33 5251 0084 002B cmp r3, #0 5252 0086 00F0D180 beq .L278 5253 .L279: 2383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART parity error interrupt occurred ----------------------------------*/ 2385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET)) 5254 .loc 1 2385 20 5255 008a D7F8E430 ldr r3, [r7, #228] 5256 008e 03F00103 and r3, r3, #1 5257 .loc 1 2385 8 5258 0092 002B cmp r3, #0 5259 0094 0BD0 beq .L280 5260 .loc 1 2385 57 discriminator 1 5261 0096 D7F8E030 ldr r3, [r7, #224] 5262 009a 03F48073 and r3, r3, #256 5263 .loc 1 2385 45 discriminator 1 5264 009e 002B cmp r3, #0 5265 00a0 05D0 beq .L280 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 5266 .loc 1 2387 24 5267 00a2 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 156 5268 00a4 1B6C ldr r3, [r3, #64] 5269 00a6 43F00102 orr r2, r3, #1 5270 00aa 7B68 ldr r3, [r7, #4] 5271 00ac 1A64 str r2, [r3, #64] 5272 .L280: 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART noise error interrupt occurred -----------------------------------*/ 2391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 5273 .loc 1 2391 20 5274 00ae D7F8E430 ldr r3, [r7, #228] 5275 00b2 03F00403 and r3, r3, #4 5276 .loc 1 2391 8 5277 00b6 002B cmp r3, #0 5278 00b8 0BD0 beq .L281 5279 .loc 1 2391 57 discriminator 1 5280 00ba D7F8DC30 ldr r3, [r7, #220] 5281 00be 03F00103 and r3, r3, #1 5282 .loc 1 2391 45 discriminator 1 5283 00c2 002B cmp r3, #0 5284 00c4 05D0 beq .L281 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 5285 .loc 1 2393 24 5286 00c6 7B68 ldr r3, [r7, #4] 5287 00c8 1B6C ldr r3, [r3, #64] 5288 00ca 43F00202 orr r2, r3, #2 5289 00ce 7B68 ldr r3, [r7, #4] 5290 00d0 1A64 str r2, [r3, #64] 5291 .L281: 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART frame error interrupt occurred -----------------------------------*/ 2397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 5292 .loc 1 2397 20 5293 00d2 D7F8E430 ldr r3, [r7, #228] 5294 00d6 03F00203 and r3, r3, #2 5295 .loc 1 2397 8 5296 00da 002B cmp r3, #0 5297 00dc 0BD0 beq .L282 5298 .loc 1 2397 57 discriminator 1 5299 00de D7F8DC30 ldr r3, [r7, #220] 5300 00e2 03F00103 and r3, r3, #1 5301 .loc 1 2397 45 discriminator 1 5302 00e6 002B cmp r3, #0 5303 00e8 05D0 beq .L282 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 5304 .loc 1 2399 24 5305 00ea 7B68 ldr r3, [r7, #4] 5306 00ec 1B6C ldr r3, [r3, #64] 5307 00ee 43F00402 orr r2, r3, #4 5308 00f2 7B68 ldr r3, [r7, #4] 5309 00f4 1A64 str r2, [r3, #64] 5310 .L282: 2400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 157 2402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Over-Run interrupt occurred --------------------------------------*/ 2403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) 5311 .loc 1 2403 20 5312 00f6 D7F8E430 ldr r3, [r7, #228] 5313 00fa 03F00803 and r3, r3, #8 5314 .loc 1 2403 8 5315 00fe 002B cmp r3, #0 5316 0100 11D0 beq .L283 5317 .loc 1 2403 59 discriminator 1 5318 0102 D7F8E030 ldr r3, [r7, #224] 5319 0106 03F02003 and r3, r3, #32 5320 .loc 1 2403 46 discriminator 1 5321 010a 002B cmp r3, #0 5322 010c 05D1 bne .L284 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 5323 .loc 1 2404 62 5324 010e D7F8DC30 ldr r3, [r7, #220] 5325 0112 03F00103 and r3, r3, #1 5326 .loc 1 2404 50 5327 0116 002B cmp r3, #0 5328 0118 05D0 beq .L283 5329 .L284: 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE; 5330 .loc 1 2406 24 5331 011a 7B68 ldr r3, [r7, #4] 5332 011c 1B6C ldr r3, [r3, #64] 5333 011e 43F00802 orr r2, r3, #8 5334 0122 7B68 ldr r3, [r7, #4] 5335 0124 1A64 str r2, [r3, #64] 5336 .L283: 2407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call UART Error Call back function if need be --------------------------*/ 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 5337 .loc 1 2410 14 5338 0126 7B68 ldr r3, [r7, #4] 5339 0128 1B6C ldr r3, [r3, #64] 5340 .loc 1 2410 8 5341 012a 002B cmp r3, #0 5342 012c 00F0ED81 beq .L322 2411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -----------------------------------------------*/ 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) 5343 .loc 1 2413 22 5344 0130 D7F8E430 ldr r3, [r7, #228] 5345 0134 03F02003 and r3, r3, #32 5346 .loc 1 2413 10 5347 0138 002B cmp r3, #0 5348 013a 08D0 beq .L286 5349 .loc 1 2413 61 discriminator 1 5350 013c D7F8E030 ldr r3, [r7, #224] 5351 0140 03F02003 and r3, r3, #32 5352 .loc 1 2413 49 discriminator 1 5353 0144 002B cmp r3, #0 5354 0146 02D0 beq .L286 2414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 158 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 5355 .loc 1 2415 9 5356 0148 7868 ldr r0, [r7, #4] 5357 014a FFF7FEFF bl UART_Receive_IT 5358 .L286: 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Overrun error occurs, or if any error occurs in DMA mode reception, 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** consider error as blocking */ 2420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 5359 .loc 1 2420 20 5360 014e 7B68 ldr r3, [r7, #4] 5361 0150 1B68 ldr r3, [r3] 5362 0152 5B69 ldr r3, [r3, #20] 5363 0154 03F04003 and r3, r3, #64 5364 0158 402B cmp r3, #64 5365 015a 0CBF ite eq 5366 015c 0123 moveq r3, #1 5367 015e 0023 movne r3, #0 5368 0160 DBB2 uxtb r3, r3 5369 .loc 1 2420 18 5370 0162 C7F8D430 str r3, [r7, #212] 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 5371 .loc 1 2421 18 5372 0166 7B68 ldr r3, [r7, #4] 5373 0168 1B6C ldr r3, [r3, #64] 5374 .loc 1 2421 30 5375 016a 03F00803 and r3, r3, #8 5376 .loc 1 2421 10 5377 016e 002B cmp r3, #0 5378 0170 03D1 bne .L287 5379 .loc 1 2421 62 discriminator 1 5380 0172 D7F8D430 ldr r3, [r7, #212] 5381 0176 002B cmp r3, #0 5382 0178 4FD0 beq .L288 5383 .L287: 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Blocking error : transfer is aborted 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 5384 .loc 1 2426 9 5385 017a 7868 ldr r0, [r7, #4] 5386 017c FFF7FEFF bl UART_EndRxTransfer 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 5387 .loc 1 2429 13 5388 0180 7B68 ldr r3, [r7, #4] 5389 0182 1B68 ldr r3, [r3] 5390 0184 5B69 ldr r3, [r3, #20] 5391 0186 03F04003 and r3, r3, #64 5392 .loc 1 2429 12 5393 018a 402B cmp r3, #64 5394 018c 41D1 bne .L289 5395 .L292: 5396 .LBB499: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 159 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 5397 .loc 1 2431 11 discriminator 1 5398 018e 7B68 ldr r3, [r7, #4] 5399 0190 1B68 ldr r3, [r3] 5400 0192 1433 adds r3, r3, #20 5401 0194 C7F89C30 str r3, [r7, #156] 5402 .LBB500: 5403 .LBB501: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5404 .loc 2 1072 4 discriminator 1 5405 0198 D7F89C30 ldr r3, [r7, #156] 5406 .syntax unified 5407 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5408 019c 53E8003F ldrex r3, [r3] 5409 @ 0 "" 2 5410 .thumb 5411 .syntax unified 5412 01a0 C7F89830 str r3, [r7, #152] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5413 .loc 2 1073 10 discriminator 1 5414 01a4 D7F89830 ldr r3, [r7, #152] 5415 .LBE501: 5416 .LBE500: 5417 .loc 1 2431 11 discriminator 1 5418 01a8 23F04003 bic r3, r3, #64 5419 01ac C7F8D030 str r3, [r7, #208] 5420 01b0 7B68 ldr r3, [r7, #4] 5421 01b2 1B68 ldr r3, [r3] 5422 01b4 1433 adds r3, r3, #20 5423 01b6 D7F8D020 ldr r2, [r7, #208] 5424 01ba C7F8A820 str r2, [r7, #168] 5425 01be C7F8A430 str r3, [r7, #164] 5426 .LBB502: 5427 .LBB503: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5428 .loc 2 1123 4 discriminator 1 5429 01c2 D7F8A410 ldr r1, [r7, #164] 5430 01c6 D7F8A820 ldr r2, [r7, #168] 5431 .syntax unified 5432 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5433 01ca 41E80023 strex r3, r2, [r1] 5434 @ 0 "" 2 5435 .thumb 5436 .syntax unified 5437 01ce C7F8A030 str r3, [r7, #160] 5438 .loc 2 1124 10 discriminator 1 5439 01d2 D7F8A030 ldr r3, [r7, #160] 5440 .LBE503: 5441 .LBE502: 5442 .loc 1 2431 11 discriminator 1 5443 01d6 002B cmp r3, #0 5444 01d8 D9D1 bne .L292 5445 .LBE499: 2432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 160 5446 .loc 1 2434 20 5447 01da 7B68 ldr r3, [r7, #4] 5448 01dc 9B6B ldr r3, [r3, #56] 5449 .loc 1 2434 14 5450 01de 002B cmp r3, #0 5451 01e0 13D0 beq .L293 2435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ 2438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 5452 .loc 1 2438 18 5453 01e2 7B68 ldr r3, [r7, #4] 5454 01e4 9B6B ldr r3, [r3, #56] 5455 .loc 1 2438 46 5456 01e6 7D4A ldr r2, .L326 5457 01e8 1A65 str r2, [r3, #80] 2439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 5458 .loc 1 2439 17 5459 01ea 7B68 ldr r3, [r7, #4] 5460 01ec 9B6B ldr r3, [r3, #56] 5461 01ee 1846 mov r0, r3 5462 01f0 FFF7FEFF bl HAL_DMA_Abort_IT 5463 01f4 0346 mov r3, r0 5464 .loc 1 2439 16 5465 01f6 002B cmp r3, #0 5466 01f8 16D0 beq .L323 2440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly XferAbortCallback function in case of error */ 2442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 5467 .loc 1 2442 20 5468 01fa 7B68 ldr r3, [r7, #4] 5469 01fc 9B6B ldr r3, [r3, #56] 5470 .loc 1 2442 28 5471 01fe 1B6D ldr r3, [r3, #80] 5472 .loc 1 2442 53 5473 0200 7A68 ldr r2, [r7, #4] 5474 0202 926B ldr r2, [r2, #56] 5475 .loc 1 2442 15 5476 0204 1046 mov r0, r2 5477 0206 9847 blx r3 5478 .LVL2: 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5479 .loc 1 2429 12 5480 0208 0EE0 b .L323 5481 .L293: 2443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 5482 .loc 1 2453 13 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 161 5483 020a 7868 ldr r0, [r7, #4] 5484 020c FFF7FEFF bl HAL_UART_ErrorCallback 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5485 .loc 1 2429 12 5486 0210 0AE0 b .L323 5487 .L289: 2454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 5488 .loc 1 2465 11 5489 0212 7868 ldr r0, [r7, #4] 5490 0214 FFF7FEFF bl HAL_UART_ErrorCallback 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5491 .loc 1 2429 12 5492 0218 06E0 b .L323 5493 .L288: 2466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 2472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error is notified to user through user error callback */ 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 5494 .loc 1 2478 9 5495 021a 7868 ldr r0, [r7, #4] 5496 021c FFF7FEFF bl HAL_UART_ErrorCallback 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 5497 .loc 1 2481 26 5498 0220 7B68 ldr r3, [r7, #4] 5499 0222 0022 movs r2, #0 5500 0224 1A64 str r2, [r3, #64] 2482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 5501 .loc 1 2484 5 5502 0226 70E1 b .L322 5503 .L323: 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5504 .loc 1 2429 12 5505 0228 00BF nop ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 162 5506 .loc 1 2484 5 5507 022a 6EE1 b .L322 5508 .L278: 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 2489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 5509 .loc 1 2489 13 5510 022c 7B68 ldr r3, [r7, #4] 5511 022e 1B6B ldr r3, [r3, #48] 5512 .loc 1 2489 6 5513 0230 012B cmp r3, #1 5514 0232 40F04A81 bne .L295 2490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 5515 .loc 1 2490 21 5516 0236 D7F8E430 ldr r3, [r7, #228] 5517 023a 03F01003 and r3, r3, #16 5518 .loc 1 2490 7 5519 023e 002B cmp r3, #0 5520 0240 00F04381 beq .L295 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((cr1its & USART_SR_IDLE) != 0U)) 5521 .loc 1 2491 19 5522 0244 D7F8E030 ldr r3, [r7, #224] 5523 0248 03F01003 and r3, r3, #16 5524 .loc 1 2491 7 5525 024c 002B cmp r3, #0 5526 024e 00F03C81 beq .L295 5527 .LBB504: 2492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 5528 .loc 1 2493 5 5529 0252 0023 movs r3, #0 5530 0254 BB60 str r3, [r7, #8] 5531 0256 7B68 ldr r3, [r7, #4] 5532 0258 1B68 ldr r3, [r3] 5533 025a 1B68 ldr r3, [r3] 5534 025c BB60 str r3, [r7, #8] 5535 025e 7B68 ldr r3, [r7, #4] 5536 0260 1B68 ldr r3, [r3] 5537 0262 5B68 ldr r3, [r3, #4] 5538 0264 BB60 str r3, [r7, #8] 5539 0266 BB68 ldr r3, [r7, #8] 5540 .LBE504: 2494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if DMA mode is enabled in UART */ 2496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 5541 .loc 1 2496 9 5542 0268 7B68 ldr r3, [r7, #4] 5543 026a 1B68 ldr r3, [r3] 5544 026c 5B69 ldr r3, [r3, #20] 5545 026e 03F04003 and r3, r3, #64 5546 .loc 1 2496 8 5547 0272 402B cmp r3, #64 5548 0274 40F0B480 bne .L296 5549 .LBB505: 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 163 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA mode enabled */ 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing, 2500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (DMA cplt callback will be called). 2501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 5550 .loc 1 2502 50 5551 0278 7B68 ldr r3, [r7, #4] 5552 027a 9B6B ldr r3, [r3, #56] 5553 027c 1B68 ldr r3, [r3] 5554 027e 5B68 ldr r3, [r3, #4] 5555 .loc 1 2502 16 5556 0280 A7F8BE30 strh r3, [r7, #190] @ movhi 2503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 5557 .loc 1 2503 10 5558 0284 B7F8BE30 ldrh r3, [r7, #190] 5559 0288 002B cmp r3, #0 5560 028a 00F04081 beq .L324 2504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 5561 .loc 1 2504 43 5562 028e 7B68 ldr r3, [r7, #4] 5563 0290 9B8D ldrh r3, [r3, #44] 5564 .loc 1 2504 11 5565 0292 B7F8BE20 ldrh r2, [r7, #190] 5566 0296 9A42 cmp r2, r3 5567 0298 80F03981 bcs .L324 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reception is not complete */ 2507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = nb_remaining_rx_data; 5568 .loc 1 2507 28 5569 029c 7B68 ldr r3, [r7, #4] 5570 029e B7F8BE20 ldrh r2, [r7, #190] @ movhi 5571 02a2 DA85 strh r2, [r3, #46] @ movhi 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Normal mode, end DMA xfer and HAL UART Rx process*/ 2510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) 5572 .loc 1 2510 18 5573 02a4 7B68 ldr r3, [r7, #4] 5574 02a6 9B6B ldr r3, [r3, #56] 5575 .loc 1 2510 32 5576 02a8 DB69 ldr r3, [r3, #28] 5577 .loc 1 2510 12 5578 02aa B3F5807F cmp r3, #256 5579 02ae 00F08880 beq .L298 5580 .L301: 5581 .LBB506: 2511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 5582 .loc 1 2513 11 discriminator 1 5583 02b2 7B68 ldr r3, [r7, #4] 5584 02b4 1B68 ldr r3, [r3] 5585 02b6 0C33 adds r3, r3, #12 5586 02b8 C7F88830 str r3, [r7, #136] 5587 .LBB507: 5588 .LBB508: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5589 .loc 2 1072 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 164 5590 02bc D7F88830 ldr r3, [r7, #136] 5591 .syntax unified 5592 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5593 02c0 53E8003F ldrex r3, [r3] 5594 @ 0 "" 2 5595 .thumb 5596 .syntax unified 5597 02c4 C7F88430 str r3, [r7, #132] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5598 .loc 2 1073 10 discriminator 1 5599 02c8 D7F88430 ldr r3, [r7, #132] 5600 .LBE508: 5601 .LBE507: 5602 .loc 1 2513 11 discriminator 1 5603 02cc 23F48073 bic r3, r3, #256 5604 02d0 C7F8B830 str r3, [r7, #184] 5605 02d4 7B68 ldr r3, [r7, #4] 5606 02d6 1B68 ldr r3, [r3] 5607 02d8 0C33 adds r3, r3, #12 5608 02da D7F8B820 ldr r2, [r7, #184] 5609 02de C7F89420 str r2, [r7, #148] 5610 02e2 C7F89030 str r3, [r7, #144] 5611 .LBB509: 5612 .LBB510: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5613 .loc 2 1123 4 discriminator 1 5614 02e6 D7F89010 ldr r1, [r7, #144] 5615 02ea D7F89420 ldr r2, [r7, #148] 5616 .syntax unified 5617 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5618 02ee 41E80023 strex r3, r2, [r1] 5619 @ 0 "" 2 5620 .thumb 5621 .syntax unified 5622 02f2 C7F88C30 str r3, [r7, #140] 5623 .loc 2 1124 10 discriminator 1 5624 02f6 D7F88C30 ldr r3, [r7, #140] 5625 .LBE510: 5626 .LBE509: 5627 .loc 1 2513 11 discriminator 1 5628 02fa 002B cmp r3, #0 5629 02fc D9D1 bne .L301 5630 .L304: 5631 .LBE506: 5632 .LBB511: 2514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5633 .loc 1 2514 11 discriminator 1 5634 02fe 7B68 ldr r3, [r7, #4] 5635 0300 1B68 ldr r3, [r3] 5636 0302 1433 adds r3, r3, #20 5637 0304 7B67 str r3, [r7, #116] 5638 .LBB512: 5639 .LBB513: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5640 .loc 2 1072 4 discriminator 1 5641 0306 7B6F ldr r3, [r7, #116] 5642 .syntax unified ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 165 5643 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5644 0308 53E8003F ldrex r3, [r3] 5645 @ 0 "" 2 5646 .thumb 5647 .syntax unified 5648 030c 3B67 str r3, [r7, #112] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5649 .loc 2 1073 10 discriminator 1 5650 030e 3B6F ldr r3, [r7, #112] 5651 .LBE513: 5652 .LBE512: 5653 .loc 1 2514 11 discriminator 1 5654 0310 23F00103 bic r3, r3, #1 5655 0314 C7F8B430 str r3, [r7, #180] 5656 0318 7B68 ldr r3, [r7, #4] 5657 031a 1B68 ldr r3, [r3] 5658 031c 1433 adds r3, r3, #20 5659 031e D7F8B420 ldr r2, [r7, #180] 5660 0322 C7F88020 str r2, [r7, #128] 5661 0326 FB67 str r3, [r7, #124] 5662 .LBB514: 5663 .LBB515: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5664 .loc 2 1123 4 discriminator 1 5665 0328 F96F ldr r1, [r7, #124] 5666 032a D7F88020 ldr r2, [r7, #128] 5667 .syntax unified 5668 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5669 032e 41E80023 strex r3, r2, [r1] 5670 @ 0 "" 2 5671 .thumb 5672 .syntax unified 5673 0332 BB67 str r3, [r7, #120] 5674 .loc 2 1124 10 discriminator 1 5675 0334 BB6F ldr r3, [r7, #120] 5676 .LBE515: 5677 .LBE514: 5678 .loc 1 2514 11 discriminator 1 5679 0336 002B cmp r3, #0 5680 0338 E1D1 bne .L304 5681 .L307: 5682 .LBE511: 5683 .LBB516: 2515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 2518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 5684 .loc 1 2518 11 discriminator 1 5685 033a 7B68 ldr r3, [r7, #4] 5686 033c 1B68 ldr r3, [r3] 5687 033e 1433 adds r3, r3, #20 5688 0340 3B66 str r3, [r7, #96] 5689 .LBB517: 5690 .LBB518: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5691 .loc 2 1072 4 discriminator 1 5692 0342 3B6E ldr r3, [r7, #96] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 166 5693 .syntax unified 5694 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5695 0344 53E8003F ldrex r3, [r3] 5696 @ 0 "" 2 5697 .thumb 5698 .syntax unified 5699 0348 FB65 str r3, [r7, #92] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5700 .loc 2 1073 10 discriminator 1 5701 034a FB6D ldr r3, [r7, #92] 5702 .LBE518: 5703 .LBE517: 5704 .loc 1 2518 11 discriminator 1 5705 034c 23F04003 bic r3, r3, #64 5706 0350 C7F8B030 str r3, [r7, #176] 5707 0354 7B68 ldr r3, [r7, #4] 5708 0356 1B68 ldr r3, [r3] 5709 0358 1433 adds r3, r3, #20 5710 035a D7F8B020 ldr r2, [r7, #176] 5711 035e FA66 str r2, [r7, #108] 5712 0360 BB66 str r3, [r7, #104] 5713 .LBB519: 5714 .LBB520: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5715 .loc 2 1123 4 discriminator 1 5716 0362 B96E ldr r1, [r7, #104] 5717 0364 FA6E ldr r2, [r7, #108] 5718 .syntax unified 5719 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5720 0366 41E80023 strex r3, r2, [r1] 5721 @ 0 "" 2 5722 .thumb 5723 .syntax unified 5724 036a 7B66 str r3, [r7, #100] 5725 .loc 2 1124 10 discriminator 1 5726 036c 7B6E ldr r3, [r7, #100] 5727 .LBE520: 5728 .LBE519: 5729 .loc 1 2518 11 discriminator 1 5730 036e 002B cmp r3, #0 5731 0370 E3D1 bne .L307 5732 .LBE516: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5733 .loc 1 2521 26 5734 0372 7B68 ldr r3, [r7, #4] 5735 0374 2022 movs r2, #32 5736 0376 83F83E20 strb r2, [r3, #62] 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5737 .loc 1 2522 32 5738 037a 7B68 ldr r3, [r7, #4] 5739 037c 0022 movs r2, #0 5740 037e 1A63 str r2, [r3, #48] 5741 .L310: 5742 .LBB521: 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 167 2524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 5743 .loc 1 2524 11 discriminator 1 5744 0380 7B68 ldr r3, [r7, #4] 5745 0382 1B68 ldr r3, [r3] 5746 0384 0C33 adds r3, r3, #12 5747 0386 FB64 str r3, [r7, #76] 5748 .LBB522: 5749 .LBB523: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5750 .loc 2 1072 4 discriminator 1 5751 0388 FB6C ldr r3, [r7, #76] 5752 .syntax unified 5753 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5754 038a 53E8003F ldrex r3, [r3] 5755 @ 0 "" 2 5756 .thumb 5757 .syntax unified 5758 038e BB64 str r3, [r7, #72] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5759 .loc 2 1073 10 discriminator 1 5760 0390 BB6C ldr r3, [r7, #72] 5761 .LBE523: 5762 .LBE522: 5763 .loc 1 2524 11 discriminator 1 5764 0392 23F01003 bic r3, r3, #16 5765 0396 C7F8AC30 str r3, [r7, #172] 5766 039a 7B68 ldr r3, [r7, #4] 5767 039c 1B68 ldr r3, [r3] 5768 039e 0C33 adds r3, r3, #12 5769 03a0 D7F8AC20 ldr r2, [r7, #172] 5770 03a4 BA65 str r2, [r7, #88] 5771 03a6 7B65 str r3, [r7, #84] 5772 .LBB524: 5773 .LBB525: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5774 .loc 2 1123 4 discriminator 1 5775 03a8 796D ldr r1, [r7, #84] 5776 03aa BA6D ldr r2, [r7, #88] 5777 .syntax unified 5778 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5779 03ac 41E80023 strex r3, r2, [r1] 5780 @ 0 "" 2 5781 .thumb 5782 .syntax unified 5783 03b0 3B65 str r3, [r7, #80] 5784 .loc 2 1124 10 discriminator 1 5785 03b2 3B6D ldr r3, [r7, #80] 5786 .LBE525: 5787 .LBE524: 5788 .loc 1 2524 11 discriminator 1 5789 03b4 002B cmp r3, #0 5790 03b6 E3D1 bne .L310 5791 .LBE521: 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Last bytes received, so no need as the abort is immediate */ 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (void)HAL_DMA_Abort(huart->hdmarx); 5792 .loc 1 2527 17 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 168 5793 03b8 7B68 ldr r3, [r7, #4] 5794 03ba 9B6B ldr r3, [r3, #56] 5795 03bc 1846 mov r0, r3 5796 03be FFF7FEFF bl HAL_DMA_Abort 5797 .L298: 2528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 2531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 5798 .loc 1 2534 49 5799 03c2 7B68 ldr r3, [r7, #4] 5800 03c4 9A8D ldrh r2, [r3, #44] 5801 .loc 1 2534 69 5802 03c6 7B68 ldr r3, [r7, #4] 5803 03c8 DB8D ldrh r3, [r3, #46] @ movhi 5804 03ca 9BB2 uxth r3, r3 5805 .loc 1 2534 9 5806 03cc D31A subs r3, r2, r3 5807 03ce 9BB2 uxth r3, r3 5808 03d0 1946 mov r1, r3 5809 03d2 7868 ldr r0, [r7, #4] 5810 03d4 FFF7FEFF bl HAL_UARTEx_RxEventCallback 2535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 5811 .loc 1 2537 7 5812 03d8 99E0 b .L324 5813 .L327: 5814 03da 00BF .align 2 5815 .L326: 5816 03dc 00000000 .word UART_DMAAbortOnError 5817 .L296: 5818 .LBE505: 5819 .LBB526: 2538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA mode not enabled */ 2542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing. 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 5820 .loc 1 2544 34 5821 03e0 7B68 ldr r3, [r7, #4] 5822 03e2 9A8D ldrh r2, [r3, #44] 5823 .loc 1 2544 54 5824 03e4 7B68 ldr r3, [r7, #4] 5825 03e6 DB8D ldrh r3, [r3, #46] @ movhi 5826 03e8 9BB2 uxth r3, r3 5827 .loc 1 2544 16 5828 03ea D31A subs r3, r2, r3 5829 03ec A7F8CE30 strh r3, [r7, #206] @ movhi 2545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 5830 .loc 1 2545 17 5831 03f0 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 169 5832 03f2 DB8D ldrh r3, [r3, #46] @ movhi 5833 03f4 9BB2 uxth r3, r3 5834 .loc 1 2545 10 5835 03f6 002B cmp r3, #0 5836 03f8 00F08B80 beq .L325 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 5837 .loc 1 2546 11 5838 03fc B7F8CE30 ldrh r3, [r7, #206] 5839 0400 002B cmp r3, #0 5840 0402 00F08680 beq .L325 5841 .L314: 5842 .LBB527: 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ 2549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 5843 .loc 1 2549 9 discriminator 1 5844 0406 7B68 ldr r3, [r7, #4] 5845 0408 1B68 ldr r3, [r3] 5846 040a 0C33 adds r3, r3, #12 5847 040c BB63 str r3, [r7, #56] 5848 .LBB528: 5849 .LBB529: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5850 .loc 2 1072 4 discriminator 1 5851 040e BB6B ldr r3, [r7, #56] 5852 .syntax unified 5853 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5854 0410 53E8003F ldrex r3, [r3] 5855 @ 0 "" 2 5856 .thumb 5857 .syntax unified 5858 0414 7B63 str r3, [r7, #52] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5859 .loc 2 1073 10 discriminator 1 5860 0416 7B6B ldr r3, [r7, #52] 5861 .LBE529: 5862 .LBE528: 5863 .loc 1 2549 9 discriminator 1 5864 0418 23F49073 bic r3, r3, #288 5865 041c C7F8C830 str r3, [r7, #200] 5866 0420 7B68 ldr r3, [r7, #4] 5867 0422 1B68 ldr r3, [r3] 5868 0424 0C33 adds r3, r3, #12 5869 0426 D7F8C820 ldr r2, [r7, #200] 5870 042a 7A64 str r2, [r7, #68] 5871 042c 3B64 str r3, [r7, #64] 5872 .LBB530: 5873 .LBB531: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5874 .loc 2 1123 4 discriminator 1 5875 042e 396C ldr r1, [r7, #64] 5876 0430 7A6C ldr r2, [r7, #68] 5877 .syntax unified 5878 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5879 0432 41E80023 strex r3, r2, [r1] 5880 @ 0 "" 2 5881 .thumb ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 170 5882 .syntax unified 5883 0436 FB63 str r3, [r7, #60] 5884 .loc 2 1124 10 discriminator 1 5885 0438 FB6B ldr r3, [r7, #60] 5886 .LBE531: 5887 .LBE530: 5888 .loc 1 2549 9 discriminator 1 5889 043a 002B cmp r3, #0 5890 043c E3D1 bne .L314 5891 .L317: 5892 .LBE527: 5893 .LBB532: 2550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 2552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5894 .loc 1 2552 9 discriminator 1 5895 043e 7B68 ldr r3, [r7, #4] 5896 0440 1B68 ldr r3, [r3] 5897 0442 1433 adds r3, r3, #20 5898 0444 7B62 str r3, [r7, #36] 5899 .LBB533: 5900 .LBB534: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5901 .loc 2 1072 4 discriminator 1 5902 0446 7B6A ldr r3, [r7, #36] 5903 .syntax unified 5904 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5905 0448 53E8003F ldrex r3, [r3] 5906 @ 0 "" 2 5907 .thumb 5908 .syntax unified 5909 044c 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5910 .loc 2 1073 10 discriminator 1 5911 044e 3B6A ldr r3, [r7, #32] 5912 .LBE534: 5913 .LBE533: 5914 .loc 1 2552 9 discriminator 1 5915 0450 23F00103 bic r3, r3, #1 5916 0454 C7F8C430 str r3, [r7, #196] 5917 0458 7B68 ldr r3, [r7, #4] 5918 045a 1B68 ldr r3, [r3] 5919 045c 1433 adds r3, r3, #20 5920 045e D7F8C420 ldr r2, [r7, #196] 5921 0462 3A63 str r2, [r7, #48] 5922 0464 FB62 str r3, [r7, #44] 5923 .LBB535: 5924 .LBB536: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5925 .loc 2 1123 4 discriminator 1 5926 0466 F96A ldr r1, [r7, #44] 5927 0468 3A6B ldr r2, [r7, #48] 5928 .syntax unified 5929 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5930 046a 41E80023 strex r3, r2, [r1] 5931 @ 0 "" 2 5932 .thumb ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 171 5933 .syntax unified 5934 046e BB62 str r3, [r7, #40] 5935 .loc 2 1124 10 discriminator 1 5936 0470 BB6A ldr r3, [r7, #40] 5937 .LBE536: 5938 .LBE535: 5939 .loc 1 2552 9 discriminator 1 5940 0472 002B cmp r3, #0 5941 0474 E3D1 bne .L317 5942 .LBE532: 2553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5943 .loc 1 2555 24 5944 0476 7B68 ldr r3, [r7, #4] 5945 0478 2022 movs r2, #32 5946 047a 83F83E20 strb r2, [r3, #62] 2556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5947 .loc 1 2556 30 5948 047e 7B68 ldr r3, [r7, #4] 5949 0480 0022 movs r2, #0 5950 0482 1A63 str r2, [r3, #48] 5951 .L320: 5952 .LBB537: 2557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 5953 .loc 1 2558 9 discriminator 1 5954 0484 7B68 ldr r3, [r7, #4] 5955 0486 1B68 ldr r3, [r3] 5956 0488 0C33 adds r3, r3, #12 5957 048a 3B61 str r3, [r7, #16] 5958 .LBB538: 5959 .LBB539: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5960 .loc 2 1072 4 discriminator 1 5961 048c 3B69 ldr r3, [r7, #16] 5962 .syntax unified 5963 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5964 048e 53E8003F ldrex r3, [r3] 5965 @ 0 "" 2 5966 .thumb 5967 .syntax unified 5968 0492 FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5969 .loc 2 1073 10 discriminator 1 5970 0494 FB68 ldr r3, [r7, #12] 5971 .LBE539: 5972 .LBE538: 5973 .loc 1 2558 9 discriminator 1 5974 0496 23F01003 bic r3, r3, #16 5975 049a C7F8C030 str r3, [r7, #192] 5976 049e 7B68 ldr r3, [r7, #4] 5977 04a0 1B68 ldr r3, [r3] 5978 04a2 0C33 adds r3, r3, #12 5979 04a4 D7F8C020 ldr r2, [r7, #192] 5980 04a8 FA61 str r2, [r7, #28] 5981 04aa BB61 str r3, [r7, #24] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 172 5982 .LBB540: 5983 .LBB541: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5984 .loc 2 1123 4 discriminator 1 5985 04ac B969 ldr r1, [r7, #24] 5986 04ae FA69 ldr r2, [r7, #28] 5987 .syntax unified 5988 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5989 04b0 41E80023 strex r3, r2, [r1] 5990 @ 0 "" 2 5991 .thumb 5992 .syntax unified 5993 04b4 7B61 str r3, [r7, #20] 5994 .loc 2 1124 10 discriminator 1 5995 04b6 7B69 ldr r3, [r7, #20] 5996 .LBE541: 5997 .LBE540: 5998 .loc 1 2558 9 discriminator 1 5999 04b8 002B cmp r3, #0 6000 04ba E3D1 bne .L320 6001 .LBE537: 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 2561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, nb_rx_data); 2562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 6002 .loc 1 2564 9 6003 04bc B7F8CE30 ldrh r3, [r7, #206] 6004 04c0 1946 mov r1, r3 6005 04c2 7868 ldr r0, [r7, #4] 6006 04c4 FFF7FEFF bl HAL_UARTEx_RxEventCallback 2565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6007 .loc 1 2567 7 6008 04c8 23E0 b .L325 6009 .L295: 6010 .LBE526: 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/ 2572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET)) 6011 .loc 1 2572 18 6012 04ca D7F8E430 ldr r3, [r7, #228] 6013 04ce 03F08003 and r3, r3, #128 6014 .loc 1 2572 6 6015 04d2 002B cmp r3, #0 6016 04d4 09D0 beq .L321 6017 .loc 1 2572 56 discriminator 1 6018 04d6 D7F8E030 ldr r3, [r7, #224] 6019 04da 03F08003 and r3, r3, #128 6020 .loc 1 2572 44 discriminator 1 6021 04de 002B cmp r3, #0 6022 04e0 03D0 beq .L321 2573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 173 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Transmit_IT(huart); 6023 .loc 1 2574 5 6024 04e2 7868 ldr r0, [r7, #4] 6025 04e4 FFF7FEFF bl UART_Transmit_IT 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6026 .loc 1 2575 5 6027 04e8 14E0 b .L275 6028 .L321: 2576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter end --------------------------------------------*/ 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET)) 6029 .loc 1 2579 18 6030 04ea D7F8E430 ldr r3, [r7, #228] 6031 04ee 03F04003 and r3, r3, #64 6032 .loc 1 2579 6 6033 04f2 002B cmp r3, #0 6034 04f4 0ED0 beq .L275 6035 .loc 1 2579 55 discriminator 1 6036 04f6 D7F8E030 ldr r3, [r7, #224] 6037 04fa 03F04003 and r3, r3, #64 6038 .loc 1 2579 43 discriminator 1 6039 04fe 002B cmp r3, #0 6040 0500 08D0 beq .L275 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTransmit_IT(huart); 6041 .loc 1 2581 5 6042 0502 7868 ldr r0, [r7, #4] 6043 0504 FFF7FEFF bl UART_EndTransmit_IT 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6044 .loc 1 2582 5 6045 0508 04E0 b .L275 6046 .L322: 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 6047 .loc 1 2484 5 6048 050a 00BF nop 6049 050c 02E0 b .L275 6050 .L324: 6051 .LBB542: 2537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6052 .loc 1 2537 7 6053 050e 00BF nop 6054 0510 00E0 b .L275 6055 .L325: 6056 .LBE542: 6057 .LBB543: 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6058 .loc 1 2567 7 6059 0512 00BF nop 6060 .L275: 6061 .LBE543: 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6062 .loc 1 2584 1 6063 0514 E837 adds r7, r7, #232 6064 .LCFI133: 6065 .cfi_def_cfa_offset 8 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 174 6066 0516 BD46 mov sp, r7 6067 .LCFI134: 6068 .cfi_def_cfa_register 13 6069 @ sp needed 6070 0518 80BD pop {r7, pc} 6071 .cfi_endproc 6072 .LFE260: 6074 051a 00BF .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 6075 .align 1 6076 .weak HAL_UART_TxCpltCallback 6077 .syntax unified 6078 .thumb 6079 .thumb_func 6081 HAL_UART_TxCpltCallback: 6082 .LFB261: 2585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Transfer completed callbacks. 2588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 2593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6083 .loc 1 2593 1 6084 .cfi_startproc 6085 @ args = 0, pretend = 0, frame = 8 6086 @ frame_needed = 1, uses_anonymous_args = 0 6087 @ link register save eliminated. 6088 0000 80B4 push {r7} 6089 .LCFI135: 6090 .cfi_def_cfa_offset 4 6091 .cfi_offset 7, -4 6092 0002 83B0 sub sp, sp, #12 6093 .LCFI136: 6094 .cfi_def_cfa_offset 16 6095 0004 00AF add r7, sp, #0 6096 .LCFI137: 6097 .cfi_def_cfa_register 7 6098 0006 7860 str r0, [r7, #4] 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxCpltCallback could be implemented in the user file 2598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6099 .loc 1 2599 1 6100 0008 00BF nop 6101 000a 0C37 adds r7, r7, #12 6102 .LCFI138: 6103 .cfi_def_cfa_offset 4 6104 000c BD46 mov sp, r7 6105 .LCFI139: 6106 .cfi_def_cfa_register 13 6107 @ sp needed 6108 000e 5DF8047B ldr r7, [sp], #4 6109 .LCFI140: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 175 6110 .cfi_restore 7 6111 .cfi_def_cfa_offset 0 6112 0012 7047 bx lr 6113 .cfi_endproc 6114 .LFE261: 6116 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 6117 .align 1 6118 .weak HAL_UART_TxHalfCpltCallback 6119 .syntax unified 6120 .thumb 6121 .thumb_func 6123 HAL_UART_TxHalfCpltCallback: 6124 .LFB262: 2600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Half Transfer completed callbacks. 2603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6125 .loc 1 2608 1 6126 .cfi_startproc 6127 @ args = 0, pretend = 0, frame = 8 6128 @ frame_needed = 1, uses_anonymous_args = 0 6129 @ link register save eliminated. 6130 0000 80B4 push {r7} 6131 .LCFI141: 6132 .cfi_def_cfa_offset 4 6133 .cfi_offset 7, -4 6134 0002 83B0 sub sp, sp, #12 6135 .LCFI142: 6136 .cfi_def_cfa_offset 16 6137 0004 00AF add r7, sp, #0 6138 .LCFI143: 6139 .cfi_def_cfa_register 7 6140 0006 7860 str r0, [r7, #4] 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback could be implemented in the user file 2613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6141 .loc 1 2614 1 6142 0008 00BF nop 6143 000a 0C37 adds r7, r7, #12 6144 .LCFI144: 6145 .cfi_def_cfa_offset 4 6146 000c BD46 mov sp, r7 6147 .LCFI145: 6148 .cfi_def_cfa_register 13 6149 @ sp needed 6150 000e 5DF8047B ldr r7, [sp], #4 6151 .LCFI146: 6152 .cfi_restore 7 6153 .cfi_def_cfa_offset 0 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 176 6154 0012 7047 bx lr 6155 .cfi_endproc 6156 .LFE262: 6158 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 6159 .align 1 6160 .weak HAL_UART_RxCpltCallback 6161 .syntax unified 6162 .thumb 6163 .thumb_func 6165 HAL_UART_RxCpltCallback: 6166 .LFB263: 2615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Transfer completed callbacks. 2618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 2623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6167 .loc 1 2623 1 6168 .cfi_startproc 6169 @ args = 0, pretend = 0, frame = 8 6170 @ frame_needed = 1, uses_anonymous_args = 0 6171 @ link register save eliminated. 6172 0000 80B4 push {r7} 6173 .LCFI147: 6174 .cfi_def_cfa_offset 4 6175 .cfi_offset 7, -4 6176 0002 83B0 sub sp, sp, #12 6177 .LCFI148: 6178 .cfi_def_cfa_offset 16 6179 0004 00AF add r7, sp, #0 6180 .LCFI149: 6181 .cfi_def_cfa_register 7 6182 0006 7860 str r0, [r7, #4] 2624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxCpltCallback could be implemented in the user file 2628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6183 .loc 1 2629 1 6184 0008 00BF nop 6185 000a 0C37 adds r7, r7, #12 6186 .LCFI150: 6187 .cfi_def_cfa_offset 4 6188 000c BD46 mov sp, r7 6189 .LCFI151: 6190 .cfi_def_cfa_register 13 6191 @ sp needed 6192 000e 5DF8047B ldr r7, [sp], #4 6193 .LCFI152: 6194 .cfi_restore 7 6195 .cfi_def_cfa_offset 0 6196 0012 7047 bx lr 6197 .cfi_endproc ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 177 6198 .LFE263: 6200 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits 6201 .align 1 6202 .weak HAL_UART_RxHalfCpltCallback 6203 .syntax unified 6204 .thumb 6205 .thumb_func 6207 HAL_UART_RxHalfCpltCallback: 6208 .LFB264: 2630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Half Transfer completed callbacks. 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) 2638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6209 .loc 1 2638 1 6210 .cfi_startproc 6211 @ args = 0, pretend = 0, frame = 8 6212 @ frame_needed = 1, uses_anonymous_args = 0 6213 @ link register save eliminated. 6214 0000 80B4 push {r7} 6215 .LCFI153: 6216 .cfi_def_cfa_offset 4 6217 .cfi_offset 7, -4 6218 0002 83B0 sub sp, sp, #12 6219 .LCFI154: 6220 .cfi_def_cfa_offset 16 6221 0004 00AF add r7, sp, #0 6222 .LCFI155: 6223 .cfi_def_cfa_register 7 6224 0006 7860 str r0, [r7, #4] 2639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback could be implemented in the user file 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6225 .loc 1 2644 1 6226 0008 00BF nop 6227 000a 0C37 adds r7, r7, #12 6228 .LCFI156: 6229 .cfi_def_cfa_offset 4 6230 000c BD46 mov sp, r7 6231 .LCFI157: 6232 .cfi_def_cfa_register 13 6233 @ sp needed 6234 000e 5DF8047B ldr r7, [sp], #4 6235 .LCFI158: 6236 .cfi_restore 7 6237 .cfi_def_cfa_offset 0 6238 0012 7047 bx lr 6239 .cfi_endproc 6240 .LFE264: 6242 .section .text.HAL_UART_ErrorCallback,"ax",%progbits ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 178 6243 .align 1 6244 .weak HAL_UART_ErrorCallback 6245 .syntax unified 6246 .thumb 6247 .thumb_func 6249 HAL_UART_ErrorCallback: 6250 .LFB265: 2645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART error callbacks. 2648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6251 .loc 1 2653 1 6252 .cfi_startproc 6253 @ args = 0, pretend = 0, frame = 8 6254 @ frame_needed = 1, uses_anonymous_args = 0 6255 @ link register save eliminated. 6256 0000 80B4 push {r7} 6257 .LCFI159: 6258 .cfi_def_cfa_offset 4 6259 .cfi_offset 7, -4 6260 0002 83B0 sub sp, sp, #12 6261 .LCFI160: 6262 .cfi_def_cfa_offset 16 6263 0004 00AF add r7, sp, #0 6264 .LCFI161: 6265 .cfi_def_cfa_register 7 6266 0006 7860 str r0, [r7, #4] 2654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_ErrorCallback could be implemented in the user file 2658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6267 .loc 1 2659 1 6268 0008 00BF nop 6269 000a 0C37 adds r7, r7, #12 6270 .LCFI162: 6271 .cfi_def_cfa_offset 4 6272 000c BD46 mov sp, r7 6273 .LCFI163: 6274 .cfi_def_cfa_register 13 6275 @ sp needed 6276 000e 5DF8047B ldr r7, [sp], #4 6277 .LCFI164: 6278 .cfi_restore 7 6279 .cfi_def_cfa_offset 0 6280 0012 7047 bx lr 6281 .cfi_endproc 6282 .LFE265: 6284 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 6285 .align 1 6286 .weak HAL_UART_AbortCpltCallback ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 179 6287 .syntax unified 6288 .thumb 6289 .thumb_func 6291 HAL_UART_AbortCpltCallback: 6292 .LFB266: 2660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) 2667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6293 .loc 1 2667 1 6294 .cfi_startproc 6295 @ args = 0, pretend = 0, frame = 8 6296 @ frame_needed = 1, uses_anonymous_args = 0 6297 @ link register save eliminated. 6298 0000 80B4 push {r7} 6299 .LCFI165: 6300 .cfi_def_cfa_offset 4 6301 .cfi_offset 7, -4 6302 0002 83B0 sub sp, sp, #12 6303 .LCFI166: 6304 .cfi_def_cfa_offset 16 6305 0004 00AF add r7, sp, #0 6306 .LCFI167: 6307 .cfi_def_cfa_register 7 6308 0006 7860 str r0, [r7, #4] 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file. 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6309 .loc 1 2674 1 6310 0008 00BF nop 6311 000a 0C37 adds r7, r7, #12 6312 .LCFI168: 6313 .cfi_def_cfa_offset 4 6314 000c BD46 mov sp, r7 6315 .LCFI169: 6316 .cfi_def_cfa_register 13 6317 @ sp needed 6318 000e 5DF8047B ldr r7, [sp], #4 6319 .LCFI170: 6320 .cfi_restore 7 6321 .cfi_def_cfa_offset 0 6322 0012 7047 bx lr 6323 .cfi_endproc 6324 .LFE266: 6326 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 6327 .align 1 6328 .weak HAL_UART_AbortTransmitCpltCallback 6329 .syntax unified 6330 .thumb ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 180 6331 .thumb_func 6333 HAL_UART_AbortTransmitCpltCallback: 6334 .LFB267: 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6335 .loc 1 2682 1 6336 .cfi_startproc 6337 @ args = 0, pretend = 0, frame = 8 6338 @ frame_needed = 1, uses_anonymous_args = 0 6339 @ link register save eliminated. 6340 0000 80B4 push {r7} 6341 .LCFI171: 6342 .cfi_def_cfa_offset 4 6343 .cfi_offset 7, -4 6344 0002 83B0 sub sp, sp, #12 6345 .LCFI172: 6346 .cfi_def_cfa_offset 16 6347 0004 00AF add r7, sp, #0 6348 .LCFI173: 6349 .cfi_def_cfa_register 7 6350 0006 7860 str r0, [r7, #4] 2683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. 2688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6351 .loc 1 2689 1 6352 0008 00BF nop 6353 000a 0C37 adds r7, r7, #12 6354 .LCFI174: 6355 .cfi_def_cfa_offset 4 6356 000c BD46 mov sp, r7 6357 .LCFI175: 6358 .cfi_def_cfa_register 13 6359 @ sp needed 6360 000e 5DF8047B ldr r7, [sp], #4 6361 .LCFI176: 6362 .cfi_restore 7 6363 .cfi_def_cfa_offset 0 6364 0012 7047 bx lr 6365 .cfi_endproc 6366 .LFE267: 6368 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 6369 .align 1 6370 .weak HAL_UART_AbortReceiveCpltCallback 6371 .syntax unified 6372 .thumb 6373 .thumb_func 6375 HAL_UART_AbortReceiveCpltCallback: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 181 6376 .LFB268: 2690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback. 2693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) 2697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6377 .loc 1 2697 1 6378 .cfi_startproc 6379 @ args = 0, pretend = 0, frame = 8 6380 @ frame_needed = 1, uses_anonymous_args = 0 6381 @ link register save eliminated. 6382 0000 80B4 push {r7} 6383 .LCFI177: 6384 .cfi_def_cfa_offset 4 6385 .cfi_offset 7, -4 6386 0002 83B0 sub sp, sp, #12 6387 .LCFI178: 6388 .cfi_def_cfa_offset 16 6389 0004 00AF add r7, sp, #0 6390 .LCFI179: 6391 .cfi_def_cfa_register 7 6392 0006 7860 str r0, [r7, #4] 2698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. 2703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6393 .loc 1 2704 1 6394 0008 00BF nop 6395 000a 0C37 adds r7, r7, #12 6396 .LCFI180: 6397 .cfi_def_cfa_offset 4 6398 000c BD46 mov sp, r7 6399 .LCFI181: 6400 .cfi_def_cfa_register 13 6401 @ sp needed 6402 000e 5DF8047B ldr r7, [sp], #4 6403 .LCFI182: 6404 .cfi_restore 7 6405 .cfi_def_cfa_offset 0 6406 0012 7047 bx lr 6407 .cfi_endproc 6408 .LFE268: 6410 .section .text.HAL_UARTEx_RxEventCallback,"ax",%progbits 6411 .align 1 6412 .weak HAL_UARTEx_RxEventCallback 6413 .syntax unified 6414 .thumb 6415 .thumb_func 6417 HAL_UARTEx_RxEventCallback: 6418 .LFB269: 2705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 182 2706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Reception Event Callback (Rx event notification called after use of advanced reception 2708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Number of data available in application reception buffer (indicates a position in 2710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * reception buffer until which, data are available) 2711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) 2714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6419 .loc 1 2714 1 6420 .cfi_startproc 6421 @ args = 0, pretend = 0, frame = 8 6422 @ frame_needed = 1, uses_anonymous_args = 0 6423 @ link register save eliminated. 6424 0000 80B4 push {r7} 6425 .LCFI183: 6426 .cfi_def_cfa_offset 4 6427 .cfi_offset 7, -4 6428 0002 83B0 sub sp, sp, #12 6429 .LCFI184: 6430 .cfi_def_cfa_offset 16 6431 0004 00AF add r7, sp, #0 6432 .LCFI185: 6433 .cfi_def_cfa_register 7 6434 0006 7860 str r0, [r7, #4] 6435 0008 0B46 mov r3, r1 6436 000a 7B80 strh r3, [r7, #2] @ movhi 2715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(Size); 2718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UARTEx_RxEventCallback can be implemented in the user file. 2721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6437 .loc 1 2722 1 6438 000c 00BF nop 6439 000e 0C37 adds r7, r7, #12 6440 .LCFI186: 6441 .cfi_def_cfa_offset 4 6442 0010 BD46 mov sp, r7 6443 .LCFI187: 6444 .cfi_def_cfa_register 13 6445 @ sp needed 6446 0012 5DF8047B ldr r7, [sp], #4 6447 .LCFI188: 6448 .cfi_restore 7 6449 .cfi_def_cfa_offset 0 6450 0016 7047 bx lr 6451 .cfi_endproc 6452 .LFE269: 6454 .section .text.HAL_LIN_SendBreak,"ax",%progbits 6455 .align 1 6456 .global HAL_LIN_SendBreak 6457 .syntax unified 6458 .thumb 6459 .thumb_func ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 183 6461 HAL_LIN_SendBreak: 6462 .LFB270: 2723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions 2729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART control functions 2730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral Control functions ##### 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 2736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART: 2737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API can be helpful to transmit the break character. 2738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API can be helpful to enter the UART in mute mode. 2739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_ExitMuteMode() API can be helpful to exit the UART mute mode by software 2740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API to enable the UART transmitter and disables the UART 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API to enable the UART receiver and disables the UART trans 2742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Transmits break characters. 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) 2754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6463 .loc 1 2754 1 6464 .cfi_startproc 6465 @ args = 0, pretend = 0, frame = 32 6466 @ frame_needed = 1, uses_anonymous_args = 0 6467 @ link register save eliminated. 6468 0000 80B4 push {r7} 6469 .LCFI189: 6470 .cfi_def_cfa_offset 4 6471 .cfi_offset 7, -4 6472 0002 89B0 sub sp, sp, #36 6473 .LCFI190: 6474 .cfi_def_cfa_offset 40 6475 0004 00AF add r7, sp, #0 6476 .LCFI191: 6477 .cfi_def_cfa_register 7 6478 0006 7860 str r0, [r7, #4] 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 6479 .loc 1 2759 3 6480 0008 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 184 6481 000a 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 6482 000e 012B cmp r3, #1 6483 0010 01D1 bne .L338 6484 .loc 1 2759 3 is_stmt 0 discriminator 1 6485 0012 0223 movs r3, #2 6486 0014 2AE0 b .L339 6487 .L338: 6488 .loc 1 2759 3 discriminator 2 6489 0016 7B68 ldr r3, [r7, #4] 6490 0018 0122 movs r2, #1 6491 001a 83F83C20 strb r2, [r3, #60] 2760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6492 .loc 1 2761 17 is_stmt 1 discriminator 2 6493 001e 7B68 ldr r3, [r7, #4] 6494 0020 2422 movs r2, #36 6495 0022 83F83D20 strb r2, [r3, #61] 6496 .L342: 6497 .LBB544: 2762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Send break characters */ 2764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_SBK); 6498 .loc 1 2764 3 discriminator 1 6499 0026 7B68 ldr r3, [r7, #4] 6500 0028 1B68 ldr r3, [r3] 6501 002a 0C33 adds r3, r3, #12 6502 002c FB60 str r3, [r7, #12] 6503 .LBB545: 6504 .LBB546: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6505 .loc 2 1072 4 discriminator 1 6506 002e FB68 ldr r3, [r7, #12] 6507 .syntax unified 6508 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6509 0030 53E8003F ldrex r3, [r3] 6510 @ 0 "" 2 6511 .thumb 6512 .syntax unified 6513 0034 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6514 .loc 2 1073 10 discriminator 1 6515 0036 BB68 ldr r3, [r7, #8] 6516 .LBE546: 6517 .LBE545: 6518 .loc 1 2764 3 discriminator 1 6519 0038 43F00103 orr r3, r3, #1 6520 003c FB61 str r3, [r7, #28] 6521 003e 7B68 ldr r3, [r7, #4] 6522 0040 1B68 ldr r3, [r3] 6523 0042 0C33 adds r3, r3, #12 6524 0044 FA69 ldr r2, [r7, #28] 6525 0046 BA61 str r2, [r7, #24] 6526 0048 7B61 str r3, [r7, #20] 6527 .LBB547: 6528 .LBB548: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6529 .loc 2 1123 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 185 6530 004a 7969 ldr r1, [r7, #20] 6531 004c BA69 ldr r2, [r7, #24] 6532 .syntax unified 6533 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6534 004e 41E80023 strex r3, r2, [r1] 6535 @ 0 "" 2 6536 .thumb 6537 .syntax unified 6538 0052 3B61 str r3, [r7, #16] 6539 .loc 2 1124 10 discriminator 1 6540 0054 3B69 ldr r3, [r7, #16] 6541 .LBE548: 6542 .LBE547: 6543 .loc 1 2764 3 discriminator 1 6544 0056 002B cmp r3, #0 6545 0058 E5D1 bne .L342 6546 .LBE544: 2765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 6547 .loc 1 2766 17 6548 005a 7B68 ldr r3, [r7, #4] 6549 005c 2022 movs r2, #32 6550 005e 83F83D20 strb r2, [r3, #61] 2767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 6551 .loc 1 2769 3 6552 0062 7B68 ldr r3, [r7, #4] 6553 0064 0022 movs r2, #0 6554 0066 83F83C20 strb r2, [r3, #60] 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 6555 .loc 1 2771 10 6556 006a 0023 movs r3, #0 6557 .L339: 2772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6558 .loc 1 2772 1 6559 006c 1846 mov r0, r3 6560 006e 2437 adds r7, r7, #36 6561 .LCFI192: 6562 .cfi_def_cfa_offset 4 6563 0070 BD46 mov sp, r7 6564 .LCFI193: 6565 .cfi_def_cfa_register 13 6566 @ sp needed 6567 0072 5DF8047B ldr r7, [sp], #4 6568 .LCFI194: 6569 .cfi_restore 7 6570 .cfi_def_cfa_offset 0 6571 0076 7047 bx lr 6572 .cfi_endproc 6573 .LFE270: 6575 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 6576 .align 1 6577 .global HAL_MultiProcessor_EnterMuteMode 6578 .syntax unified 6579 .thumb ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 186 6580 .thumb_func 6582 HAL_MultiProcessor_EnterMuteMode: 6583 .LFB271: 2773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enters the UART in mute mode. 2776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6584 .loc 1 2781 1 6585 .cfi_startproc 6586 @ args = 0, pretend = 0, frame = 32 6587 @ frame_needed = 1, uses_anonymous_args = 0 6588 @ link register save eliminated. 6589 0000 80B4 push {r7} 6590 .LCFI195: 6591 .cfi_def_cfa_offset 4 6592 .cfi_offset 7, -4 6593 0002 89B0 sub sp, sp, #36 6594 .LCFI196: 6595 .cfi_def_cfa_offset 40 6596 0004 00AF add r7, sp, #0 6597 .LCFI197: 6598 .cfi_def_cfa_register 7 6599 0006 7860 str r0, [r7, #4] 2782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 6600 .loc 1 2786 3 6601 0008 7B68 ldr r3, [r7, #4] 6602 000a 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 6603 000e 012B cmp r3, #1 6604 0010 01D1 bne .L344 6605 .loc 1 2786 3 is_stmt 0 discriminator 1 6606 0012 0223 movs r3, #2 6607 0014 2AE0 b .L345 6608 .L344: 6609 .loc 1 2786 3 discriminator 2 6610 0016 7B68 ldr r3, [r7, #4] 6611 0018 0122 movs r2, #1 6612 001a 83F83C20 strb r2, [r3, #60] 2787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6613 .loc 1 2788 17 is_stmt 1 discriminator 2 6614 001e 7B68 ldr r3, [r7, #4] 6615 0020 2422 movs r2, #36 6616 0022 83F83D20 strb r2, [r3, #61] 6617 .L348: 6618 .LBB549: 2789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART mute mode by setting the RWU bit in the CR1 register */ 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RWU); ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 187 6619 .loc 1 2791 3 discriminator 1 6620 0026 7B68 ldr r3, [r7, #4] 6621 0028 1B68 ldr r3, [r3] 6622 002a 0C33 adds r3, r3, #12 6623 002c FB60 str r3, [r7, #12] 6624 .LBB550: 6625 .LBB551: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6626 .loc 2 1072 4 discriminator 1 6627 002e FB68 ldr r3, [r7, #12] 6628 .syntax unified 6629 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6630 0030 53E8003F ldrex r3, [r3] 6631 @ 0 "" 2 6632 .thumb 6633 .syntax unified 6634 0034 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6635 .loc 2 1073 10 discriminator 1 6636 0036 BB68 ldr r3, [r7, #8] 6637 .LBE551: 6638 .LBE550: 6639 .loc 1 2791 3 discriminator 1 6640 0038 43F00203 orr r3, r3, #2 6641 003c FB61 str r3, [r7, #28] 6642 003e 7B68 ldr r3, [r7, #4] 6643 0040 1B68 ldr r3, [r3] 6644 0042 0C33 adds r3, r3, #12 6645 0044 FA69 ldr r2, [r7, #28] 6646 0046 BA61 str r2, [r7, #24] 6647 0048 7B61 str r3, [r7, #20] 6648 .LBB552: 6649 .LBB553: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6650 .loc 2 1123 4 discriminator 1 6651 004a 7969 ldr r1, [r7, #20] 6652 004c BA69 ldr r2, [r7, #24] 6653 .syntax unified 6654 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6655 004e 41E80023 strex r3, r2, [r1] 6656 @ 0 "" 2 6657 .thumb 6658 .syntax unified 6659 0052 3B61 str r3, [r7, #16] 6660 .loc 2 1124 10 discriminator 1 6661 0054 3B69 ldr r3, [r7, #16] 6662 .LBE553: 6663 .LBE552: 6664 .loc 1 2791 3 discriminator 1 6665 0056 002B cmp r3, #0 6666 0058 E5D1 bne .L348 6667 .LBE549: 2792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 6668 .loc 1 2793 17 6669 005a 7B68 ldr r3, [r7, #4] 6670 005c 2022 movs r2, #32 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 188 6671 005e 83F83D20 strb r2, [r3, #61] 2794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 6672 .loc 1 2796 3 6673 0062 7B68 ldr r3, [r7, #4] 6674 0064 0022 movs r2, #0 6675 0066 83F83C20 strb r2, [r3, #60] 2797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 6676 .loc 1 2798 10 6677 006a 0023 movs r3, #0 6678 .L345: 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6679 .loc 1 2799 1 6680 006c 1846 mov r0, r3 6681 006e 2437 adds r7, r7, #36 6682 .LCFI198: 6683 .cfi_def_cfa_offset 4 6684 0070 BD46 mov sp, r7 6685 .LCFI199: 6686 .cfi_def_cfa_register 13 6687 @ sp needed 6688 0072 5DF8047B ldr r7, [sp], #4 6689 .LCFI200: 6690 .cfi_restore 7 6691 .cfi_def_cfa_offset 0 6692 0076 7047 bx lr 6693 .cfi_endproc 6694 .LFE271: 6696 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits 6697 .align 1 6698 .global HAL_MultiProcessor_ExitMuteMode 6699 .syntax unified 6700 .thumb 6701 .thumb_func 6703 HAL_MultiProcessor_ExitMuteMode: 6704 .LFB272: 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Exits the UART mute mode: wake up software. 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6705 .loc 1 2808 1 6706 .cfi_startproc 6707 @ args = 0, pretend = 0, frame = 32 6708 @ frame_needed = 1, uses_anonymous_args = 0 6709 @ link register save eliminated. 6710 0000 80B4 push {r7} 6711 .LCFI201: 6712 .cfi_def_cfa_offset 4 6713 .cfi_offset 7, -4 6714 0002 89B0 sub sp, sp, #36 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 189 6715 .LCFI202: 6716 .cfi_def_cfa_offset 40 6717 0004 00AF add r7, sp, #0 6718 .LCFI203: 6719 .cfi_def_cfa_register 7 6720 0006 7860 str r0, [r7, #4] 2809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 6721 .loc 1 2813 3 6722 0008 7B68 ldr r3, [r7, #4] 6723 000a 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 6724 000e 012B cmp r3, #1 6725 0010 01D1 bne .L350 6726 .loc 1 2813 3 is_stmt 0 discriminator 1 6727 0012 0223 movs r3, #2 6728 0014 2AE0 b .L351 6729 .L350: 6730 .loc 1 2813 3 discriminator 2 6731 0016 7B68 ldr r3, [r7, #4] 6732 0018 0122 movs r2, #1 6733 001a 83F83C20 strb r2, [r3, #60] 2814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6734 .loc 1 2815 17 is_stmt 1 discriminator 2 6735 001e 7B68 ldr r3, [r7, #4] 6736 0020 2422 movs r2, #36 6737 0022 83F83D20 strb r2, [r3, #61] 6738 .L354: 6739 .LBB554: 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */ 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); 6740 .loc 1 2818 3 discriminator 1 6741 0026 7B68 ldr r3, [r7, #4] 6742 0028 1B68 ldr r3, [r3] 6743 002a 0C33 adds r3, r3, #12 6744 002c FB60 str r3, [r7, #12] 6745 .LBB555: 6746 .LBB556: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6747 .loc 2 1072 4 discriminator 1 6748 002e FB68 ldr r3, [r7, #12] 6749 .syntax unified 6750 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6751 0030 53E8003F ldrex r3, [r3] 6752 @ 0 "" 2 6753 .thumb 6754 .syntax unified 6755 0034 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6756 .loc 2 1073 10 discriminator 1 6757 0036 BB68 ldr r3, [r7, #8] 6758 .LBE556: 6759 .LBE555: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 190 6760 .loc 1 2818 3 discriminator 1 6761 0038 23F00203 bic r3, r3, #2 6762 003c FB61 str r3, [r7, #28] 6763 003e 7B68 ldr r3, [r7, #4] 6764 0040 1B68 ldr r3, [r3] 6765 0042 0C33 adds r3, r3, #12 6766 0044 FA69 ldr r2, [r7, #28] 6767 0046 BA61 str r2, [r7, #24] 6768 0048 7B61 str r3, [r7, #20] 6769 .LBB557: 6770 .LBB558: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6771 .loc 2 1123 4 discriminator 1 6772 004a 7969 ldr r1, [r7, #20] 6773 004c BA69 ldr r2, [r7, #24] 6774 .syntax unified 6775 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6776 004e 41E80023 strex r3, r2, [r1] 6777 @ 0 "" 2 6778 .thumb 6779 .syntax unified 6780 0052 3B61 str r3, [r7, #16] 6781 .loc 2 1124 10 discriminator 1 6782 0054 3B69 ldr r3, [r7, #16] 6783 .LBE558: 6784 .LBE557: 6785 .loc 1 2818 3 discriminator 1 6786 0056 002B cmp r3, #0 6787 0058 E5D1 bne .L354 6788 .LBE554: 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 6789 .loc 1 2820 17 6790 005a 7B68 ldr r3, [r7, #4] 6791 005c 2022 movs r2, #32 6792 005e 83F83D20 strb r2, [r3, #61] 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 6793 .loc 1 2823 3 6794 0062 7B68 ldr r3, [r7, #4] 6795 0064 0022 movs r2, #0 6796 0066 83F83C20 strb r2, [r3, #60] 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 6797 .loc 1 2825 10 6798 006a 0023 movs r3, #0 6799 .L351: 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6800 .loc 1 2826 1 6801 006c 1846 mov r0, r3 6802 006e 2437 adds r7, r7, #36 6803 .LCFI204: 6804 .cfi_def_cfa_offset 4 6805 0070 BD46 mov sp, r7 6806 .LCFI205: 6807 .cfi_def_cfa_register 13 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 191 6808 @ sp needed 6809 0072 5DF8047B ldr r7, [sp], #4 6810 .LCFI206: 6811 .cfi_restore 7 6812 .cfi_def_cfa_offset 0 6813 0076 7047 bx lr 6814 .cfi_endproc 6815 .LFE272: 6817 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 6818 .align 1 6819 .global HAL_HalfDuplex_EnableTransmitter 6820 .syntax unified 6821 .thumb 6822 .thumb_func 6824 HAL_HalfDuplex_EnableTransmitter: 6825 .LFB273: 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART transmitter and disables the UART receiver. 2830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) 2835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6826 .loc 1 2835 1 6827 .cfi_startproc 6828 @ args = 0, pretend = 0, frame = 16 6829 @ frame_needed = 1, uses_anonymous_args = 0 6830 @ link register save eliminated. 6831 0000 80B4 push {r7} 6832 .LCFI207: 6833 .cfi_def_cfa_offset 4 6834 .cfi_offset 7, -4 6835 0002 85B0 sub sp, sp, #20 6836 .LCFI208: 6837 .cfi_def_cfa_offset 24 6838 0004 00AF add r7, sp, #0 6839 .LCFI209: 6840 .cfi_def_cfa_register 7 6841 0006 7860 str r0, [r7, #4] 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 6842 .loc 1 2836 12 6843 0008 0023 movs r3, #0 6844 000a FB60 str r3, [r7, #12] 2837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 6845 .loc 1 2839 3 6846 000c 7B68 ldr r3, [r7, #4] 6847 000e 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 6848 0012 012B cmp r3, #1 6849 0014 01D1 bne .L356 6850 .loc 1 2839 3 is_stmt 0 discriminator 1 6851 0016 0223 movs r3, #2 6852 0018 20E0 b .L357 6853 .L356: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 192 6854 .loc 1 2839 3 discriminator 2 6855 001a 7B68 ldr r3, [r7, #4] 6856 001c 0122 movs r2, #1 6857 001e 83F83C20 strb r2, [r3, #60] 2840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6858 .loc 1 2841 17 is_stmt 1 discriminator 2 6859 0022 7B68 ldr r3, [r7, #4] 6860 0024 2422 movs r2, #36 6861 0026 83F83D20 strb r2, [r3, #61] 2842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 6862 .loc 1 2844 17 discriminator 2 6863 002a 7B68 ldr r3, [r7, #4] 6864 002c 1B68 ldr r3, [r3] 6865 .loc 1 2844 10 discriminator 2 6866 002e DB68 ldr r3, [r3, #12] 6867 0030 FB60 str r3, [r7, #12] 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 6868 .loc 1 2847 10 discriminator 2 6869 0032 FB68 ldr r3, [r7, #12] 6870 0034 23F00C03 bic r3, r3, #12 6871 0038 FB60 str r3, [r7, #12] 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART's transmit interface by setting the TE bit in the USART CR1 register */ 2850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_TE; 6872 .loc 1 2850 10 discriminator 2 6873 003a FB68 ldr r3, [r7, #12] 6874 003c 43F00803 orr r3, r3, #8 6875 0040 FB60 str r3, [r7, #12] 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ 2853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 6876 .loc 1 2853 3 discriminator 2 6877 0042 7B68 ldr r3, [r7, #4] 6878 0044 1B68 ldr r3, [r3] 6879 0046 FA68 ldr r2, [r7, #12] 6880 0048 DA60 str r2, [r3, #12] 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 6881 .loc 1 2855 17 discriminator 2 6882 004a 7B68 ldr r3, [r7, #4] 6883 004c 2022 movs r2, #32 6884 004e 83F83D20 strb r2, [r3, #61] 2856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 6885 .loc 1 2858 3 discriminator 2 6886 0052 7B68 ldr r3, [r7, #4] 6887 0054 0022 movs r2, #0 6888 0056 83F83C20 strb r2, [r3, #60] 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 6889 .loc 1 2860 10 discriminator 2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 193 6890 005a 0023 movs r3, #0 6891 .L357: 2861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6892 .loc 1 2861 1 6893 005c 1846 mov r0, r3 6894 005e 1437 adds r7, r7, #20 6895 .LCFI210: 6896 .cfi_def_cfa_offset 4 6897 0060 BD46 mov sp, r7 6898 .LCFI211: 6899 .cfi_def_cfa_register 13 6900 @ sp needed 6901 0062 5DF8047B ldr r7, [sp], #4 6902 .LCFI212: 6903 .cfi_restore 7 6904 .cfi_def_cfa_offset 0 6905 0066 7047 bx lr 6906 .cfi_endproc 6907 .LFE273: 6909 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 6910 .align 1 6911 .global HAL_HalfDuplex_EnableReceiver 6912 .syntax unified 6913 .thumb 6914 .thumb_func 6916 HAL_HalfDuplex_EnableReceiver: 6917 .LFB274: 2862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART receiver and disables the UART transmitter. 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6918 .loc 1 2870 1 6919 .cfi_startproc 6920 @ args = 0, pretend = 0, frame = 16 6921 @ frame_needed = 1, uses_anonymous_args = 0 6922 @ link register save eliminated. 6923 0000 80B4 push {r7} 6924 .LCFI213: 6925 .cfi_def_cfa_offset 4 6926 .cfi_offset 7, -4 6927 0002 85B0 sub sp, sp, #20 6928 .LCFI214: 6929 .cfi_def_cfa_offset 24 6930 0004 00AF add r7, sp, #0 6931 .LCFI215: 6932 .cfi_def_cfa_register 7 6933 0006 7860 str r0, [r7, #4] 2871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 6934 .loc 1 2871 12 6935 0008 0023 movs r3, #0 6936 000a FB60 str r3, [r7, #12] 2872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 194 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 6937 .loc 1 2874 3 6938 000c 7B68 ldr r3, [r7, #4] 6939 000e 93F83C30 ldrb r3, [r3, #60] @ zero_extendqisi2 6940 0012 012B cmp r3, #1 6941 0014 01D1 bne .L359 6942 .loc 1 2874 3 is_stmt 0 discriminator 1 6943 0016 0223 movs r3, #2 6944 0018 20E0 b .L360 6945 .L359: 6946 .loc 1 2874 3 discriminator 2 6947 001a 7B68 ldr r3, [r7, #4] 6948 001c 0122 movs r2, #1 6949 001e 83F83C20 strb r2, [r3, #60] 2875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 6950 .loc 1 2876 17 is_stmt 1 discriminator 2 6951 0022 7B68 ldr r3, [r7, #4] 6952 0024 2422 movs r2, #36 6953 0026 83F83D20 strb r2, [r3, #61] 2877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 6954 .loc 1 2879 17 discriminator 2 6955 002a 7B68 ldr r3, [r7, #4] 6956 002c 1B68 ldr r3, [r3] 6957 .loc 1 2879 10 discriminator 2 6958 002e DB68 ldr r3, [r3, #12] 6959 0030 FB60 str r3, [r7, #12] 2880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 6960 .loc 1 2882 10 discriminator 2 6961 0032 FB68 ldr r3, [r7, #12] 6962 0034 23F00C03 bic r3, r3, #12 6963 0038 FB60 str r3, [r7, #12] 2883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART's receive interface by setting the RE bit in the USART CR1 register */ 2885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_RE; 6964 .loc 1 2885 10 discriminator 2 6965 003a FB68 ldr r3, [r7, #12] 6966 003c 43F00403 orr r3, r3, #4 6967 0040 FB60 str r3, [r7, #12] 2886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ 2888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 6968 .loc 1 2888 3 discriminator 2 6969 0042 7B68 ldr r3, [r7, #4] 6970 0044 1B68 ldr r3, [r3] 6971 0046 FA68 ldr r2, [r7, #12] 6972 0048 DA60 str r2, [r3, #12] 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 6973 .loc 1 2890 17 discriminator 2 6974 004a 7B68 ldr r3, [r7, #4] 6975 004c 2022 movs r2, #32 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 195 6976 004e 83F83D20 strb r2, [r3, #61] 2891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 6977 .loc 1 2893 3 discriminator 2 6978 0052 7B68 ldr r3, [r7, #4] 6979 0054 0022 movs r2, #0 6980 0056 83F83C20 strb r2, [r3, #60] 2894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 6981 .loc 1 2895 10 discriminator 2 6982 005a 0023 movs r3, #0 6983 .L360: 2896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6984 .loc 1 2896 1 6985 005c 1846 mov r0, r3 6986 005e 1437 adds r7, r7, #20 6987 .LCFI216: 6988 .cfi_def_cfa_offset 4 6989 0060 BD46 mov sp, r7 6990 .LCFI217: 6991 .cfi_def_cfa_register 13 6992 @ sp needed 6993 0062 5DF8047B ldr r7, [sp], #4 6994 .LCFI218: 6995 .cfi_restore 7 6996 .cfi_def_cfa_offset 0 6997 0066 7047 bx lr 6998 .cfi_endproc 6999 .LFE274: 7001 .section .text.HAL_UART_GetState,"ax",%progbits 7002 .align 1 7003 .global HAL_UART_GetState 7004 .syntax unified 7005 .thumb 7006 .thumb_func 7008 HAL_UART_GetState: 7009 .LFB275: 2897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Errors functions 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART State and Errors functions 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral State and Errors functions ##### 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to return the State of 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART communication process, return Peripheral Errors occurred during communication 2912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** process 2913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetState() API can be helpful to check in run-time the state of the UART peripheral 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetError() check in run-time errors that could be occurred during communication. 2915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 196 2916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Returns the UART state. 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL state 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart) 2927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7010 .loc 1 2927 1 7011 .cfi_startproc 7012 @ args = 0, pretend = 0, frame = 16 7013 @ frame_needed = 1, uses_anonymous_args = 0 7014 @ link register save eliminated. 7015 0000 80B4 push {r7} 7016 .LCFI219: 7017 .cfi_def_cfa_offset 4 7018 .cfi_offset 7, -4 7019 0002 85B0 sub sp, sp, #20 7020 .LCFI220: 7021 .cfi_def_cfa_offset 24 7022 0004 00AF add r7, sp, #0 7023 .LCFI221: 7024 .cfi_def_cfa_register 7 7025 0006 7860 str r0, [r7, #4] 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 7026 .loc 1 2928 12 7027 0008 0023 movs r3, #0 7028 000a FB60 str r3, [r7, #12] 7029 .loc 1 2928 27 7030 000c 0023 movs r3, #0 7031 000e BB60 str r3, [r7, #8] 2929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 7032 .loc 1 2929 16 7033 0010 7B68 ldr r3, [r7, #4] 7034 0012 93F83D30 ldrb r3, [r3, #61] 7035 0016 DBB2 uxtb r3, r3 7036 .loc 1 2929 9 7037 0018 FB60 str r3, [r7, #12] 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 7038 .loc 1 2930 16 7039 001a 7B68 ldr r3, [r7, #4] 7040 001c 93F83E30 ldrb r3, [r3, #62] 7041 0020 DBB2 uxtb r3, r3 7042 .loc 1 2930 9 7043 0022 BB60 str r3, [r7, #8] 2931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2); 7044 .loc 1 2932 10 7045 0024 FB68 ldr r3, [r7, #12] 7046 0026 DAB2 uxtb r2, r3 7047 0028 BB68 ldr r3, [r7, #8] 7048 002a DBB2 uxtb r3, r3 7049 002c 1343 orrs r3, r3, r2 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 197 7050 002e DBB2 uxtb r3, r3 2933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7051 .loc 1 2933 1 7052 0030 1846 mov r0, r3 7053 0032 1437 adds r7, r7, #20 7054 .LCFI222: 7055 .cfi_def_cfa_offset 4 7056 0034 BD46 mov sp, r7 7057 .LCFI223: 7058 .cfi_def_cfa_register 13 7059 @ sp needed 7060 0036 5DF8047B ldr r7, [sp], #4 7061 .LCFI224: 7062 .cfi_restore 7 7063 .cfi_def_cfa_offset 0 7064 003a 7047 bx lr 7065 .cfi_endproc 7066 .LFE275: 7068 .section .text.HAL_UART_GetError,"ax",%progbits 7069 .align 1 7070 .global HAL_UART_GetError 7071 .syntax unified 7072 .thumb 7073 .thumb_func 7075 HAL_UART_GetError: 7076 .LFB276: 2934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Return the UART error code 2937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART. 2939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval UART Error Code 2940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart) 2942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7077 .loc 1 2942 1 7078 .cfi_startproc 7079 @ args = 0, pretend = 0, frame = 8 7080 @ frame_needed = 1, uses_anonymous_args = 0 7081 @ link register save eliminated. 7082 0000 80B4 push {r7} 7083 .LCFI225: 7084 .cfi_def_cfa_offset 4 7085 .cfi_offset 7, -4 7086 0002 83B0 sub sp, sp, #12 7087 .LCFI226: 7088 .cfi_def_cfa_offset 16 7089 0004 00AF add r7, sp, #0 7090 .LCFI227: 7091 .cfi_def_cfa_register 7 7092 0006 7860 str r0, [r7, #4] 2943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 7093 .loc 1 2943 15 7094 0008 7B68 ldr r3, [r7, #4] 7095 000a 1B6C ldr r3, [r3, #64] 2944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7096 .loc 1 2944 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 198 7097 000c 1846 mov r0, r3 7098 000e 0C37 adds r7, r7, #12 7099 .LCFI228: 7100 .cfi_def_cfa_offset 4 7101 0010 BD46 mov sp, r7 7102 .LCFI229: 7103 .cfi_def_cfa_register 13 7104 @ sp needed 7105 0012 5DF8047B ldr r7, [sp], #4 7106 .LCFI230: 7107 .cfi_restore 7 7108 .cfi_def_cfa_offset 0 7109 0016 7047 bx lr 7110 .cfi_endproc 7111 .LFE276: 7113 .section .text.UART_DMATransmitCplt,"ax",%progbits 7114 .align 1 7115 .syntax unified 7116 .thumb 7117 .thumb_func 7119 UART_DMATransmitCplt: 7120 .LFB277: 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions 2955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values. 2960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval none 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) 2965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the UART Callback settings */ 2967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC 2968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb 2969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv 2975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCall 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 199 2980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback. 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7121 .loc 1 2987 1 7122 .cfi_startproc 7123 @ args = 0, pretend = 0, frame = 64 7124 @ frame_needed = 1, uses_anonymous_args = 0 7125 0000 80B5 push {r7, lr} 7126 .LCFI231: 7127 .cfi_def_cfa_offset 8 7128 .cfi_offset 7, -8 7129 .cfi_offset 14, -4 7130 0002 90B0 sub sp, sp, #64 7131 .LCFI232: 7132 .cfi_def_cfa_offset 72 7133 0004 00AF add r7, sp, #0 7134 .LCFI233: 7135 .cfi_def_cfa_register 7 7136 0006 7860 str r0, [r7, #4] 2988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7137 .loc 1 2988 23 7138 0008 7B68 ldr r3, [r7, #4] 7139 000a 9B6B ldr r3, [r3, #56] 7140 000c FB63 str r3, [r7, #60] 2989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 2990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 7141 .loc 1 2990 12 7142 000e 7B68 ldr r3, [r7, #4] 7143 0010 1B68 ldr r3, [r3] 7144 .loc 1 2990 22 7145 0012 1B68 ldr r3, [r3] 7146 .loc 1 2990 27 7147 0014 03F48073 and r3, r3, #256 7148 .loc 1 2990 6 7149 0018 002B cmp r3, #0 7150 001a 37D1 bne .L366 2991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 7151 .loc 1 2992 24 7152 001c FB6B ldr r3, [r7, #60] 7153 001e 0022 movs r2, #0 7154 0020 DA84 strh r2, [r3, #38] @ movhi 7155 .L369: 7156 .LBB559: 2993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by setting the DMAT bit 2995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 2996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 7157 .loc 1 2996 5 discriminator 1 7158 0022 FB6B ldr r3, [r7, #60] 7159 0024 1B68 ldr r3, [r3] 7160 0026 1433 adds r3, r3, #20 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 200 7161 0028 7B62 str r3, [r7, #36] 7162 .LBB560: 7163 .LBB561: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7164 .loc 2 1072 4 discriminator 1 7165 002a 7B6A ldr r3, [r7, #36] 7166 .syntax unified 7167 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7168 002c 53E8003F ldrex r3, [r3] 7169 @ 0 "" 2 7170 .thumb 7171 .syntax unified 7172 0030 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7173 .loc 2 1073 10 discriminator 1 7174 0032 3B6A ldr r3, [r7, #32] 7175 .LBE561: 7176 .LBE560: 7177 .loc 1 2996 5 discriminator 1 7178 0034 23F08003 bic r3, r3, #128 7179 0038 BB63 str r3, [r7, #56] 7180 003a FB6B ldr r3, [r7, #60] 7181 003c 1B68 ldr r3, [r3] 7182 003e 1433 adds r3, r3, #20 7183 0040 BA6B ldr r2, [r7, #56] 7184 0042 3A63 str r2, [r7, #48] 7185 0044 FB62 str r3, [r7, #44] 7186 .LBB562: 7187 .LBB563: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7188 .loc 2 1123 4 discriminator 1 7189 0046 F96A ldr r1, [r7, #44] 7190 0048 3A6B ldr r2, [r7, #48] 7191 .syntax unified 7192 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7193 004a 41E80023 strex r3, r2, [r1] 7194 @ 0 "" 2 7195 .thumb 7196 .syntax unified 7197 004e BB62 str r3, [r7, #40] 7198 .loc 2 1124 10 discriminator 1 7199 0050 BB6A ldr r3, [r7, #40] 7200 .LBE563: 7201 .LBE562: 7202 .loc 1 2996 5 discriminator 1 7203 0052 002B cmp r3, #0 7204 0054 E5D1 bne .L369 7205 .L372: 7206 .LBE559: 7207 .LBB564: 2997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 2999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 7208 .loc 1 2999 5 discriminator 1 7209 0056 FB6B ldr r3, [r7, #60] 7210 0058 1B68 ldr r3, [r3] 7211 005a 0C33 adds r3, r3, #12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 201 7212 005c 3B61 str r3, [r7, #16] 7213 .LBB565: 7214 .LBB566: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7215 .loc 2 1072 4 discriminator 1 7216 005e 3B69 ldr r3, [r7, #16] 7217 .syntax unified 7218 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7219 0060 53E8003F ldrex r3, [r3] 7220 @ 0 "" 2 7221 .thumb 7222 .syntax unified 7223 0064 FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7224 .loc 2 1073 10 discriminator 1 7225 0066 FB68 ldr r3, [r7, #12] 7226 .LBE566: 7227 .LBE565: 7228 .loc 1 2999 5 discriminator 1 7229 0068 43F04003 orr r3, r3, #64 7230 006c 7B63 str r3, [r7, #52] 7231 006e FB6B ldr r3, [r7, #60] 7232 0070 1B68 ldr r3, [r3] 7233 0072 0C33 adds r3, r3, #12 7234 0074 7A6B ldr r2, [r7, #52] 7235 0076 FA61 str r2, [r7, #28] 7236 0078 BB61 str r3, [r7, #24] 7237 .LBB567: 7238 .LBB568: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7239 .loc 2 1123 4 discriminator 1 7240 007a B969 ldr r1, [r7, #24] 7241 007c FA69 ldr r2, [r7, #28] 7242 .syntax unified 7243 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7244 007e 41E80023 strex r3, r2, [r1] 7245 @ 0 "" 2 7246 .thumb 7247 .syntax unified 7248 0082 7B61 str r3, [r7, #20] 7249 .loc 2 1124 10 discriminator 1 7250 0084 7B69 ldr r3, [r7, #20] 7251 .LBE568: 7252 .LBE567: 7253 .loc 1 2999 5 discriminator 1 7254 0086 002B cmp r3, #0 7255 0088 E5D1 bne .L372 7256 .LBE564: 3000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Circular mode */ 3003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 202 3009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7257 .loc 1 3013 1 7258 008a 02E0 b .L374 7259 .L366: 3010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7260 .loc 1 3010 5 7261 008c F86B ldr r0, [r7, #60] 7262 008e FFF7FEFF bl HAL_UART_TxCpltCallback 7263 .L374: 7264 .loc 1 3013 1 7265 0092 00BF nop 7266 0094 4037 adds r7, r7, #64 7267 .LCFI234: 7268 .cfi_def_cfa_offset 8 7269 0096 BD46 mov sp, r7 7270 .LCFI235: 7271 .cfi_def_cfa_register 13 7272 @ sp needed 7273 0098 80BD pop {r7, pc} 7274 .cfi_endproc 7275 .LFE277: 7277 .section .text.UART_DMATxHalfCplt,"ax",%progbits 7278 .align 1 7279 .syntax unified 7280 .thumb 7281 .thumb_func 7283 UART_DMATxHalfCplt: 7284 .LFB278: 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) 3022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7285 .loc 1 3022 1 7286 .cfi_startproc 7287 @ args = 0, pretend = 0, frame = 16 7288 @ frame_needed = 1, uses_anonymous_args = 0 7289 0000 80B5 push {r7, lr} 7290 .LCFI236: 7291 .cfi_def_cfa_offset 8 7292 .cfi_offset 7, -8 7293 .cfi_offset 14, -4 7294 0002 84B0 sub sp, sp, #16 7295 .LCFI237: 7296 .cfi_def_cfa_offset 24 7297 0004 00AF add r7, sp, #0 7298 .LCFI238: 7299 .cfi_def_cfa_register 7 7300 0006 7860 str r0, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 203 3023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7301 .loc 1 3023 23 7302 0008 7B68 ldr r3, [r7, #4] 7303 000a 9B6B ldr r3, [r3, #56] 7304 000c FB60 str r3, [r7, #12] 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart); 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart); 7305 .loc 1 3030 3 7306 000e F868 ldr r0, [r7, #12] 7307 0010 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 3031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7308 .loc 1 3032 1 7309 0014 00BF nop 7310 0016 1037 adds r7, r7, #16 7311 .LCFI239: 7312 .cfi_def_cfa_offset 8 7313 0018 BD46 mov sp, r7 7314 .LCFI240: 7315 .cfi_def_cfa_register 13 7316 @ sp needed 7317 001a 80BD pop {r7, pc} 7318 .cfi_endproc 7319 .LFE278: 7321 .section .text.UART_DMAReceiveCplt,"ax",%progbits 7322 .align 1 7323 .syntax unified 7324 .thumb 7325 .thumb_func 7327 UART_DMAReceiveCplt: 7328 .LFB279: 3033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process complete callback. 3036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7329 .loc 1 3041 1 7330 .cfi_startproc 7331 @ args = 0, pretend = 0, frame = 112 7332 @ frame_needed = 1, uses_anonymous_args = 0 7333 0000 80B5 push {r7, lr} 7334 .LCFI241: 7335 .cfi_def_cfa_offset 8 7336 .cfi_offset 7, -8 7337 .cfi_offset 14, -4 7338 0002 9CB0 sub sp, sp, #112 7339 .LCFI242: 7340 .cfi_def_cfa_offset 120 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 204 7341 0004 00AF add r7, sp, #0 7342 .LCFI243: 7343 .cfi_def_cfa_register 7 7344 0006 7860 str r0, [r7, #4] 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7345 .loc 1 3042 23 7346 0008 7B68 ldr r3, [r7, #4] 7347 000a 9B6B ldr r3, [r3, #56] 7348 000c FB66 str r3, [r7, #108] 3043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 7349 .loc 1 3044 12 7350 000e 7B68 ldr r3, [r7, #4] 7351 0010 1B68 ldr r3, [r3] 7352 .loc 1 3044 22 7353 0012 1B68 ldr r3, [r3] 7354 .loc 1 3044 27 7355 0014 03F48073 and r3, r3, #256 7356 .loc 1 3044 6 7357 0018 002B cmp r3, #0 7358 001a 72D1 bne .L377 3045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0U; 7359 .loc 1 3046 24 7360 001c FB6E ldr r3, [r7, #108] 7361 001e 0022 movs r2, #0 7362 0020 DA85 strh r2, [r3, #46] @ movhi 7363 .L380: 7364 .LBB569: 3047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 7365 .loc 1 3049 5 discriminator 1 7366 0022 FB6E ldr r3, [r7, #108] 7367 0024 1B68 ldr r3, [r3] 7368 0026 0C33 adds r3, r3, #12 7369 0028 FB64 str r3, [r7, #76] 7370 .LBB570: 7371 .LBB571: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7372 .loc 2 1072 4 discriminator 1 7373 002a FB6C ldr r3, [r7, #76] 7374 .syntax unified 7375 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7376 002c 53E8003F ldrex r3, [r3] 7377 @ 0 "" 2 7378 .thumb 7379 .syntax unified 7380 0030 BB64 str r3, [r7, #72] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7381 .loc 2 1073 10 discriminator 1 7382 0032 BB6C ldr r3, [r7, #72] 7383 .LBE571: 7384 .LBE570: 7385 .loc 1 3049 5 discriminator 1 7386 0034 23F48073 bic r3, r3, #256 7387 0038 BB66 str r3, [r7, #104] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 205 7388 003a FB6E ldr r3, [r7, #108] 7389 003c 1B68 ldr r3, [r3] 7390 003e 0C33 adds r3, r3, #12 7391 0040 BA6E ldr r2, [r7, #104] 7392 0042 BA65 str r2, [r7, #88] 7393 0044 7B65 str r3, [r7, #84] 7394 .LBB572: 7395 .LBB573: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7396 .loc 2 1123 4 discriminator 1 7397 0046 796D ldr r1, [r7, #84] 7398 0048 BA6D ldr r2, [r7, #88] 7399 .syntax unified 7400 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7401 004a 41E80023 strex r3, r2, [r1] 7402 @ 0 "" 2 7403 .thumb 7404 .syntax unified 7405 004e 3B65 str r3, [r7, #80] 7406 .loc 2 1124 10 discriminator 1 7407 0050 3B6D ldr r3, [r7, #80] 7408 .LBE573: 7409 .LBE572: 7410 .loc 1 3049 5 discriminator 1 7411 0052 002B cmp r3, #0 7412 0054 E5D1 bne .L380 7413 .L383: 7414 .LBE569: 7415 .LBB574: 3050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7416 .loc 1 3050 5 discriminator 1 7417 0056 FB6E ldr r3, [r7, #108] 7418 0058 1B68 ldr r3, [r3] 7419 005a 1433 adds r3, r3, #20 7420 005c BB63 str r3, [r7, #56] 7421 .LBB575: 7422 .LBB576: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7423 .loc 2 1072 4 discriminator 1 7424 005e BB6B ldr r3, [r7, #56] 7425 .syntax unified 7426 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7427 0060 53E8003F ldrex r3, [r3] 7428 @ 0 "" 2 7429 .thumb 7430 .syntax unified 7431 0064 7B63 str r3, [r7, #52] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7432 .loc 2 1073 10 discriminator 1 7433 0066 7B6B ldr r3, [r7, #52] 7434 .LBE576: 7435 .LBE575: 7436 .loc 1 3050 5 discriminator 1 7437 0068 23F00103 bic r3, r3, #1 7438 006c 7B66 str r3, [r7, #100] 7439 006e FB6E ldr r3, [r7, #108] 7440 0070 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 206 7441 0072 1433 adds r3, r3, #20 7442 0074 7A6E ldr r2, [r7, #100] 7443 0076 7A64 str r2, [r7, #68] 7444 0078 3B64 str r3, [r7, #64] 7445 .LBB577: 7446 .LBB578: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7447 .loc 2 1123 4 discriminator 1 7448 007a 396C ldr r1, [r7, #64] 7449 007c 7A6C ldr r2, [r7, #68] 7450 .syntax unified 7451 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7452 007e 41E80023 strex r3, r2, [r1] 7453 @ 0 "" 2 7454 .thumb 7455 .syntax unified 7456 0082 FB63 str r3, [r7, #60] 7457 .loc 2 1124 10 discriminator 1 7458 0084 FB6B ldr r3, [r7, #60] 7459 .LBE578: 7460 .LBE577: 7461 .loc 1 3050 5 discriminator 1 7462 0086 002B cmp r3, #0 7463 0088 E5D1 bne .L383 7464 .L386: 7465 .LBE574: 7466 .LBB579: 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by setting the DMAR bit 3053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 3054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 7467 .loc 1 3054 5 discriminator 1 7468 008a FB6E ldr r3, [r7, #108] 7469 008c 1B68 ldr r3, [r3] 7470 008e 1433 adds r3, r3, #20 7471 0090 7B62 str r3, [r7, #36] 7472 .LBB580: 7473 .LBB581: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7474 .loc 2 1072 4 discriminator 1 7475 0092 7B6A ldr r3, [r7, #36] 7476 .syntax unified 7477 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7478 0094 53E8003F ldrex r3, [r3] 7479 @ 0 "" 2 7480 .thumb 7481 .syntax unified 7482 0098 3B62 str r3, [r7, #32] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7483 .loc 2 1073 10 discriminator 1 7484 009a 3B6A ldr r3, [r7, #32] 7485 .LBE581: 7486 .LBE580: 7487 .loc 1 3054 5 discriminator 1 7488 009c 23F04003 bic r3, r3, #64 7489 00a0 3B66 str r3, [r7, #96] 7490 00a2 FB6E ldr r3, [r7, #108] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 207 7491 00a4 1B68 ldr r3, [r3] 7492 00a6 1433 adds r3, r3, #20 7493 00a8 3A6E ldr r2, [r7, #96] 7494 00aa 3A63 str r2, [r7, #48] 7495 00ac FB62 str r3, [r7, #44] 7496 .LBB582: 7497 .LBB583: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7498 .loc 2 1123 4 discriminator 1 7499 00ae F96A ldr r1, [r7, #44] 7500 00b0 3A6B ldr r2, [r7, #48] 7501 .syntax unified 7502 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7503 00b2 41E80023 strex r3, r2, [r1] 7504 @ 0 "" 2 7505 .thumb 7506 .syntax unified 7507 00b6 BB62 str r3, [r7, #40] 7508 .loc 2 1124 10 discriminator 1 7509 00b8 BB6A ldr r3, [r7, #40] 7510 .LBE583: 7511 .LBE582: 7512 .loc 1 3054 5 discriminator 1 7513 00ba 002B cmp r3, #0 7514 00bc E5D1 bne .L386 7515 .LBE579: 3055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7516 .loc 1 3057 20 7517 00be FB6E ldr r3, [r7, #108] 7518 00c0 2022 movs r2, #32 7519 00c2 83F83E20 strb r2, [r3, #62] 3058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event has been selected, Disable IDLE Interrupt */ 3060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 7520 .loc 1 3060 14 7521 00c6 FB6E ldr r3, [r7, #108] 7522 00c8 1B6B ldr r3, [r3, #48] 7523 .loc 1 3060 8 7524 00ca 012B cmp r3, #1 7525 00cc 19D1 bne .L377 7526 .L389: 7527 .LBB584: 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 7528 .loc 1 3062 7 discriminator 1 7529 00ce FB6E ldr r3, [r7, #108] 7530 00d0 1B68 ldr r3, [r3] 7531 00d2 0C33 adds r3, r3, #12 7532 00d4 3B61 str r3, [r7, #16] 7533 .LBB585: 7534 .LBB586: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7535 .loc 2 1072 4 discriminator 1 7536 00d6 3B69 ldr r3, [r7, #16] 7537 .syntax unified ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 208 7538 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7539 00d8 53E8003F ldrex r3, [r3] 7540 @ 0 "" 2 7541 .thumb 7542 .syntax unified 7543 00dc FB60 str r3, [r7, #12] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7544 .loc 2 1073 10 discriminator 1 7545 00de FB68 ldr r3, [r7, #12] 7546 .LBE586: 7547 .LBE585: 7548 .loc 1 3062 7 discriminator 1 7549 00e0 23F01003 bic r3, r3, #16 7550 00e4 FB65 str r3, [r7, #92] 7551 00e6 FB6E ldr r3, [r7, #108] 7552 00e8 1B68 ldr r3, [r3] 7553 00ea 0C33 adds r3, r3, #12 7554 00ec FA6D ldr r2, [r7, #92] 7555 00ee FA61 str r2, [r7, #28] 7556 00f0 BB61 str r3, [r7, #24] 7557 .LBB587: 7558 .LBB588: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7559 .loc 2 1123 4 discriminator 1 7560 00f2 B969 ldr r1, [r7, #24] 7561 00f4 FA69 ldr r2, [r7, #28] 7562 .syntax unified 7563 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7564 00f6 41E80023 strex r3, r2, [r1] 7565 @ 0 "" 2 7566 .thumb 7567 .syntax unified 7568 00fa 7B61 str r3, [r7, #20] 7569 .loc 2 1124 10 discriminator 1 7570 00fc 7B69 ldr r3, [r7, #20] 7571 .LBE588: 7572 .LBE587: 7573 .loc 1 3062 7 discriminator 1 7574 00fe 002B cmp r3, #0 7575 0100 E5D1 bne .L389 7576 .L377: 7577 .LBE584: 3063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 7578 .loc 1 3068 12 7579 0102 FB6E ldr r3, [r7, #108] 7580 0104 1B6B ldr r3, [r3, #48] 7581 .loc 1 3068 6 7582 0106 012B cmp r3, #1 7583 0108 06D1 bne .L390 3069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 209 3072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 3073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 7584 .loc 1 3075 5 7585 010a FB6E ldr r3, [r7, #108] 7586 010c 9B8D ldrh r3, [r3, #44] 7587 010e 1946 mov r1, r3 7588 0110 F86E ldr r0, [r7, #108] 7589 0112 FFF7FEFF bl HAL_UARTEx_RxEventCallback 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In other cases : use Rx Complete callback */ 3081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7590 .loc 1 3089 1 7591 0116 02E0 b .L392 7592 .L390: 3086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7593 .loc 1 3086 5 7594 0118 F86E ldr r0, [r7, #108] 7595 011a FFF7FEFF bl HAL_UART_RxCpltCallback 7596 .L392: 7597 .loc 1 3089 1 7598 011e 00BF nop 7599 0120 7037 adds r7, r7, #112 7600 .LCFI244: 7601 .cfi_def_cfa_offset 8 7602 0122 BD46 mov sp, r7 7603 .LCFI245: 7604 .cfi_def_cfa_register 13 7605 @ sp needed 7606 0124 80BD pop {r7, pc} 7607 .cfi_endproc 7608 .LFE279: 7610 .section .text.UART_DMARxHalfCplt,"ax",%progbits 7611 .align 1 7612 .syntax unified 7613 .thumb 7614 .thumb_func 7616 UART_DMARxHalfCplt: 7617 .LFB280: 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process half complete callback 3093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 210 3096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7618 .loc 1 3098 1 7619 .cfi_startproc 7620 @ args = 0, pretend = 0, frame = 16 7621 @ frame_needed = 1, uses_anonymous_args = 0 7622 0000 80B5 push {r7, lr} 7623 .LCFI246: 7624 .cfi_def_cfa_offset 8 7625 .cfi_offset 7, -8 7626 .cfi_offset 14, -4 7627 0002 84B0 sub sp, sp, #16 7628 .LCFI247: 7629 .cfi_def_cfa_offset 24 7630 0004 00AF add r7, sp, #0 7631 .LCFI248: 7632 .cfi_def_cfa_register 7 7633 0006 7860 str r0, [r7, #4] 3099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7634 .loc 1 3099 23 7635 0008 7B68 ldr r3, [r7, #4] 7636 000a 9B6B ldr r3, [r3, #56] 7637 000c FB60 str r3, [r7, #12] 3100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 7638 .loc 1 3103 12 7639 000e FB68 ldr r3, [r7, #12] 7640 0010 1B6B ldr r3, [r3, #48] 7641 .loc 1 3103 6 7642 0012 012B cmp r3, #1 7643 0014 08D1 bne .L394 3104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize / 2U); 3108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); 7644 .loc 1 3110 44 7645 0016 FB68 ldr r3, [r7, #12] 7646 0018 9B8D ldrh r3, [r3, #44] 7647 .loc 1 3110 5 7648 001a 5B08 lsrs r3, r3, #1 7649 001c 9BB2 uxth r3, r3 7650 001e 1946 mov r1, r3 7651 0020 F868 ldr r0, [r7, #12] 7652 0022 FFF7FEFF bl HAL_UARTEx_RxEventCallback 3111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In other cases : use Rx Half Complete callback */ 3116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/ ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 211 3118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart); 3119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/ 3121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart); 3122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7653 .loc 1 3124 1 7654 0026 02E0 b .L396 7655 .L394: 3121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7656 .loc 1 3121 5 7657 0028 F868 ldr r0, [r7, #12] 7658 002a FFF7FEFF bl HAL_UART_RxHalfCpltCallback 7659 .L396: 7660 .loc 1 3124 1 7661 002e 00BF nop 7662 0030 1037 adds r7, r7, #16 7663 .LCFI249: 7664 .cfi_def_cfa_offset 8 7665 0032 BD46 mov sp, r7 7666 .LCFI250: 7667 .cfi_def_cfa_register 13 7668 @ sp needed 7669 0034 80BD pop {r7, pc} 7670 .cfi_endproc 7671 .LFE280: 7673 .section .text.UART_DMAError,"ax",%progbits 7674 .align 1 7675 .syntax unified 7676 .thumb 7677 .thumb_func 7679 UART_DMAError: 7680 .LFB281: 3125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication error callback. 3128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma) 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7681 .loc 1 3133 1 7682 .cfi_startproc 7683 @ args = 0, pretend = 0, frame = 16 7684 @ frame_needed = 1, uses_anonymous_args = 0 7685 0000 80B5 push {r7, lr} 7686 .LCFI251: 7687 .cfi_def_cfa_offset 8 7688 .cfi_offset 7, -8 7689 .cfi_offset 14, -4 7690 0002 84B0 sub sp, sp, #16 7691 .LCFI252: 7692 .cfi_def_cfa_offset 24 7693 0004 00AF add r7, sp, #0 7694 .LCFI253: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 212 7695 .cfi_def_cfa_register 7 7696 0006 7860 str r0, [r7, #4] 3134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 7697 .loc 1 3134 12 7698 0008 0023 movs r3, #0 7699 000a FB60 str r3, [r7, #12] 3135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7700 .loc 1 3135 23 7701 000c 7B68 ldr r3, [r7, #4] 7702 000e 9B6B ldr r3, [r3, #56] 7703 0010 BB60 str r3, [r7, #8] 3136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 3138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 7704 .loc 1 3138 16 7705 0012 BB68 ldr r3, [r7, #8] 7706 0014 1B68 ldr r3, [r3] 7707 0016 5B69 ldr r3, [r3, #20] 7708 0018 03F08003 and r3, r3, #128 7709 001c 802B cmp r3, #128 7710 001e 0CBF ite eq 7711 0020 0123 moveq r3, #1 7712 0022 0023 movne r3, #0 7713 0024 DBB2 uxtb r3, r3 7714 .loc 1 3138 14 7715 0026 FB60 str r3, [r7, #12] 3139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 7716 .loc 1 3139 13 7717 0028 BB68 ldr r3, [r7, #8] 7718 002a 93F83D30 ldrb r3, [r3, #61] 7719 002e DBB2 uxtb r3, r3 7720 .loc 1 3139 6 7721 0030 212B cmp r3, #33 7722 0032 08D1 bne .L398 7723 .loc 1 3139 49 discriminator 1 7724 0034 FB68 ldr r3, [r7, #12] 7725 0036 002B cmp r3, #0 7726 0038 05D0 beq .L398 3140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 7727 .loc 1 3141 24 7728 003a BB68 ldr r3, [r7, #8] 7729 003c 0022 movs r2, #0 7730 003e DA84 strh r2, [r3, #38] @ movhi 3142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 7731 .loc 1 3142 5 7732 0040 B868 ldr r0, [r7, #8] 7733 0042 FFF7FEFF bl UART_EndTxTransfer 7734 .L398: 3143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ 3146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 7735 .loc 1 3146 16 7736 0046 BB68 ldr r3, [r7, #8] 7737 0048 1B68 ldr r3, [r3] 7738 004a 5B69 ldr r3, [r3, #20] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 213 7739 004c 03F04003 and r3, r3, #64 7740 0050 402B cmp r3, #64 7741 0052 0CBF ite eq 7742 0054 0123 moveq r3, #1 7743 0056 0023 movne r3, #0 7744 0058 DBB2 uxtb r3, r3 7745 .loc 1 3146 14 7746 005a FB60 str r3, [r7, #12] 3147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 7747 .loc 1 3147 13 7748 005c BB68 ldr r3, [r7, #8] 7749 005e 93F83E30 ldrb r3, [r3, #62] 7750 0062 DBB2 uxtb r3, r3 7751 .loc 1 3147 6 7752 0064 222B cmp r3, #34 7753 0066 08D1 bne .L399 7754 .loc 1 3147 50 discriminator 1 7755 0068 FB68 ldr r3, [r7, #12] 7756 006a 002B cmp r3, #0 7757 006c 05D0 beq .L399 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 7758 .loc 1 3149 24 7759 006e BB68 ldr r3, [r7, #8] 7760 0070 0022 movs r2, #0 7761 0072 DA85 strh r2, [r3, #46] @ movhi 3150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 7762 .loc 1 3150 5 7763 0074 B868 ldr r0, [r7, #8] 7764 0076 FFF7FEFF bl UART_EndRxTransfer 7765 .L399: 3151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA; 7766 .loc 1 3153 20 7767 007a BB68 ldr r3, [r7, #8] 7768 007c 1B6C ldr r3, [r3, #64] 7769 007e 43F01002 orr r2, r3, #16 7770 0082 BB68 ldr r3, [r7, #8] 7771 0084 1A64 str r2, [r3, #64] 3154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 3156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 3157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 7772 .loc 1 3159 3 7773 0086 B868 ldr r0, [r7, #8] 7774 0088 FFF7FEFF bl HAL_UART_ErrorCallback 3160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7775 .loc 1 3161 1 7776 008c 00BF nop 7777 008e 1037 adds r7, r7, #16 7778 .LCFI254: 7779 .cfi_def_cfa_offset 8 7780 0090 BD46 mov sp, r7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 214 7781 .LCFI255: 7782 .cfi_def_cfa_register 13 7783 @ sp needed 7784 0092 80BD pop {r7, pc} 7785 .cfi_endproc 7786 .LFE281: 7788 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 7789 .align 1 7790 .syntax unified 7791 .thumb 7792 .thumb_func 7794 UART_WaitOnFlagUntilTimeout: 7795 .LFB282: 3162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART Communication Timeout. It waits 3165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * until a flag is no longer in the specified status. 3166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Flag specifies the UART flag to check. 3169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Status The actual Flag status (SET or RESET). 3170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Tickstart Tick start value 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 3172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 3175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout) 3176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7796 .loc 1 3176 1 7797 .cfi_startproc 7798 @ args = 4, pretend = 0, frame = 64 7799 @ frame_needed = 1, uses_anonymous_args = 0 7800 0000 80B5 push {r7, lr} 7801 .LCFI256: 7802 .cfi_def_cfa_offset 8 7803 .cfi_offset 7, -8 7804 .cfi_offset 14, -4 7805 0002 90B0 sub sp, sp, #64 7806 .LCFI257: 7807 .cfi_def_cfa_offset 72 7808 0004 00AF add r7, sp, #0 7809 .LCFI258: 7810 .cfi_def_cfa_register 7 7811 0006 F860 str r0, [r7, #12] 7812 0008 B960 str r1, [r7, #8] 7813 000a 3B60 str r3, [r7] 7814 000c 1346 mov r3, r2 7815 000e FB71 strb r3, [r7, #7] 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 7816 .loc 1 3178 9 7817 0010 50E0 b .L401 7818 .L410: 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */ 3181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) 7819 .loc 1 3181 8 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 215 7820 0012 BB6C ldr r3, [r7, #72] 7821 0014 B3F1FF3F cmp r3, #-1 7822 0018 4CD0 beq .L401 3182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 7823 .loc 1 3183 10 7824 001a BB6C ldr r3, [r7, #72] 7825 001c 002B cmp r3, #0 7826 001e 07D0 beq .L405 7827 .loc 1 3183 32 discriminator 1 7828 0020 FFF7FEFF bl HAL_GetTick 7829 0024 0246 mov r2, r0 7830 .loc 1 3183 46 discriminator 1 7831 0026 3B68 ldr r3, [r7] 7832 0028 D31A subs r3, r2, r3 7833 .loc 1 3183 27 discriminator 1 7834 002a BA6C ldr r2, [r7, #72] 7835 002c 9A42 cmp r2, r3 7836 002e 41D2 bcs .L401 7837 .L405: 7838 .LBB589: 3184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for t 3186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE 7839 .loc 1 3186 9 discriminator 1 7840 0030 FB68 ldr r3, [r7, #12] 7841 0032 1B68 ldr r3, [r3] 7842 0034 0C33 adds r3, r3, #12 7843 0036 BB62 str r3, [r7, #40] 7844 .LBB590: 7845 .LBB591: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7846 .loc 2 1072 4 discriminator 1 7847 0038 BB6A ldr r3, [r7, #40] 7848 .syntax unified 7849 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7850 003a 53E8003F ldrex r3, [r3] 7851 @ 0 "" 2 7852 .thumb 7853 .syntax unified 7854 003e 7B62 str r3, [r7, #36] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7855 .loc 2 1073 10 discriminator 1 7856 0040 7B6A ldr r3, [r7, #36] 7857 .LBE591: 7858 .LBE590: 7859 .loc 1 3186 9 discriminator 1 7860 0042 23F4D073 bic r3, r3, #416 7861 0046 FB63 str r3, [r7, #60] 7862 0048 FB68 ldr r3, [r7, #12] 7863 004a 1B68 ldr r3, [r3] 7864 004c 0C33 adds r3, r3, #12 7865 004e FA6B ldr r2, [r7, #60] 7866 0050 7A63 str r2, [r7, #52] 7867 0052 3B63 str r3, [r7, #48] 7868 .LBB592: 7869 .LBB593: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 216 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7870 .loc 2 1123 4 discriminator 1 7871 0054 396B ldr r1, [r7, #48] 7872 0056 7A6B ldr r2, [r7, #52] 7873 .syntax unified 7874 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7875 0058 41E80023 strex r3, r2, [r1] 7876 @ 0 "" 2 7877 .thumb 7878 .syntax unified 7879 005c FB62 str r3, [r7, #44] 7880 .loc 2 1124 10 discriminator 1 7881 005e FB6A ldr r3, [r7, #44] 7882 .LBE593: 7883 .LBE592: 7884 .loc 1 3186 9 discriminator 1 7885 0060 002B cmp r3, #0 7886 0062 E5D1 bne .L405 7887 .L408: 7888 .LBE589: 7889 .LBB594: 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7890 .loc 1 3187 9 discriminator 1 7891 0064 FB68 ldr r3, [r7, #12] 7892 0066 1B68 ldr r3, [r3] 7893 0068 1433 adds r3, r3, #20 7894 006a 7B61 str r3, [r7, #20] 7895 .LBB595: 7896 .LBB596: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7897 .loc 2 1072 4 discriminator 1 7898 006c 7B69 ldr r3, [r7, #20] 7899 .syntax unified 7900 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7901 006e 53E8003F ldrex r3, [r3] 7902 @ 0 "" 2 7903 .thumb 7904 .syntax unified 7905 0072 3B61 str r3, [r7, #16] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7906 .loc 2 1073 10 discriminator 1 7907 0074 3B69 ldr r3, [r7, #16] 7908 .LBE596: 7909 .LBE595: 7910 .loc 1 3187 9 discriminator 1 7911 0076 23F00103 bic r3, r3, #1 7912 007a BB63 str r3, [r7, #56] 7913 007c FB68 ldr r3, [r7, #12] 7914 007e 1B68 ldr r3, [r3] 7915 0080 1433 adds r3, r3, #20 7916 0082 BA6B ldr r2, [r7, #56] 7917 0084 3A62 str r2, [r7, #32] 7918 0086 FB61 str r3, [r7, #28] 7919 .LBB597: 7920 .LBB598: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7921 .loc 2 1123 4 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 217 7922 0088 F969 ldr r1, [r7, #28] 7923 008a 3A6A ldr r2, [r7, #32] 7924 .syntax unified 7925 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7926 008c 41E80023 strex r3, r2, [r1] 7927 @ 0 "" 2 7928 .thumb 7929 .syntax unified 7930 0090 BB61 str r3, [r7, #24] 7931 .loc 2 1124 10 discriminator 1 7932 0092 BB69 ldr r3, [r7, #24] 7933 .LBE598: 7934 .LBE597: 7935 .loc 1 3187 9 discriminator 1 7936 0094 002B cmp r3, #0 7937 0096 E5D1 bne .L408 7938 .LBE594: 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 7939 .loc 1 3189 24 7940 0098 FB68 ldr r3, [r7, #12] 7941 009a 2022 movs r2, #32 7942 009c 83F83D20 strb r2, [r3, #61] 3190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 7943 .loc 1 3190 24 7944 00a0 FB68 ldr r3, [r7, #12] 7945 00a2 2022 movs r2, #32 7946 00a4 83F83E20 strb r2, [r3, #62] 3191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 3193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 7947 .loc 1 3193 9 7948 00a8 FB68 ldr r3, [r7, #12] 7949 00aa 0022 movs r2, #0 7950 00ac 83F83C20 strb r2, [r3, #60] 3194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 7951 .loc 1 3195 16 7952 00b0 0323 movs r3, #3 7953 00b2 0FE0 b .L409 7954 .L401: 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7955 .loc 1 3178 11 7956 00b4 FB68 ldr r3, [r7, #12] 7957 00b6 1B68 ldr r3, [r3] 7958 00b8 1A68 ldr r2, [r3] 7959 00ba BB68 ldr r3, [r7, #8] 7960 00bc 1340 ands r3, r3, r2 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7961 .loc 1 3178 50 7962 00be BA68 ldr r2, [r7, #8] 7963 00c0 9A42 cmp r2, r3 7964 00c2 0CBF ite eq 7965 00c4 0123 moveq r3, #1 7966 00c6 0023 movne r3, #0 7967 00c8 DBB2 uxtb r3, r3 7968 00ca 1A46 mov r2, r3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 218 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7969 .loc 1 3178 59 7970 00cc FB79 ldrb r3, [r7, #7] @ zero_extendqisi2 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7971 .loc 1 3178 9 7972 00ce 9A42 cmp r2, r3 7973 00d0 9FD0 beq .L410 3196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 7974 .loc 1 3199 10 7975 00d2 0023 movs r3, #0 7976 .L409: 3200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7977 .loc 1 3200 1 7978 00d4 1846 mov r0, r3 7979 00d6 4037 adds r7, r7, #64 7980 .LCFI259: 7981 .cfi_def_cfa_offset 8 7982 00d8 BD46 mov sp, r7 7983 .LCFI260: 7984 .cfi_def_cfa_register 13 7985 @ sp needed 7986 00da 80BD pop {r7, pc} 7987 .cfi_endproc 7988 .LFE282: 7990 .section .text.UART_Start_Receive_IT,"ax",%progbits 7991 .align 1 7992 .global UART_Start_Receive_IT 7993 .syntax unified 7994 .thumb 7995 .thumb_func 7997 UART_Start_Receive_IT: 7998 .LFB283: 3201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Start Receive operation in interrupt mode. 3204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in Interrupt mode 3205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7999 .loc 1 3214 1 8000 .cfi_startproc 8001 @ args = 0, pretend = 0, frame = 16 8002 @ frame_needed = 1, uses_anonymous_args = 0 8003 @ link register save eliminated. 8004 0000 80B4 push {r7} 8005 .LCFI261: 8006 .cfi_def_cfa_offset 4 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 219 8007 .cfi_offset 7, -4 8008 0002 85B0 sub sp, sp, #20 8009 .LCFI262: 8010 .cfi_def_cfa_offset 24 8011 0004 00AF add r7, sp, #0 8012 .LCFI263: 8013 .cfi_def_cfa_register 7 8014 0006 F860 str r0, [r7, #12] 8015 0008 B960 str r1, [r7, #8] 8016 000a 1346 mov r3, r2 8017 000c FB80 strh r3, [r7, #6] @ movhi 3215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 8018 .loc 1 3215 21 8019 000e FB68 ldr r3, [r7, #12] 8020 0010 BA68 ldr r2, [r7, #8] 8021 0012 9A62 str r2, [r3, #40] 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8022 .loc 1 3216 21 8023 0014 FB68 ldr r3, [r7, #12] 8024 0016 FA88 ldrh r2, [r7, #6] @ movhi 8025 0018 9A85 strh r2, [r3, #44] @ movhi 3217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 8026 .loc 1 3217 22 8027 001a FB68 ldr r3, [r7, #12] 8028 001c FA88 ldrh r2, [r7, #6] @ movhi 8029 001e DA85 strh r2, [r3, #46] @ movhi 3218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 8030 .loc 1 3219 20 8031 0020 FB68 ldr r3, [r7, #12] 8032 0022 0022 movs r2, #0 8033 0024 1A64 str r2, [r3, #64] 3220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8034 .loc 1 3220 18 8035 0026 FB68 ldr r3, [r7, #12] 8036 0028 2222 movs r2, #34 8037 002a 83F83E20 strb r2, [r3, #62] 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 3223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 8038 .loc 1 3223 3 8039 002e FB68 ldr r3, [r7, #12] 8040 0030 0022 movs r2, #0 8041 0032 83F83C20 strb r2, [r3, #60] 3224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 8042 .loc 1 3225 18 8043 0036 FB68 ldr r3, [r7, #12] 8044 0038 1B69 ldr r3, [r3, #16] 8045 .loc 1 3225 6 8046 003a 002B cmp r3, #0 8047 003c 07D0 beq .L412 3226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 3228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_PE); 8048 .loc 1 3228 5 8049 003e FB68 ldr r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 220 8050 0040 1B68 ldr r3, [r3] 8051 0042 DA68 ldr r2, [r3, #12] 8052 0044 FB68 ldr r3, [r7, #12] 8053 0046 1B68 ldr r3, [r3] 8054 0048 42F48072 orr r2, r2, #256 8055 004c DA60 str r2, [r3, #12] 8056 .L412: 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); 8057 .loc 1 3232 3 8058 004e FB68 ldr r3, [r7, #12] 8059 0050 1B68 ldr r3, [r3] 8060 0052 5A69 ldr r2, [r3, #20] 8061 0054 FB68 ldr r3, [r7, #12] 8062 0056 1B68 ldr r3, [r3] 8063 0058 42F00102 orr r2, r2, #1 8064 005c 5A61 str r2, [r3, #20] 3233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Data Register not empty Interrupt */ 3235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); 8065 .loc 1 3235 3 8066 005e FB68 ldr r3, [r7, #12] 8067 0060 1B68 ldr r3, [r3] 8068 0062 DA68 ldr r2, [r3, #12] 8069 0064 FB68 ldr r3, [r7, #12] 8070 0066 1B68 ldr r3, [r3] 8071 0068 42F02002 orr r2, r2, #32 8072 006c DA60 str r2, [r3, #12] 3236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 8073 .loc 1 3237 10 8074 006e 0023 movs r3, #0 3238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8075 .loc 1 3238 1 8076 0070 1846 mov r0, r3 8077 0072 1437 adds r7, r7, #20 8078 .LCFI264: 8079 .cfi_def_cfa_offset 4 8080 0074 BD46 mov sp, r7 8081 .LCFI265: 8082 .cfi_def_cfa_register 13 8083 @ sp needed 8084 0076 5DF8047B ldr r7, [sp], #4 8085 .LCFI266: 8086 .cfi_restore 7 8087 .cfi_def_cfa_offset 0 8088 007a 7047 bx lr 8089 .cfi_endproc 8090 .LFE283: 8092 .section .text.UART_Start_Receive_DMA,"ax",%progbits 8093 .align 1 8094 .global UART_Start_Receive_DMA 8095 .syntax unified 8096 .thumb 8097 .thumb_func ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 221 8099 UART_Start_Receive_DMA: 8100 .LFB284: 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Start Receive operation in DMA mode. 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in DMA mode. 3243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8101 .loc 1 3252 1 8102 .cfi_startproc 8103 @ args = 0, pretend = 0, frame = 96 8104 @ frame_needed = 1, uses_anonymous_args = 0 8105 0000 80B5 push {r7, lr} 8106 .LCFI267: 8107 .cfi_def_cfa_offset 8 8108 .cfi_offset 7, -8 8109 .cfi_offset 14, -4 8110 0002 98B0 sub sp, sp, #96 8111 .LCFI268: 8112 .cfi_def_cfa_offset 104 8113 0004 00AF add r7, sp, #0 8114 .LCFI269: 8115 .cfi_def_cfa_register 7 8116 0006 F860 str r0, [r7, #12] 8117 0008 B960 str r1, [r7, #8] 8118 000a 1346 mov r3, r2 8119 000c FB80 strh r3, [r7, #6] @ movhi 3253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 3254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 8120 .loc 1 3255 21 8121 000e BA68 ldr r2, [r7, #8] 8122 0010 FB68 ldr r3, [r7, #12] 8123 0012 9A62 str r2, [r3, #40] 3256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8124 .loc 1 3256 21 8125 0014 FB68 ldr r3, [r7, #12] 8126 0016 FA88 ldrh r2, [r7, #6] @ movhi 8127 0018 9A85 strh r2, [r3, #44] @ movhi 3257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 8128 .loc 1 3258 20 8129 001a FB68 ldr r3, [r7, #12] 8130 001c 0022 movs r2, #0 8131 001e 1A64 str r2, [r3, #64] 3259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8132 .loc 1 3259 18 8133 0020 FB68 ldr r3, [r7, #12] 8134 0022 2222 movs r2, #34 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 222 8135 0024 83F83E20 strb r2, [r3, #62] 3260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 3262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; 8136 .loc 1 3262 8 8137 0028 FB68 ldr r3, [r7, #12] 8138 002a 9B6B ldr r3, [r3, #56] 8139 .loc 1 3262 35 8140 002c 404A ldr r2, .L426 8141 002e DA63 str r2, [r3, #60] 3263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; 8142 .loc 1 3265 8 8143 0030 FB68 ldr r3, [r7, #12] 8144 0032 9B6B ldr r3, [r3, #56] 8145 .loc 1 3265 39 8146 0034 3F4A ldr r2, .L426+4 8147 0036 1A64 str r2, [r3, #64] 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 3268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError; 8148 .loc 1 3268 8 8149 0038 FB68 ldr r3, [r7, #12] 8150 003a 9B6B ldr r3, [r3, #56] 8151 .loc 1 3268 36 8152 003c 3E4A ldr r2, .L426+8 8153 003e DA64 str r2, [r3, #76] 3269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 3271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 8154 .loc 1 3271 8 8155 0040 FB68 ldr r3, [r7, #12] 8156 0042 9B6B ldr r3, [r3, #56] 8157 .loc 1 3271 36 8158 0044 0022 movs r2, #0 8159 0046 1A65 str r2, [r3, #80] 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA stream */ 3274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData; 8160 .loc 1 3274 7 8161 0048 07F10803 add r3, r7, #8 8162 004c FB65 str r3, [r7, #92] 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); 8163 .loc 1 3275 3 8164 004e FB68 ldr r3, [r7, #12] 8165 0050 986B ldr r0, [r3, #56] 8166 .loc 1 3275 51 8167 0052 FB68 ldr r3, [r7, #12] 8168 0054 1B68 ldr r3, [r3] 8169 .loc 1 3275 45 8170 0056 0433 adds r3, r3, #4 8171 .loc 1 3275 3 8172 0058 1946 mov r1, r3 8173 005a FB6D ldr r3, [r7, #92] 8174 005c 1A68 ldr r2, [r3] 8175 005e FB88 ldrh r3, [r7, #6] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 223 8176 0060 FFF7FEFF bl HAL_DMA_Start_IT 8177 .LBB599: 3276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag just before enabling the DMA Rx request: can be mandatory for the secon 3278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 8178 .loc 1 3278 3 8179 0064 0023 movs r3, #0 8180 0066 3B61 str r3, [r7, #16] 8181 0068 FB68 ldr r3, [r7, #12] 8182 006a 1B68 ldr r3, [r3] 8183 006c 1B68 ldr r3, [r3] 8184 006e 3B61 str r3, [r7, #16] 8185 0070 FB68 ldr r3, [r7, #12] 8186 0072 1B68 ldr r3, [r3] 8187 0074 5B68 ldr r3, [r3, #4] 8188 0076 3B61 str r3, [r7, #16] 8189 0078 3B69 ldr r3, [r7, #16] 8190 .LBE599: 3279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 3281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 8191 .loc 1 3281 3 8192 007a FB68 ldr r3, [r7, #12] 8193 007c 0022 movs r2, #0 8194 007e 83F83C20 strb r2, [r3, #60] 3282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 8195 .loc 1 3283 18 8196 0082 FB68 ldr r3, [r7, #12] 8197 0084 1B69 ldr r3, [r3, #16] 8198 .loc 1 3283 6 8199 0086 002B cmp r3, #0 8200 0088 19D0 beq .L421 8201 .L418: 8202 .LBB600: 3284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 3286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 8203 .loc 1 3286 5 discriminator 1 8204 008a FB68 ldr r3, [r7, #12] 8205 008c 1B68 ldr r3, [r3] 8206 008e 0C33 adds r3, r3, #12 8207 0090 3B64 str r3, [r7, #64] 8208 .LBB601: 8209 .LBB602: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8210 .loc 2 1072 4 discriminator 1 8211 0092 3B6C ldr r3, [r7, #64] 8212 .syntax unified 8213 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8214 0094 53E8003F ldrex r3, [r3] 8215 @ 0 "" 2 8216 .thumb 8217 .syntax unified 8218 0098 FB63 str r3, [r7, #60] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8219 .loc 2 1073 10 discriminator 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 224 8220 009a FB6B ldr r3, [r7, #60] 8221 .LBE602: 8222 .LBE601: 8223 .loc 1 3286 5 discriminator 1 8224 009c 43F48073 orr r3, r3, #256 8225 00a0 BB65 str r3, [r7, #88] 8226 00a2 FB68 ldr r3, [r7, #12] 8227 00a4 1B68 ldr r3, [r3] 8228 00a6 0C33 adds r3, r3, #12 8229 00a8 BA6D ldr r2, [r7, #88] 8230 00aa FA64 str r2, [r7, #76] 8231 00ac BB64 str r3, [r7, #72] 8232 .LBB603: 8233 .LBB604: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8234 .loc 2 1123 4 discriminator 1 8235 00ae B96C ldr r1, [r7, #72] 8236 00b0 FA6C ldr r2, [r7, #76] 8237 .syntax unified 8238 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8239 00b2 41E80023 strex r3, r2, [r1] 8240 @ 0 "" 2 8241 .thumb 8242 .syntax unified 8243 00b6 7B64 str r3, [r7, #68] 8244 .loc 2 1124 10 discriminator 1 8245 00b8 7B6C ldr r3, [r7, #68] 8246 .LBE604: 8247 .LBE603: 8248 .loc 1 3286 5 discriminator 1 8249 00ba 002B cmp r3, #0 8250 00bc E5D1 bne .L418 8251 .L421: 8252 .LBE600: 8253 .LBB605: 3287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 8254 .loc 1 3290 3 discriminator 1 8255 00be FB68 ldr r3, [r7, #12] 8256 00c0 1B68 ldr r3, [r3] 8257 00c2 1433 adds r3, r3, #20 8258 00c4 FB62 str r3, [r7, #44] 8259 .LBB606: 8260 .LBB607: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8261 .loc 2 1072 4 discriminator 1 8262 00c6 FB6A ldr r3, [r7, #44] 8263 .syntax unified 8264 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8265 00c8 53E8003F ldrex r3, [r3] 8266 @ 0 "" 2 8267 .thumb 8268 .syntax unified 8269 00cc BB62 str r3, [r7, #40] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 225 8270 .loc 2 1073 10 discriminator 1 8271 00ce BB6A ldr r3, [r7, #40] 8272 .LBE607: 8273 .LBE606: 8274 .loc 1 3290 3 discriminator 1 8275 00d0 43F00103 orr r3, r3, #1 8276 00d4 7B65 str r3, [r7, #84] 8277 00d6 FB68 ldr r3, [r7, #12] 8278 00d8 1B68 ldr r3, [r3] 8279 00da 1433 adds r3, r3, #20 8280 00dc 7A6D ldr r2, [r7, #84] 8281 00de BA63 str r2, [r7, #56] 8282 00e0 7B63 str r3, [r7, #52] 8283 .LBB608: 8284 .LBB609: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8285 .loc 2 1123 4 discriminator 1 8286 00e2 796B ldr r1, [r7, #52] 8287 00e4 BA6B ldr r2, [r7, #56] 8288 .syntax unified 8289 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8290 00e6 41E80023 strex r3, r2, [r1] 8291 @ 0 "" 2 8292 .thumb 8293 .syntax unified 8294 00ea 3B63 str r3, [r7, #48] 8295 .loc 2 1124 10 discriminator 1 8296 00ec 3B6B ldr r3, [r7, #48] 8297 .LBE609: 8298 .LBE608: 8299 .loc 1 3290 3 discriminator 1 8300 00ee 002B cmp r3, #0 8301 00f0 E5D1 bne .L421 8302 .L424: 8303 .LBE605: 8304 .LBB610: 3291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit 3293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 3294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 8305 .loc 1 3294 3 discriminator 1 8306 00f2 FB68 ldr r3, [r7, #12] 8307 00f4 1B68 ldr r3, [r3] 8308 00f6 1433 adds r3, r3, #20 8309 00f8 BB61 str r3, [r7, #24] 8310 .LBB611: 8311 .LBB612: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8312 .loc 2 1072 4 discriminator 1 8313 00fa BB69 ldr r3, [r7, #24] 8314 .syntax unified 8315 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8316 00fc 53E8003F ldrex r3, [r3] 8317 @ 0 "" 2 8318 .thumb 8319 .syntax unified 8320 0100 7B61 str r3, [r7, #20] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 226 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8321 .loc 2 1073 10 discriminator 1 8322 0102 7B69 ldr r3, [r7, #20] 8323 .LBE612: 8324 .LBE611: 8325 .loc 1 3294 3 discriminator 1 8326 0104 43F04003 orr r3, r3, #64 8327 0108 3B65 str r3, [r7, #80] 8328 010a FB68 ldr r3, [r7, #12] 8329 010c 1B68 ldr r3, [r3] 8330 010e 1433 adds r3, r3, #20 8331 0110 3A6D ldr r2, [r7, #80] 8332 0112 7A62 str r2, [r7, #36] 8333 0114 3B62 str r3, [r7, #32] 8334 .LBB613: 8335 .LBB614: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8336 .loc 2 1123 4 discriminator 1 8337 0116 396A ldr r1, [r7, #32] 8338 0118 7A6A ldr r2, [r7, #36] 8339 .syntax unified 8340 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8341 011a 41E80023 strex r3, r2, [r1] 8342 @ 0 "" 2 8343 .thumb 8344 .syntax unified 8345 011e FB61 str r3, [r7, #28] 8346 .loc 2 1124 10 discriminator 1 8347 0120 FB69 ldr r3, [r7, #28] 8348 .LBE614: 8349 .LBE613: 8350 .loc 1 3294 3 discriminator 1 8351 0122 002B cmp r3, #0 8352 0124 E5D1 bne .L424 8353 .LBE610: 3295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 8354 .loc 1 3296 10 8355 0126 0023 movs r3, #0 3297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8356 .loc 1 3297 1 8357 0128 1846 mov r0, r3 8358 012a 6037 adds r7, r7, #96 8359 .LCFI270: 8360 .cfi_def_cfa_offset 8 8361 012c BD46 mov sp, r7 8362 .LCFI271: 8363 .cfi_def_cfa_register 13 8364 @ sp needed 8365 012e 80BD pop {r7, pc} 8366 .L427: 8367 .align 2 8368 .L426: 8369 0130 00000000 .word UART_DMAReceiveCplt 8370 0134 00000000 .word UART_DMARxHalfCplt 8371 0138 00000000 .word UART_DMAError 8372 .cfi_endproc ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 227 8373 .LFE284: 8375 .section .text.UART_EndTxTransfer,"ax",%progbits 8376 .align 1 8377 .syntax unified 8378 .thumb 8379 .thumb_func 8381 UART_EndTxTransfer: 8382 .LFB285: 3298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl 3301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart) 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8383 .loc 1 3305 1 8384 .cfi_startproc 8385 @ args = 0, pretend = 0, frame = 32 8386 @ frame_needed = 1, uses_anonymous_args = 0 8387 @ link register save eliminated. 8388 0000 80B4 push {r7} 8389 .LCFI272: 8390 .cfi_def_cfa_offset 4 8391 .cfi_offset 7, -4 8392 0002 89B0 sub sp, sp, #36 8393 .LCFI273: 8394 .cfi_def_cfa_offset 40 8395 0004 00AF add r7, sp, #0 8396 .LCFI274: 8397 .cfi_def_cfa_register 7 8398 0006 7860 str r0, [r7, #4] 8399 .L431: 8400 .LBB615: 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 8401 .loc 1 3307 3 discriminator 1 8402 0008 7B68 ldr r3, [r7, #4] 8403 000a 1B68 ldr r3, [r3] 8404 000c 0C33 adds r3, r3, #12 8405 000e FB60 str r3, [r7, #12] 8406 .LBB616: 8407 .LBB617: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8408 .loc 2 1072 4 discriminator 1 8409 0010 FB68 ldr r3, [r7, #12] 8410 .syntax unified 8411 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8412 0012 53E8003F ldrex r3, [r3] 8413 @ 0 "" 2 8414 .thumb 8415 .syntax unified 8416 0016 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8417 .loc 2 1073 10 discriminator 1 8418 0018 BB68 ldr r3, [r7, #8] 8419 .LBE617: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 228 8420 .LBE616: 8421 .loc 1 3307 3 discriminator 1 8422 001a 23F0C003 bic r3, r3, #192 8423 001e FB61 str r3, [r7, #28] 8424 0020 7B68 ldr r3, [r7, #4] 8425 0022 1B68 ldr r3, [r3] 8426 0024 0C33 adds r3, r3, #12 8427 0026 FA69 ldr r2, [r7, #28] 8428 0028 BA61 str r2, [r7, #24] 8429 002a 7B61 str r3, [r7, #20] 8430 .LBB618: 8431 .LBB619: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8432 .loc 2 1123 4 discriminator 1 8433 002c 7969 ldr r1, [r7, #20] 8434 002e BA69 ldr r2, [r7, #24] 8435 .syntax unified 8436 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8437 0030 41E80023 strex r3, r2, [r1] 8438 @ 0 "" 2 8439 .thumb 8440 .syntax unified 8441 0034 3B61 str r3, [r7, #16] 8442 .loc 2 1124 10 discriminator 1 8443 0036 3B69 ldr r3, [r7, #16] 8444 .LBE619: 8445 .LBE618: 8446 .loc 1 3307 3 discriminator 1 8447 0038 002B cmp r3, #0 8448 003a E5D1 bne .L431 8449 .LBE615: 3308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 3310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 8450 .loc 1 3310 17 8451 003c 7B68 ldr r3, [r7, #4] 8452 003e 2022 movs r2, #32 8453 0040 83F83D20 strb r2, [r3, #61] 3311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8454 .loc 1 3311 1 8455 0044 00BF nop 8456 0046 2437 adds r7, r7, #36 8457 .LCFI275: 8458 .cfi_def_cfa_offset 4 8459 0048 BD46 mov sp, r7 8460 .LCFI276: 8461 .cfi_def_cfa_register 13 8462 @ sp needed 8463 004a 5DF8047B ldr r7, [sp], #4 8464 .LCFI277: 8465 .cfi_restore 7 8466 .cfi_def_cfa_offset 0 8467 004e 7047 bx lr 8468 .cfi_endproc 8469 .LFE285: 8471 .section .text.UART_EndRxTransfer,"ax",%progbits 8472 .align 1 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 229 8473 .syntax unified 8474 .thumb 8475 .thumb_func 8477 UART_EndRxTransfer: 8478 .LFB286: 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart) 3319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8479 .loc 1 3319 1 8480 .cfi_startproc 8481 @ args = 0, pretend = 0, frame = 80 8482 @ frame_needed = 1, uses_anonymous_args = 0 8483 @ link register save eliminated. 8484 0000 80B4 push {r7} 8485 .LCFI278: 8486 .cfi_def_cfa_offset 4 8487 .cfi_offset 7, -4 8488 0002 95B0 sub sp, sp, #84 8489 .LCFI279: 8490 .cfi_def_cfa_offset 88 8491 0004 00AF add r7, sp, #0 8492 .LCFI280: 8493 .cfi_def_cfa_register 7 8494 0006 7860 str r0, [r7, #4] 8495 .L435: 8496 .LBB620: 3320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 8497 .loc 1 3321 3 discriminator 1 8498 0008 7B68 ldr r3, [r7, #4] 8499 000a 1B68 ldr r3, [r3] 8500 000c 0C33 adds r3, r3, #12 8501 000e 7B63 str r3, [r7, #52] 8502 .LBB621: 8503 .LBB622: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8504 .loc 2 1072 4 discriminator 1 8505 0010 7B6B ldr r3, [r7, #52] 8506 .syntax unified 8507 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8508 0012 53E8003F ldrex r3, [r3] 8509 @ 0 "" 2 8510 .thumb 8511 .syntax unified 8512 0016 3B63 str r3, [r7, #48] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8513 .loc 2 1073 10 discriminator 1 8514 0018 3B6B ldr r3, [r7, #48] 8515 .LBE622: 8516 .LBE621: 8517 .loc 1 3321 3 discriminator 1 8518 001a 23F49073 bic r3, r3, #288 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 230 8519 001e FB64 str r3, [r7, #76] 8520 0020 7B68 ldr r3, [r7, #4] 8521 0022 1B68 ldr r3, [r3] 8522 0024 0C33 adds r3, r3, #12 8523 0026 FA6C ldr r2, [r7, #76] 8524 0028 3A64 str r2, [r7, #64] 8525 002a FB63 str r3, [r7, #60] 8526 .LBB623: 8527 .LBB624: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8528 .loc 2 1123 4 discriminator 1 8529 002c F96B ldr r1, [r7, #60] 8530 002e 3A6C ldr r2, [r7, #64] 8531 .syntax unified 8532 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8533 0030 41E80023 strex r3, r2, [r1] 8534 @ 0 "" 2 8535 .thumb 8536 .syntax unified 8537 0034 BB63 str r3, [r7, #56] 8538 .loc 2 1124 10 discriminator 1 8539 0036 BB6B ldr r3, [r7, #56] 8540 .LBE624: 8541 .LBE623: 8542 .loc 1 3321 3 discriminator 1 8543 0038 002B cmp r3, #0 8544 003a E5D1 bne .L435 8545 .L438: 8546 .LBE620: 8547 .LBB625: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 8548 .loc 1 3322 3 discriminator 1 8549 003c 7B68 ldr r3, [r7, #4] 8550 003e 1B68 ldr r3, [r3] 8551 0040 1433 adds r3, r3, #20 8552 0042 3B62 str r3, [r7, #32] 8553 .LBB626: 8554 .LBB627: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8555 .loc 2 1072 4 discriminator 1 8556 0044 3B6A ldr r3, [r7, #32] 8557 .syntax unified 8558 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8559 0046 53E8003F ldrex r3, [r3] 8560 @ 0 "" 2 8561 .thumb 8562 .syntax unified 8563 004a FB61 str r3, [r7, #28] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8564 .loc 2 1073 10 discriminator 1 8565 004c FB69 ldr r3, [r7, #28] 8566 .LBE627: 8567 .LBE626: 8568 .loc 1 3322 3 discriminator 1 8569 004e 23F00103 bic r3, r3, #1 8570 0052 BB64 str r3, [r7, #72] 8571 0054 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 231 8572 0056 1B68 ldr r3, [r3] 8573 0058 1433 adds r3, r3, #20 8574 005a BA6C ldr r2, [r7, #72] 8575 005c FA62 str r2, [r7, #44] 8576 005e BB62 str r3, [r7, #40] 8577 .LBB628: 8578 .LBB629: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8579 .loc 2 1123 4 discriminator 1 8580 0060 B96A ldr r1, [r7, #40] 8581 0062 FA6A ldr r2, [r7, #44] 8582 .syntax unified 8583 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8584 0064 41E80023 strex r3, r2, [r1] 8585 @ 0 "" 2 8586 .thumb 8587 .syntax unified 8588 0068 7B62 str r3, [r7, #36] 8589 .loc 2 1124 10 discriminator 1 8590 006a 7B6A ldr r3, [r7, #36] 8591 .LBE629: 8592 .LBE628: 8593 .loc 1 3322 3 discriminator 1 8594 006c 002B cmp r3, #0 8595 006e E5D1 bne .L438 8596 .LBE625: 3323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 8597 .loc 1 3325 12 8598 0070 7B68 ldr r3, [r7, #4] 8599 0072 1B6B ldr r3, [r3, #48] 8600 .loc 1 3325 6 8601 0074 012B cmp r3, #1 8602 0076 19D1 bne .L439 8603 .L442: 8604 .LBB630: 3326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8605 .loc 1 3327 5 discriminator 1 8606 0078 7B68 ldr r3, [r7, #4] 8607 007a 1B68 ldr r3, [r3] 8608 007c 0C33 adds r3, r3, #12 8609 007e FB60 str r3, [r7, #12] 8610 .LBB631: 8611 .LBB632: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8612 .loc 2 1072 4 discriminator 1 8613 0080 FB68 ldr r3, [r7, #12] 8614 .syntax unified 8615 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8616 0082 53E8003F ldrex r3, [r3] 8617 @ 0 "" 2 8618 .thumb 8619 .syntax unified 8620 0086 BB60 str r3, [r7, #8] 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 232 8621 .loc 2 1073 10 discriminator 1 8622 0088 BB68 ldr r3, [r7, #8] 8623 .LBE632: 8624 .LBE631: 8625 .loc 1 3327 5 discriminator 1 8626 008a 23F01003 bic r3, r3, #16 8627 008e 7B64 str r3, [r7, #68] 8628 0090 7B68 ldr r3, [r7, #4] 8629 0092 1B68 ldr r3, [r3] 8630 0094 0C33 adds r3, r3, #12 8631 0096 7A6C ldr r2, [r7, #68] 8632 0098 BA61 str r2, [r7, #24] 8633 009a 7B61 str r3, [r7, #20] 8634 .LBB633: 8635 .LBB634: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8636 .loc 2 1123 4 discriminator 1 8637 009c 7969 ldr r1, [r7, #20] 8638 009e BA69 ldr r2, [r7, #24] 8639 .syntax unified 8640 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8641 00a0 41E80023 strex r3, r2, [r1] 8642 @ 0 "" 2 8643 .thumb 8644 .syntax unified 8645 00a4 3B61 str r3, [r7, #16] 8646 .loc 2 1124 10 discriminator 1 8647 00a6 3B69 ldr r3, [r7, #16] 8648 .LBE634: 8649 .LBE633: 8650 .loc 1 3327 5 discriminator 1 8651 00a8 002B cmp r3, #0 8652 00aa E5D1 bne .L442 8653 .L439: 8654 .LBE630: 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8655 .loc 1 3331 18 8656 00ac 7B68 ldr r3, [r7, #4] 8657 00ae 2022 movs r2, #32 8658 00b0 83F83E20 strb r2, [r3, #62] 3332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8659 .loc 1 3332 24 8660 00b4 7B68 ldr r3, [r7, #4] 8661 00b6 0022 movs r2, #0 8662 00b8 1A63 str r2, [r3, #48] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8663 .loc 1 3333 1 8664 00ba 00BF nop 8665 00bc 5437 adds r7, r7, #84 8666 .LCFI281: 8667 .cfi_def_cfa_offset 4 8668 00be BD46 mov sp, r7 8669 .LCFI282: 8670 .cfi_def_cfa_register 13 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 233 8671 @ sp needed 8672 00c0 5DF8047B ldr r7, [sp], #4 8673 .LCFI283: 8674 .cfi_restore 7 8675 .cfi_def_cfa_offset 0 8676 00c4 7047 bx lr 8677 .cfi_endproc 8678 .LFE286: 8680 .section .text.UART_DMAAbortOnError,"ax",%progbits 8681 .align 1 8682 .syntax unified 8683 .thumb 8684 .thumb_func 8686 UART_DMAAbortOnError: 8687 .LFB287: 3334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error 3337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence). 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8688 .loc 1 3343 1 8689 .cfi_startproc 8690 @ args = 0, pretend = 0, frame = 16 8691 @ frame_needed = 1, uses_anonymous_args = 0 8692 0000 80B5 push {r7, lr} 8693 .LCFI284: 8694 .cfi_def_cfa_offset 8 8695 .cfi_offset 7, -8 8696 .cfi_offset 14, -4 8697 0002 84B0 sub sp, sp, #16 8698 .LCFI285: 8699 .cfi_def_cfa_offset 24 8700 0004 00AF add r7, sp, #0 8701 .LCFI286: 8702 .cfi_def_cfa_register 7 8703 0006 7860 str r0, [r7, #4] 3344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 8704 .loc 1 3344 23 8705 0008 7B68 ldr r3, [r7, #4] 8706 000a 9B6B ldr r3, [r3, #56] 8707 000c FB60 str r3, [r7, #12] 3345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 8708 .loc 1 3345 22 8709 000e FB68 ldr r3, [r7, #12] 8710 0010 0022 movs r2, #0 8711 0012 DA85 strh r2, [r3, #46] @ movhi 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 8712 .loc 1 3346 22 8713 0014 FB68 ldr r3, [r7, #12] 8714 0016 0022 movs r2, #0 8715 0018 DA84 strh r2, [r3, #38] @ movhi 3347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 234 3348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 3350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 3351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 8716 .loc 1 3353 3 8717 001a F868 ldr r0, [r7, #12] 8718 001c FFF7FEFF bl HAL_UART_ErrorCallback 3354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8719 .loc 1 3355 1 8720 0020 00BF nop 8721 0022 1037 adds r7, r7, #16 8722 .LCFI287: 8723 .cfi_def_cfa_offset 8 8724 0024 BD46 mov sp, r7 8725 .LCFI288: 8726 .cfi_def_cfa_register 13 8727 @ sp needed 8728 0026 80BD pop {r7, pc} 8729 .cfi_endproc 8730 .LFE287: 8732 .section .text.UART_DMATxAbortCallback,"ax",%progbits 8733 .align 1 8734 .syntax unified 8735 .thumb 8736 .thumb_func 8738 UART_DMATxAbortCallback: 8739 .LFB288: 3356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user 3359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle. 3362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8740 .loc 1 3367 1 8741 .cfi_startproc 8742 @ args = 0, pretend = 0, frame = 16 8743 @ frame_needed = 1, uses_anonymous_args = 0 8744 0000 80B5 push {r7, lr} 8745 .LCFI289: 8746 .cfi_def_cfa_offset 8 8747 .cfi_offset 7, -8 8748 .cfi_offset 14, -4 8749 0002 84B0 sub sp, sp, #16 8750 .LCFI290: 8751 .cfi_def_cfa_offset 24 8752 0004 00AF add r7, sp, #0 8753 .LCFI291: 8754 .cfi_def_cfa_register 7 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 235 8755 0006 7860 str r0, [r7, #4] 3368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 8756 .loc 1 3368 23 8757 0008 7B68 ldr r3, [r7, #4] 8758 000a 9B6B ldr r3, [r3, #56] 8759 000c FB60 str r3, [r7, #12] 3369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 8760 .loc 1 3370 8 8761 000e FB68 ldr r3, [r7, #12] 8762 0010 5B6B ldr r3, [r3, #52] 8763 .loc 1 3370 36 8764 0012 0022 movs r2, #0 8765 0014 1A65 str r2, [r3, #80] 3371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 8766 .loc 1 3373 12 8767 0016 FB68 ldr r3, [r7, #12] 8768 0018 9B6B ldr r3, [r3, #56] 8769 .loc 1 3373 6 8770 001a 002B cmp r3, #0 8771 001c 04D0 beq .L445 3374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL) 8772 .loc 1 3375 14 8773 001e FB68 ldr r3, [r7, #12] 8774 0020 9B6B ldr r3, [r3, #56] 8775 .loc 1 3375 22 8776 0022 1B6D ldr r3, [r3, #80] 8777 .loc 1 3375 8 8778 0024 002B cmp r3, #0 8779 0026 17D1 bne .L447 8780 .L445: 3376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 8781 .loc 1 3382 22 8782 0028 FB68 ldr r3, [r7, #12] 8783 002a 0022 movs r2, #0 8784 002c DA84 strh r2, [r3, #38] @ movhi 3383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 8785 .loc 1 3383 22 8786 002e FB68 ldr r3, [r7, #12] 8787 0030 0022 movs r2, #0 8788 0032 DA85 strh r2, [r3, #46] @ movhi 3384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 3386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 8789 .loc 1 3386 20 8790 0034 FB68 ldr r3, [r7, #12] 8791 0036 0022 movs r2, #0 8792 0038 1A64 str r2, [r3, #64] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 236 3387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 8793 .loc 1 3389 18 8794 003a FB68 ldr r3, [r7, #12] 8795 003c 2022 movs r2, #32 8796 003e 83F83D20 strb r2, [r3, #61] 3390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8797 .loc 1 3390 18 8798 0042 FB68 ldr r3, [r7, #12] 8799 0044 2022 movs r2, #32 8800 0046 83F83E20 strb r2, [r3, #62] 3391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8801 .loc 1 3391 24 8802 004a FB68 ldr r3, [r7, #12] 8803 004c 0022 movs r2, #0 8804 004e 1A63 str r2, [r3, #48] 3392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 8805 .loc 1 3399 3 8806 0050 F868 ldr r0, [r7, #12] 8807 0052 FFF7FEFF bl HAL_UART_AbortCpltCallback 8808 0056 00E0 b .L444 8809 .L447: 3377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8810 .loc 1 3377 7 8811 0058 00BF nop 8812 .L444: 3400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8813 .loc 1 3401 1 8814 005a 1037 adds r7, r7, #16 8815 .LCFI292: 8816 .cfi_def_cfa_offset 8 8817 005c BD46 mov sp, r7 8818 .LCFI293: 8819 .cfi_def_cfa_register 13 8820 @ sp needed 8821 005e 80BD pop {r7, pc} 8822 .cfi_endproc 8823 .LFE288: 8825 .section .text.UART_DMARxAbortCallback,"ax",%progbits 8826 .align 1 8827 .syntax unified 8828 .thumb 8829 .thumb_func 8831 UART_DMARxAbortCallback: 8832 .LFB289: 3402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 237 3405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When this callback is executed, User Abort complete call back is called only if no 3407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle. 3408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8833 .loc 1 3413 1 8834 .cfi_startproc 8835 @ args = 0, pretend = 0, frame = 16 8836 @ frame_needed = 1, uses_anonymous_args = 0 8837 0000 80B5 push {r7, lr} 8838 .LCFI294: 8839 .cfi_def_cfa_offset 8 8840 .cfi_offset 7, -8 8841 .cfi_offset 14, -4 8842 0002 84B0 sub sp, sp, #16 8843 .LCFI295: 8844 .cfi_def_cfa_offset 24 8845 0004 00AF add r7, sp, #0 8846 .LCFI296: 8847 .cfi_def_cfa_register 7 8848 0006 7860 str r0, [r7, #4] 3414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 8849 .loc 1 3414 23 8850 0008 7B68 ldr r3, [r7, #4] 8851 000a 9B6B ldr r3, [r3, #56] 8852 000c FB60 str r3, [r7, #12] 3415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 8853 .loc 1 3416 8 8854 000e FB68 ldr r3, [r7, #12] 8855 0010 9B6B ldr r3, [r3, #56] 8856 .loc 1 3416 36 8857 0012 0022 movs r2, #0 8858 0014 1A65 str r2, [r3, #80] 3417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 8859 .loc 1 3419 12 8860 0016 FB68 ldr r3, [r7, #12] 8861 0018 5B6B ldr r3, [r3, #52] 8862 .loc 1 3419 6 8863 001a 002B cmp r3, #0 8864 001c 04D0 beq .L449 3420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL) 8865 .loc 1 3421 14 8866 001e FB68 ldr r3, [r7, #12] 8867 0020 5B6B ldr r3, [r3, #52] 8868 .loc 1 3421 22 8869 0022 1B6D ldr r3, [r3, #80] 8870 .loc 1 3421 8 8871 0024 002B cmp r3, #0 8872 0026 17D1 bne .L451 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 238 8873 .L449: 3422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 8874 .loc 1 3428 22 8875 0028 FB68 ldr r3, [r7, #12] 8876 002a 0022 movs r2, #0 8877 002c DA84 strh r2, [r3, #38] @ movhi 3429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 8878 .loc 1 3429 22 8879 002e FB68 ldr r3, [r7, #12] 8880 0030 0022 movs r2, #0 8881 0032 DA85 strh r2, [r3, #46] @ movhi 3430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 3432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 8882 .loc 1 3432 20 8883 0034 FB68 ldr r3, [r7, #12] 8884 0036 0022 movs r2, #0 8885 0038 1A64 str r2, [r3, #64] 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 8886 .loc 1 3435 18 8887 003a FB68 ldr r3, [r7, #12] 8888 003c 2022 movs r2, #32 8889 003e 83F83D20 strb r2, [r3, #61] 3436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 8890 .loc 1 3436 18 8891 0042 FB68 ldr r3, [r7, #12] 8892 0044 2022 movs r2, #32 8893 0046 83F83E20 strb r2, [r3, #62] 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 8894 .loc 1 3437 24 8895 004a FB68 ldr r3, [r7, #12] 8896 004c 0022 movs r2, #0 8897 004e 1A63 str r2, [r3, #48] 3438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 8898 .loc 1 3445 3 8899 0050 F868 ldr r0, [r7, #12] 8900 0052 FFF7FEFF bl HAL_UART_AbortCpltCallback 8901 0056 00E0 b .L448 8902 .L451: 3423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8903 .loc 1 3423 7 8904 0058 00BF nop ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 239 8905 .L448: 3446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8906 .loc 1 3447 1 8907 005a 1037 adds r7, r7, #16 8908 .LCFI297: 8909 .cfi_def_cfa_offset 8 8910 005c BD46 mov sp, r7 8911 .LCFI298: 8912 .cfi_def_cfa_register 13 8913 @ sp needed 8914 005e 80BD pop {r7, pc} 8915 .cfi_endproc 8916 .LFE289: 8918 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 8919 .align 1 8920 .syntax unified 8921 .thumb 8922 .thumb_func 8924 UART_DMATxOnlyAbortCallback: 8925 .LFB290: 3448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to 3451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) 3452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques 3453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution). 3454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8926 .loc 1 3459 1 8927 .cfi_startproc 8928 @ args = 0, pretend = 0, frame = 16 8929 @ frame_needed = 1, uses_anonymous_args = 0 8930 0000 80B5 push {r7, lr} 8931 .LCFI299: 8932 .cfi_def_cfa_offset 8 8933 .cfi_offset 7, -8 8934 .cfi_offset 14, -4 8935 0002 84B0 sub sp, sp, #16 8936 .LCFI300: 8937 .cfi_def_cfa_offset 24 8938 0004 00AF add r7, sp, #0 8939 .LCFI301: 8940 .cfi_def_cfa_register 7 8941 0006 7860 str r0, [r7, #4] 3460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 8942 .loc 1 3460 23 8943 0008 7B68 ldr r3, [r7, #4] 8944 000a 9B6B ldr r3, [r3, #56] 8945 000c FB60 str r3, [r7, #12] 3461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 8946 .loc 1 3462 22 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 240 8947 000e FB68 ldr r3, [r7, #12] 8948 0010 0022 movs r2, #0 8949 0012 DA84 strh r2, [r3, #38] @ movhi 3463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 8950 .loc 1 3465 17 8951 0014 FB68 ldr r3, [r7, #12] 8952 0016 2022 movs r2, #32 8953 0018 83F83D20 strb r2, [r3, #61] 3466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 3471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 3473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 8954 .loc 1 3473 3 8955 001c F868 ldr r0, [r7, #12] 8956 001e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8957 .loc 1 3475 1 8958 0022 00BF nop 8959 0024 1037 adds r7, r7, #16 8960 .LCFI302: 8961 .cfi_def_cfa_offset 8 8962 0026 BD46 mov sp, r7 8963 .LCFI303: 8964 .cfi_def_cfa_register 13 8965 @ sp needed 8966 0028 80BD pop {r7, pc} 8967 .cfi_endproc 8968 .LFE290: 8970 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 8971 .align 1 8972 .syntax unified 8973 .thumb 8974 .thumb_func 8976 UART_DMARxOnlyAbortCallback: 8977 .LFB291: 3476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques 3481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution). 3482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8978 .loc 1 3487 1 8979 .cfi_startproc 8980 @ args = 0, pretend = 0, frame = 16 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 241 8981 @ frame_needed = 1, uses_anonymous_args = 0 8982 0000 80B5 push {r7, lr} 8983 .LCFI304: 8984 .cfi_def_cfa_offset 8 8985 .cfi_offset 7, -8 8986 .cfi_offset 14, -4 8987 0002 84B0 sub sp, sp, #16 8988 .LCFI305: 8989 .cfi_def_cfa_offset 24 8990 0004 00AF add r7, sp, #0 8991 .LCFI306: 8992 .cfi_def_cfa_register 7 8993 0006 7860 str r0, [r7, #4] 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 8994 .loc 1 3488 23 8995 0008 7B68 ldr r3, [r7, #4] 8996 000a 9B6B ldr r3, [r3, #56] 8997 000c FB60 str r3, [r7, #12] 3489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 8998 .loc 1 3490 22 8999 000e FB68 ldr r3, [r7, #12] 9000 0010 0022 movs r2, #0 9001 0012 DA85 strh r2, [r3, #46] @ movhi 3491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 3493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9002 .loc 1 3493 18 9003 0014 FB68 ldr r3, [r7, #12] 9004 0016 2022 movs r2, #32 9005 0018 83F83E20 strb r2, [r3, #62] 3494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 9006 .loc 1 3494 24 9007 001c FB68 ldr r3, [r7, #12] 9008 001e 0022 movs r2, #0 9009 0020 1A63 str r2, [r3, #48] 3495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 3499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 3500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 3502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 9010 .loc 1 3502 3 9011 0022 F868 ldr r0, [r7, #12] 9012 0024 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9013 .loc 1 3504 1 9014 0028 00BF nop 9015 002a 1037 adds r7, r7, #16 9016 .LCFI307: 9017 .cfi_def_cfa_offset 8 9018 002c BD46 mov sp, r7 9019 .LCFI308: 9020 .cfi_def_cfa_register 13 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 242 9021 @ sp needed 9022 002e 80BD pop {r7, pc} 9023 .cfi_endproc 9024 .LFE291: 9026 .section .text.UART_Transmit_IT,"ax",%progbits 9027 .align 1 9028 .syntax unified 9029 .thumb 9030 .thumb_func 9032 UART_Transmit_IT: 9033 .LFB292: 3505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 3508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 9034 .loc 1 3513 1 9035 .cfi_startproc 9036 @ args = 0, pretend = 0, frame = 16 9037 @ frame_needed = 1, uses_anonymous_args = 0 9038 @ link register save eliminated. 9039 0000 80B4 push {r7} 9040 .LCFI309: 9041 .cfi_def_cfa_offset 4 9042 .cfi_offset 7, -4 9043 0002 85B0 sub sp, sp, #20 9044 .LCFI310: 9045 .cfi_def_cfa_offset 24 9046 0004 00AF add r7, sp, #0 9047 .LCFI311: 9048 .cfi_def_cfa_register 7 9049 0006 7860 str r0, [r7, #4] 3514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *tmp; 3515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 3517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 9050 .loc 1 3517 12 9051 0008 7B68 ldr r3, [r7, #4] 9052 000a 93F83D30 ldrb r3, [r3, #61] 9053 000e DBB2 uxtb r3, r3 9054 .loc 1 3517 6 9055 0010 212B cmp r3, #33 9056 0012 3ED1 bne .L455 3518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 9057 .loc 1 3519 21 9058 0014 7B68 ldr r3, [r7, #4] 9059 0016 9B68 ldr r3, [r3, #8] 9060 .loc 1 3519 8 9061 0018 B3F5805F cmp r3, #4096 9062 001c 14D1 bne .L456 9063 .loc 1 3519 71 discriminator 1 9064 001e 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 243 9065 0020 1B69 ldr r3, [r3, #16] 9066 .loc 1 3519 56 discriminator 1 9067 0022 002B cmp r3, #0 9068 0024 10D1 bne .L456 3520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (const uint16_t *) huart->pTxBuffPtr; 9069 .loc 1 3521 11 9070 0026 7B68 ldr r3, [r7, #4] 9071 0028 1B6A ldr r3, [r3, #32] 9072 002a FB60 str r3, [r7, #12] 3522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 9073 .loc 1 3522 40 9074 002c FB68 ldr r3, [r7, #12] 9075 002e 1B88 ldrh r3, [r3] 9076 .loc 1 3522 29 9077 0030 1A46 mov r2, r3 9078 .loc 1 3522 12 9079 0032 7B68 ldr r3, [r7, #4] 9080 0034 1B68 ldr r3, [r3] 9081 .loc 1 3522 29 9082 0036 C2F30802 ubfx r2, r2, #0, #9 9083 .loc 1 3522 27 9084 003a 5A60 str r2, [r3, #4] 3523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 9085 .loc 1 3523 25 9086 003c 7B68 ldr r3, [r7, #4] 9087 003e 1B6A ldr r3, [r3, #32] 9088 0040 9A1C adds r2, r3, #2 9089 0042 7B68 ldr r3, [r7, #4] 9090 0044 1A62 str r2, [r3, #32] 9091 0046 08E0 b .L457 9092 .L456: 3524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); 9093 .loc 1 3527 45 9094 0048 7B68 ldr r3, [r7, #4] 9095 004a 1B6A ldr r3, [r3, #32] 9096 .loc 1 3527 57 9097 004c 591C adds r1, r3, #1 9098 004e 7A68 ldr r2, [r7, #4] 9099 0050 1162 str r1, [r2, #32] 9100 .loc 1 3527 39 9101 0052 1A78 ldrb r2, [r3] @ zero_extendqisi2 9102 .loc 1 3527 12 9103 0054 7B68 ldr r3, [r7, #4] 9104 0056 1B68 ldr r3, [r3] 9105 .loc 1 3527 27 9106 0058 5A60 str r2, [r3, #4] 9107 .L457: 3528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->TxXferCount == 0U) 9108 .loc 1 3530 16 9109 005a 7B68 ldr r3, [r7, #4] 9110 005c DB8C ldrh r3, [r3, #38] @ movhi ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 244 9111 005e 9BB2 uxth r3, r3 9112 .loc 1 3530 9 9113 0060 013B subs r3, r3, #1 9114 0062 9BB2 uxth r3, r3 9115 .loc 1 3530 8 9116 0064 7A68 ldr r2, [r7, #4] 9117 0066 1946 mov r1, r3 @ movhi 9118 0068 D184 strh r1, [r2, #38] @ movhi 9119 006a 002B cmp r3, #0 9120 006c 0FD1 bne .L458 3531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ 3533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); 9121 .loc 1 3533 7 9122 006e 7B68 ldr r3, [r7, #4] 9123 0070 1B68 ldr r3, [r3] 9124 0072 DA68 ldr r2, [r3, #12] 9125 0074 7B68 ldr r3, [r7, #4] 9126 0076 1B68 ldr r3, [r3] 9127 0078 22F08002 bic r2, r2, #128 9128 007c DA60 str r2, [r3, #12] 3534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 3536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TC); 9129 .loc 1 3536 7 9130 007e 7B68 ldr r3, [r7, #4] 9131 0080 1B68 ldr r3, [r3] 9132 0082 DA68 ldr r2, [r3, #12] 9133 0084 7B68 ldr r3, [r7, #4] 9134 0086 1B68 ldr r3, [r3] 9135 0088 42F04002 orr r2, r2, #64 9136 008c DA60 str r2, [r3, #12] 9137 .L458: 3537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 9138 .loc 1 3538 12 9139 008e 0023 movs r3, #0 9140 0090 00E0 b .L459 9141 .L455: 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 9142 .loc 1 3542 12 9143 0092 0223 movs r3, #2 9144 .L459: 3543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9145 .loc 1 3544 1 9146 0094 1846 mov r0, r3 9147 0096 1437 adds r7, r7, #20 9148 .LCFI312: 9149 .cfi_def_cfa_offset 4 9150 0098 BD46 mov sp, r7 9151 .LCFI313: 9152 .cfi_def_cfa_register 13 9153 @ sp needed ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 245 9154 009a 5DF8047B ldr r7, [sp], #4 9155 .LCFI314: 9156 .cfi_restore 7 9157 .cfi_def_cfa_offset 0 9158 009e 7047 bx lr 9159 .cfi_endproc 9160 .LFE292: 9162 .section .text.UART_EndTransmit_IT,"ax",%progbits 9163 .align 1 9164 .syntax unified 9165 .thumb 9166 .thumb_func 9168 UART_EndTransmit_IT: 9169 .LFB293: 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Wraps up transmission in non blocking mode. 3548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 3553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 9170 .loc 1 3553 1 9171 .cfi_startproc 9172 @ args = 0, pretend = 0, frame = 8 9173 @ frame_needed = 1, uses_anonymous_args = 0 9174 0000 80B5 push {r7, lr} 9175 .LCFI315: 9176 .cfi_def_cfa_offset 8 9177 .cfi_offset 7, -8 9178 .cfi_offset 14, -4 9179 0002 82B0 sub sp, sp, #8 9180 .LCFI316: 9181 .cfi_def_cfa_offset 16 9182 0004 00AF add r7, sp, #0 9183 .LCFI317: 9184 .cfi_def_cfa_register 7 9185 0006 7860 str r0, [r7, #4] 3554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 3555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TC); 9186 .loc 1 3555 3 9187 0008 7B68 ldr r3, [r7, #4] 9188 000a 1B68 ldr r3, [r3] 9189 000c DA68 ldr r2, [r3, #12] 9190 000e 7B68 ldr r3, [r7, #4] 9191 0010 1B68 ldr r3, [r3] 9192 0012 22F04002 bic r2, r2, #64 9193 0016 DA60 str r2, [r3, #12] 3556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */ 3558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 9194 .loc 1 3558 17 9195 0018 7B68 ldr r3, [r7, #4] 9196 001a 2022 movs r2, #32 9197 001c 83F83D20 strb r2, [r3, #61] 3559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 246 3560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); 3563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 9198 .loc 1 3565 3 9199 0020 7868 ldr r0, [r7, #4] 9200 0022 FFF7FEFF bl HAL_UART_TxCpltCallback 3566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 9201 .loc 1 3568 10 9202 0026 0023 movs r3, #0 3569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9203 .loc 1 3569 1 9204 0028 1846 mov r0, r3 9205 002a 0837 adds r7, r7, #8 9206 .LCFI318: 9207 .cfi_def_cfa_offset 8 9208 002c BD46 mov sp, r7 9209 .LCFI319: 9210 .cfi_def_cfa_register 13 9211 @ sp needed 9212 002e 80BD pop {r7, pc} 9213 .cfi_endproc 9214 .LFE293: 9216 .section .text.UART_Receive_IT,"ax",%progbits 9217 .align 1 9218 .syntax unified 9219 .thumb 9220 .thumb_func 9222 UART_Receive_IT: 9223 .LFB294: 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 9224 .loc 1 3578 1 9225 .cfi_startproc 9226 @ args = 0, pretend = 0, frame = 48 9227 @ frame_needed = 1, uses_anonymous_args = 0 9228 0000 80B5 push {r7, lr} 9229 .LCFI320: 9230 .cfi_def_cfa_offset 8 9231 .cfi_offset 7, -8 9232 .cfi_offset 14, -4 9233 0002 8CB0 sub sp, sp, #48 9234 .LCFI321: 9235 .cfi_def_cfa_offset 56 9236 0004 00AF add r7, sp, #0 9237 .LCFI322: ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 247 9238 .cfi_def_cfa_register 7 9239 0006 7860 str r0, [r7, #4] 3579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 3580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 3583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 9240 .loc 1 3583 12 9241 0008 7B68 ldr r3, [r7, #4] 9242 000a 93F83E30 ldrb r3, [r3, #62] 9243 000e DBB2 uxtb r3, r3 9244 .loc 1 3583 6 9245 0010 222B cmp r3, #34 9246 0012 40F0AB80 bne .L463 3584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 9247 .loc 1 3585 21 9248 0016 7B68 ldr r3, [r7, #4] 9249 0018 9B68 ldr r3, [r3, #8] 9250 .loc 1 3585 8 9251 001a B3F5805F cmp r3, #4096 9252 001e 17D1 bne .L464 9253 .loc 1 3585 71 discriminator 1 9254 0020 7B68 ldr r3, [r7, #4] 9255 0022 1B69 ldr r3, [r3, #16] 9256 .loc 1 3585 56 discriminator 1 9257 0024 002B cmp r3, #0 9258 0026 13D1 bne .L464 3586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 9259 .loc 1 3587 19 9260 0028 0023 movs r3, #0 9261 002a FB62 str r3, [r7, #44] 3588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) huart->pRxBuffPtr; 9262 .loc 1 3588 19 9263 002c 7B68 ldr r3, [r7, #4] 9264 002e 9B6A ldr r3, [r3, #40] 9265 0030 BB62 str r3, [r7, #40] 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 9266 .loc 1 3589 38 9267 0032 7B68 ldr r3, [r7, #4] 9268 0034 1B68 ldr r3, [r3] 9269 .loc 1 3589 48 9270 0036 5B68 ldr r3, [r3, #4] 9271 .loc 1 3589 22 9272 0038 9BB2 uxth r3, r3 9273 003a C3F30803 ubfx r3, r3, #0, #9 9274 003e 9AB2 uxth r2, r3 9275 .loc 1 3589 20 9276 0040 BB6A ldr r3, [r7, #40] 9277 0042 1A80 strh r2, [r3] @ movhi 3590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 9278 .loc 1 3590 25 9279 0044 7B68 ldr r3, [r7, #4] 9280 0046 9B6A ldr r3, [r3, #40] 9281 0048 9A1C adds r2, r3, #2 9282 004a 7B68 ldr r3, [r7, #4] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 248 9283 004c 9A62 str r2, [r3, #40] 9284 004e 26E0 b .L465 9285 .L464: 3591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = (uint8_t *) huart->pRxBuffPtr; 9286 .loc 1 3594 18 9287 0050 7B68 ldr r3, [r7, #4] 9288 0052 9B6A ldr r3, [r3, #40] 9289 0054 FB62 str r3, [r7, #44] 3595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 9290 .loc 1 3595 20 9291 0056 0023 movs r3, #0 9292 0058 BB62 str r3, [r7, #40] 3596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLE 9293 .loc 1 3597 23 9294 005a 7B68 ldr r3, [r7, #4] 9295 005c 9B68 ldr r3, [r3, #8] 9296 .loc 1 3597 10 9297 005e B3F5805F cmp r3, #4096 9298 0062 07D0 beq .L466 9299 .loc 1 3597 74 discriminator 1 9300 0064 7B68 ldr r3, [r7, #4] 9301 0066 9B68 ldr r3, [r3, #8] 9302 .loc 1 3597 58 discriminator 1 9303 0068 002B cmp r3, #0 9304 006a 0AD1 bne .L467 9305 .loc 1 3597 124 discriminator 2 9306 006c 7B68 ldr r3, [r7, #4] 9307 006e 1B69 ldr r3, [r3, #16] 9308 .loc 1 3597 109 discriminator 2 9309 0070 002B cmp r3, #0 9310 0072 06D1 bne .L467 9311 .L466: 3598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 9312 .loc 1 3599 38 9313 0074 7B68 ldr r3, [r7, #4] 9314 0076 1B68 ldr r3, [r3] 9315 .loc 1 3599 48 9316 0078 5B68 ldr r3, [r3, #4] 9317 .loc 1 3599 23 9318 007a DAB2 uxtb r2, r3 9319 .loc 1 3599 21 9320 007c FB6A ldr r3, [r7, #44] 9321 007e 1A70 strb r2, [r3] 9322 0080 08E0 b .L468 9323 .L467: 3600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 9324 .loc 1 3603 38 9325 0082 7B68 ldr r3, [r7, #4] 9326 0084 1B68 ldr r3, [r3] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 249 9327 .loc 1 3603 48 9328 0086 5B68 ldr r3, [r3, #4] 9329 .loc 1 3603 23 9330 0088 DBB2 uxtb r3, r3 9331 008a 03F07F03 and r3, r3, #127 9332 008e DAB2 uxtb r2, r3 9333 .loc 1 3603 21 9334 0090 FB6A ldr r3, [r7, #44] 9335 0092 1A70 strb r2, [r3] 9336 .L468: 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 9337 .loc 1 3605 25 9338 0094 7B68 ldr r3, [r7, #4] 9339 0096 9B6A ldr r3, [r3, #40] 9340 0098 5A1C adds r2, r3, #1 9341 009a 7B68 ldr r3, [r7, #4] 9342 009c 9A62 str r2, [r3, #40] 9343 .L465: 3606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->RxXferCount == 0U) 9344 .loc 1 3608 16 9345 009e 7B68 ldr r3, [r7, #4] 9346 00a0 DB8D ldrh r3, [r3, #46] @ movhi 9347 00a2 9BB2 uxth r3, r3 9348 .loc 1 3608 9 9349 00a4 013B subs r3, r3, #1 9350 00a6 9BB2 uxth r3, r3 9351 .loc 1 3608 8 9352 00a8 7A68 ldr r2, [r7, #4] 9353 00aa 1946 mov r1, r3 @ movhi 9354 00ac D185 strh r1, [r2, #46] @ movhi 9355 00ae 002B cmp r3, #0 9356 00b0 5AD1 bne .L469 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Data Register not empty Interrupt */ 3611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); 9357 .loc 1 3611 7 9358 00b2 7B68 ldr r3, [r7, #4] 9359 00b4 1B68 ldr r3, [r3] 9360 00b6 DA68 ldr r2, [r3, #12] 9361 00b8 7B68 ldr r3, [r7, #4] 9362 00ba 1B68 ldr r3, [r3] 9363 00bc 22F02002 bic r2, r2, #32 9364 00c0 DA60 str r2, [r3, #12] 3612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt */ 3614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_PE); 9365 .loc 1 3614 7 9366 00c2 7B68 ldr r3, [r7, #4] 9367 00c4 1B68 ldr r3, [r3] 9368 00c6 DA68 ldr r2, [r3, #12] 9369 00c8 7B68 ldr r3, [r7, #4] 9370 00ca 1B68 ldr r3, [r3] 9371 00cc 22F48072 bic r2, r2, #256 9372 00d0 DA60 str r2, [r3, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 250 3615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); 9373 .loc 1 3617 7 9374 00d2 7B68 ldr r3, [r7, #4] 9375 00d4 1B68 ldr r3, [r3] 9376 00d6 5A69 ldr r2, [r3, #20] 9377 00d8 7B68 ldr r3, [r7, #4] 9378 00da 1B68 ldr r3, [r3] 9379 00dc 22F00102 bic r2, r2, #1 9380 00e0 5A61 str r2, [r3, #20] 3618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 3620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 9381 .loc 1 3620 22 9382 00e2 7B68 ldr r3, [r7, #4] 9383 00e4 2022 movs r2, #32 9384 00e6 83F83E20 strb r2, [r3, #62] 3621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 3624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 9385 .loc 1 3624 16 9386 00ea 7B68 ldr r3, [r7, #4] 9387 00ec 1B6B ldr r3, [r3, #48] 9388 .loc 1 3624 10 9389 00ee 012B cmp r3, #1 9390 00f0 35D1 bne .L470 3625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set reception type to Standard */ 3627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 9391 .loc 1 3627 30 9392 00f2 7B68 ldr r3, [r7, #4] 9393 00f4 0022 movs r2, #0 9394 00f6 1A63 str r2, [r3, #48] 9395 .L473: 9396 .LBB635: 3628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable IDLE interrupt */ 3630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9397 .loc 1 3630 9 discriminator 1 9398 00f8 7B68 ldr r3, [r7, #4] 9399 00fa 1B68 ldr r3, [r3] 9400 00fc 0C33 adds r3, r3, #12 9401 00fe 7B61 str r3, [r7, #20] 9402 .LBB636: 9403 .LBB637: 1072:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9404 .loc 2 1072 4 discriminator 1 9405 0100 7B69 ldr r3, [r7, #20] 9406 .syntax unified 9407 @ 1072 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 9408 0102 53E8003F ldrex r3, [r3] 9409 @ 0 "" 2 9410 .thumb 9411 .syntax unified 9412 0106 3B61 str r3, [r7, #16] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 251 1073:Drivers/CMSIS/Include/cmsis_gcc.h **** } 9413 .loc 2 1073 10 discriminator 1 9414 0108 3B69 ldr r3, [r7, #16] 9415 .LBE637: 9416 .LBE636: 9417 .loc 1 3630 9 discriminator 1 9418 010a 23F01003 bic r3, r3, #16 9419 010e 7B62 str r3, [r7, #36] 9420 0110 7B68 ldr r3, [r7, #4] 9421 0112 1B68 ldr r3, [r3] 9422 0114 0C33 adds r3, r3, #12 9423 0116 7A6A ldr r2, [r7, #36] 9424 0118 3A62 str r2, [r7, #32] 9425 011a FB61 str r3, [r7, #28] 9426 .LBB638: 9427 .LBB639: 1123:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9428 .loc 2 1123 4 discriminator 1 9429 011c F969 ldr r1, [r7, #28] 9430 011e 3A6A ldr r2, [r7, #32] 9431 .syntax unified 9432 @ 1123 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 9433 0120 41E80023 strex r3, r2, [r1] 9434 @ 0 "" 2 9435 .thumb 9436 .syntax unified 9437 0124 BB61 str r3, [r7, #24] 9438 .loc 2 1124 10 discriminator 1 9439 0126 BB69 ldr r3, [r7, #24] 9440 .LBE639: 9441 .LBE638: 9442 .loc 1 3630 9 discriminator 1 9443 0128 002B cmp r3, #0 9444 012a E5D1 bne .L473 9445 .LBE635: 3631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if IDLE flag is set */ 3633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) 9446 .loc 1 3633 13 9447 012c 7B68 ldr r3, [r7, #4] 9448 012e 1B68 ldr r3, [r3] 9449 0130 1B68 ldr r3, [r3] 9450 0132 03F01003 and r3, r3, #16 9451 .loc 1 3633 12 9452 0136 102B cmp r3, #16 9453 0138 0AD1 bne .L474 9454 .LBB640: 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear IDLE flag in ISR */ 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 9455 .loc 1 3636 11 9456 013a 0023 movs r3, #0 9457 013c FB60 str r3, [r7, #12] 9458 013e 7B68 ldr r3, [r7, #4] 9459 0140 1B68 ldr r3, [r3] 9460 0142 1B68 ldr r3, [r3] 9461 0144 FB60 str r3, [r7, #12] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 252 9462 0146 7B68 ldr r3, [r7, #4] 9463 0148 1B68 ldr r3, [r3] 9464 014a 5B68 ldr r3, [r3, #4] 9465 014c FB60 str r3, [r7, #12] 9466 014e FB68 ldr r3, [r7, #12] 9467 .L474: 9468 .LBE640: 3637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 9469 .loc 1 3644 9 9470 0150 7B68 ldr r3, [r7, #4] 9471 0152 9B8D ldrh r3, [r3, #44] 9472 0154 1946 mov r1, r3 9473 0156 7868 ldr r0, [r7, #4] 9474 0158 FFF7FEFF bl HAL_UARTEx_RxEventCallback 9475 015c 02E0 b .L475 9476 .L470: 3645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Standard reception API called */ 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 9477 .loc 1 3655 9 9478 015e 7868 ldr r0, [r7, #4] 9479 0160 FFF7FEFF bl HAL_UART_RxCpltCallback 9480 .L475: 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 9481 .loc 1 3659 14 9482 0164 0023 movs r3, #0 9483 0166 02E0 b .L476 9484 .L469: 3660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 9485 .loc 1 3661 12 9486 0168 0023 movs r3, #0 9487 016a 00E0 b .L476 9488 .L463: 3662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 9489 .loc 1 3665 12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 253 9490 016c 0223 movs r3, #2 9491 .L476: 3666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9492 .loc 1 3667 1 9493 016e 1846 mov r0, r3 9494 0170 3037 adds r7, r7, #48 9495 .LCFI323: 9496 .cfi_def_cfa_offset 8 9497 0172 BD46 mov sp, r7 9498 .LCFI324: 9499 .cfi_def_cfa_register 13 9500 @ sp needed 9501 0174 80BD pop {r7, pc} 9502 .cfi_endproc 9503 .LFE294: 9505 .global __aeabi_uldivmod 9506 .section .text.UART_SetConfig,"ax",%progbits 9507 .align 1 9508 .syntax unified 9509 .thumb 9510 .thumb_func 9512 UART_SetConfig: 9513 .LFB295: 3668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Configures the UART peripheral. 3671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart) 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 9514 .loc 1 3676 1 9515 .cfi_startproc 9516 @ args = 0, pretend = 0, frame = 256 9517 @ frame_needed = 1, uses_anonymous_args = 0 9518 0000 2DE9B04F push {r4, r5, r7, r8, r9, r10, fp, lr} 9519 .LCFI325: 9520 .cfi_def_cfa_offset 32 9521 .cfi_offset 4, -32 9522 .cfi_offset 5, -28 9523 .cfi_offset 7, -24 9524 .cfi_offset 8, -20 9525 .cfi_offset 9, -16 9526 .cfi_offset 10, -12 9527 .cfi_offset 11, -8 9528 .cfi_offset 14, -4 9529 0004 C0B0 sub sp, sp, #256 9530 .LCFI326: 9531 .cfi_def_cfa_offset 288 9532 0006 00AF add r7, sp, #0 9533 .LCFI327: 9534 .cfi_def_cfa_register 7 9535 0008 C7F8F400 str r0, [r7, #244] 3677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg; 3678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t pclk; ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 254 3679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); 3682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 3684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); 3685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/ 3687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits 3688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** according to huart->Init.StopBits value */ 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 9536 .loc 1 3689 3 9537 000c D7F8F430 ldr r3, [r7, #244] 9538 0010 1B68 ldr r3, [r3] 9539 0012 1B69 ldr r3, [r3, #16] 9540 0014 23F44050 bic r0, r3, #12288 9541 0018 D7F8F430 ldr r3, [r7, #244] 9542 001c D968 ldr r1, [r3, #12] 9543 001e D7F8F430 ldr r3, [r7, #244] 9544 0022 1A68 ldr r2, [r3] 9545 0024 40EA0103 orr r3, r0, r1 9546 0028 1361 str r3, [r2, #16] 3690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Word Length, Parity and mode: 3693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the M bits according to huart->Init.WordLength value 3694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set PCE and PS bits according to huart->Init.Parity value 3695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set TE and RE bits according to huart->Init.Mode value 3696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set OVER8 bit according to huart->Init.OverSampling value */ 3697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O 9547 .loc 1 3698 33 9548 002a D7F8F430 ldr r3, [r7, #244] 9549 002e 9A68 ldr r2, [r3, #8] 9550 .loc 1 3698 58 9551 0030 D7F8F430 ldr r3, [r7, #244] 9552 0034 1B69 ldr r3, [r3, #16] 9553 .loc 1 3698 45 9554 0036 1A43 orrs r2, r2, r3 9555 .loc 1 3698 79 9556 0038 D7F8F430 ldr r3, [r7, #244] 9557 003c 5B69 ldr r3, [r3, #20] 9558 .loc 1 3698 66 9559 003e 1A43 orrs r2, r2, r3 9560 .loc 1 3698 98 9561 0040 D7F8F430 ldr r3, [r7, #244] 9562 0044 DB69 ldr r3, [r3, #28] 9563 .loc 1 3698 10 9564 0046 1343 orrs r3, r3, r2 9565 0048 C7F8F830 str r3, [r7, #248] 3699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, 9566 .loc 1 3699 3 9567 004c D7F8F430 ldr r3, [r7, #244] 9568 0050 1B68 ldr r3, [r3] 9569 0052 DB68 ldr r3, [r3, #12] 9570 0054 23F41641 bic r1, r3, #38400 9571 0058 21F00C01 bic r1, r1, #12 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 255 9572 005c D7F8F430 ldr r3, [r7, #244] 9573 0060 1A68 ldr r2, [r3] 9574 0062 D7F8F830 ldr r3, [r7, #248] 9575 0066 0B43 orrs r3, r3, r1 9576 0068 D360 str r3, [r2, #12] 3700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | USART_CR1_RE | 3701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg); 3702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/ 3704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */ 3705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); 9577 .loc 1 3705 3 9578 006a D7F8F430 ldr r3, [r7, #244] 9579 006e 1B68 ldr r3, [r3] 9580 0070 5B69 ldr r3, [r3, #20] 9581 0072 23F44070 bic r0, r3, #768 9582 0076 D7F8F430 ldr r3, [r7, #244] 9583 007a 9969 ldr r1, [r3, #24] 9584 007c D7F8F430 ldr r3, [r7, #244] 9585 0080 1A68 ldr r2, [r3] 9586 0082 40EA0103 orr r3, r0, r1 9587 0086 5361 str r3, [r2, #20] 3706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6) && defined(UART9) && defined(UART10) 3709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6) || (huart->Instance == UART9) || 3710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #elif defined(USART6) 3714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6)) 9588 .loc 1 3714 15 9589 0088 D7F8F430 ldr r3, [r7, #244] 9590 008c 1A68 ldr r2, [r3] 9591 .loc 1 3714 8 9592 008e 8F4B ldr r3, .L484 9593 0090 9A42 cmp r2, r3 9594 0092 05D0 beq .L478 9595 .loc 1 3714 46 discriminator 1 9596 0094 D7F8F430 ldr r3, [r7, #244] 9597 0098 1A68 ldr r2, [r3] 9598 .loc 1 3714 37 discriminator 1 9599 009a 8D4B ldr r3, .L484+4 9600 009c 9A42 cmp r2, r3 9601 009e 04D1 bne .L479 9602 .L478: 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 9603 .loc 1 3716 14 9604 00a0 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 9605 00a4 C7F8FC00 str r0, [r7, #252] 9606 .loc 1 3716 12 9607 00a8 03E0 b .L480 9608 .L479: 3717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1) ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 256 3720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */ 3724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); 9609 .loc 1 3726 14 9610 00aa FFF7FEFF bl HAL_RCC_GetPCLK1Freq 9611 00ae C7F8FC00 str r0, [r7, #252] 9612 .L480: 3727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/ 3729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 9613 .loc 1 3729 18 9614 00b2 D7F8F430 ldr r3, [r7, #244] 9615 00b6 DB69 ldr r3, [r3, #28] 9616 .loc 1 3729 6 9617 00b8 B3F5004F cmp r3, #32768 9618 00bc 40F00C81 bne .L481 3730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); 9619 .loc 1 3731 28 9620 00c0 D7F8FC30 ldr r3, [r7, #252] 9621 00c4 0022 movs r2, #0 9622 00c6 C7F8E830 str r3, [r7, #232] 9623 00ca C7F8EC20 str r2, [r7, #236] 9624 00ce D7E93A45 ldrd r4, [r7, #232] 9625 00d2 2246 mov r2, r4 9626 00d4 2B46 mov r3, r5 9627 00d6 9118 adds r1, r2, r2 9628 00d8 B965 str r1, [r7, #88] 9629 00da 5B41 adcs r3, r3, r3 9630 00dc FB65 str r3, [r7, #92] 9631 00de D7E91623 ldrd r2, [r7, #88] 9632 00e2 2146 mov r1, r4 9633 00e4 12EB0108 adds r8, r2, r1 9634 00e8 2946 mov r1, r5 9635 00ea 43EB0109 adc r9, r3, r1 9636 00ee 4FF00002 mov r2, #0 9637 00f2 4FF00003 mov r3, #0 9638 00f6 4FEAC903 lsl r3, r9, #3 9639 00fa 43EA5873 orr r3, r3, r8, lsr #29 9640 00fe 4FEAC802 lsl r2, r8, #3 9641 0102 9046 mov r8, r2 9642 0104 9946 mov r9, r3 9643 0106 2346 mov r3, r4 9644 0108 18EB0303 adds r3, r8, r3 9645 010c C7F8E030 str r3, [r7, #224] 9646 0110 2B46 mov r3, r5 9647 0112 49EB0303 adc r3, r9, r3 9648 0116 C7F8E430 str r3, [r7, #228] 9649 011a D7F8F430 ldr r3, [r7, #244] 9650 011e 5B68 ldr r3, [r3, #4] 9651 0120 0022 movs r2, #0 9652 0122 C7F8D830 str r3, [r7, #216] 9653 0126 C7F8DC20 str r2, [r7, #220] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 257 9654 012a D7E93612 ldrd r1, [r7, #216] 9655 012e 0B46 mov r3, r1 9656 0130 DB18 adds r3, r3, r3 9657 0132 3B65 str r3, [r7, #80] 9658 0134 1346 mov r3, r2 9659 0136 42EB0303 adc r3, r2, r3 9660 013a 7B65 str r3, [r7, #84] 9661 013c D7E91423 ldrd r2, [r7, #80] 9662 0140 D7E93801 ldrd r0, [r7, #224] 9663 0144 FFF7FEFF bl __aeabi_uldivmod 9664 0148 0246 mov r2, r0 9665 014a 0B46 mov r3, r1 9666 014c 614B ldr r3, .L484+8 9667 014e A3FB0223 umull r2, r3, r3, r2 9668 0152 5B09 lsrs r3, r3, #5 9669 0154 1C01 lsls r4, r3, #4 9670 0156 D7F8FC30 ldr r3, [r7, #252] 9671 015a 0022 movs r2, #0 9672 015c C7F8D030 str r3, [r7, #208] 9673 0160 C7F8D420 str r2, [r7, #212] 9674 0164 D7E93489 ldrd r8, [r7, #208] 9675 0168 4246 mov r2, r8 9676 016a 4B46 mov r3, r9 9677 016c 9118 adds r1, r2, r2 9678 016e B964 str r1, [r7, #72] 9679 0170 5B41 adcs r3, r3, r3 9680 0172 FB64 str r3, [r7, #76] 9681 0174 D7E91223 ldrd r2, [r7, #72] 9682 0178 4146 mov r1, r8 9683 017a 12EB010A adds r10, r2, r1 9684 017e 4946 mov r1, r9 9685 0180 43EB010B adc fp, r3, r1 9686 0184 4FF00002 mov r2, #0 9687 0188 4FF00003 mov r3, #0 9688 018c 4FEACB03 lsl r3, fp, #3 9689 0190 43EA5A73 orr r3, r3, r10, lsr #29 9690 0194 4FEACA02 lsl r2, r10, #3 9691 0198 9246 mov r10, r2 9692 019a 9B46 mov fp, r3 9693 019c 4346 mov r3, r8 9694 019e 1AEB0303 adds r3, r10, r3 9695 01a2 C7F8C830 str r3, [r7, #200] 9696 01a6 4B46 mov r3, r9 9697 01a8 4BEB0303 adc r3, fp, r3 9698 01ac C7F8CC30 str r3, [r7, #204] 9699 01b0 D7F8F430 ldr r3, [r7, #244] 9700 01b4 5B68 ldr r3, [r3, #4] 9701 01b6 0022 movs r2, #0 9702 01b8 C7F8C030 str r3, [r7, #192] 9703 01bc C7F8C420 str r2, [r7, #196] 9704 01c0 D7E93012 ldrd r1, [r7, #192] 9705 01c4 0B46 mov r3, r1 9706 01c6 DB18 adds r3, r3, r3 9707 01c8 3B64 str r3, [r7, #64] 9708 01ca 1346 mov r3, r2 9709 01cc 42EB0303 adc r3, r2, r3 9710 01d0 7B64 str r3, [r7, #68] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 258 9711 01d2 D7E91023 ldrd r2, [r7, #64] 9712 01d6 D7E93201 ldrd r0, [r7, #200] 9713 01da FFF7FEFF bl __aeabi_uldivmod 9714 01de 0246 mov r2, r0 9715 01e0 0B46 mov r3, r1 9716 01e2 1146 mov r1, r2 9717 01e4 3B4B ldr r3, .L484+8 9718 01e6 A3FB0123 umull r2, r3, r3, r1 9719 01ea 5B09 lsrs r3, r3, #5 9720 01ec 6422 movs r2, #100 9721 01ee 02FB03F3 mul r3, r2, r3 9722 01f2 CB1A subs r3, r1, r3 9723 01f4 DB00 lsls r3, r3, #3 9724 01f6 03F13202 add r2, r3, #50 9725 01fa 364B ldr r3, .L484+8 9726 01fc A3FB0223 umull r2, r3, r3, r2 9727 0200 5B09 lsrs r3, r3, #5 9728 0202 5B00 lsls r3, r3, #1 9729 0204 03F4F873 and r3, r3, #496 9730 0208 1C44 add r4, r4, r3 9731 020a D7F8FC30 ldr r3, [r7, #252] 9732 020e 0022 movs r2, #0 9733 0210 C7F8B830 str r3, [r7, #184] 9734 0214 C7F8BC20 str r2, [r7, #188] 9735 0218 D7E92E89 ldrd r8, [r7, #184] 9736 021c 4246 mov r2, r8 9737 021e 4B46 mov r3, r9 9738 0220 9118 adds r1, r2, r2 9739 0222 B963 str r1, [r7, #56] 9740 0224 5B41 adcs r3, r3, r3 9741 0226 FB63 str r3, [r7, #60] 9742 0228 D7E90E23 ldrd r2, [r7, #56] 9743 022c 4146 mov r1, r8 9744 022e 5118 adds r1, r2, r1 9745 0230 3963 str r1, [r7, #48] 9746 0232 4946 mov r1, r9 9747 0234 4B41 adcs r3, r3, r1 9748 0236 7B63 str r3, [r7, #52] 9749 0238 4FF00002 mov r2, #0 9750 023c 4FF00003 mov r3, #0 9751 0240 D7E90CAB ldrd r10, [r7, #48] 9752 0244 5946 mov r1, fp 9753 0246 CB00 lsls r3, r1, #3 9754 0248 5146 mov r1, r10 9755 024a 43EA5173 orr r3, r3, r1, lsr #29 9756 024e 5146 mov r1, r10 9757 0250 CA00 lsls r2, r1, #3 9758 0252 1046 mov r0, r2 9759 0254 1946 mov r1, r3 9760 0256 0346 mov r3, r0 9761 0258 4246 mov r2, r8 9762 025a 9B18 adds r3, r3, r2 9763 025c C7F8B030 str r3, [r7, #176] 9764 0260 4B46 mov r3, r9 9765 0262 0A46 mov r2, r1 9766 0264 42EB0303 adc r3, r2, r3 9767 0268 C7F8B430 str r3, [r7, #180] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 259 9768 026c D7F8F430 ldr r3, [r7, #244] 9769 0270 5B68 ldr r3, [r3, #4] 9770 0272 0022 movs r2, #0 9771 0274 C7F8A830 str r3, [r7, #168] 9772 0278 C7F8AC20 str r2, [r7, #172] 9773 027c D7E92A12 ldrd r1, [r7, #168] 9774 0280 0B46 mov r3, r1 9775 0282 DB18 adds r3, r3, r3 9776 0284 BB62 str r3, [r7, #40] 9777 0286 1346 mov r3, r2 9778 0288 42EB0303 adc r3, r2, r3 9779 028c FB62 str r3, [r7, #44] 9780 028e D7E90A23 ldrd r2, [r7, #40] 9781 0292 D7E92C01 ldrd r0, [r7, #176] 9782 0296 FFF7FEFF bl __aeabi_uldivmod 9783 029a 0246 mov r2, r0 9784 029c 0B46 mov r3, r1 9785 029e 0D4B ldr r3, .L484+8 9786 02a0 A3FB0213 umull r1, r3, r3, r2 9787 02a4 5B09 lsrs r3, r3, #5 9788 02a6 6421 movs r1, #100 9789 02a8 01FB03F3 mul r3, r1, r3 9790 02ac D31A subs r3, r2, r3 9791 02ae DB00 lsls r3, r3, #3 9792 02b0 3233 adds r3, r3, #50 9793 02b2 084A ldr r2, .L484+8 9794 02b4 A2FB0323 umull r2, r3, r2, r3 9795 02b8 5B09 lsrs r3, r3, #5 9796 02ba 03F00702 and r2, r3, #7 9797 .loc 1 3731 10 9798 02be D7F8F430 ldr r3, [r7, #244] 9799 02c2 1B68 ldr r3, [r3] 9800 .loc 1 3731 28 9801 02c4 2244 add r2, r2, r4 9802 .loc 1 3731 26 9803 02c6 9A60 str r2, [r3, #8] 3732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); 3736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9804 .loc 1 3737 1 9805 02c8 05E1 b .L483 9806 .L485: 9807 02ca 00BF .align 2 9808 .L484: 9809 02cc 00100140 .word 1073811456 9810 02d0 00140140 .word 1073812480 9811 02d4 1F85EB51 .word 1374389535 9812 .L481: 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9813 .loc 1 3735 28 9814 02d8 D7F8FC30 ldr r3, [r7, #252] 9815 02dc 0022 movs r2, #0 9816 02de C7F8A030 str r3, [r7, #160] 9817 02e2 C7F8A420 str r2, [r7, #164] ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 260 9818 02e6 D7E92889 ldrd r8, [r7, #160] 9819 02ea 4246 mov r2, r8 9820 02ec 4B46 mov r3, r9 9821 02ee 9118 adds r1, r2, r2 9822 02f0 3962 str r1, [r7, #32] 9823 02f2 5B41 adcs r3, r3, r3 9824 02f4 7B62 str r3, [r7, #36] 9825 02f6 D7E90823 ldrd r2, [r7, #32] 9826 02fa 4146 mov r1, r8 9827 02fc 5418 adds r4, r2, r1 9828 02fe 4946 mov r1, r9 9829 0300 43EB0105 adc r5, r3, r1 9830 0304 4FF00002 mov r2, #0 9831 0308 4FF00003 mov r3, #0 9832 030c EB00 lsls r3, r5, #3 9833 030e 43EA5473 orr r3, r3, r4, lsr #29 9834 0312 E200 lsls r2, r4, #3 9835 0314 1446 mov r4, r2 9836 0316 1D46 mov r5, r3 9837 0318 4346 mov r3, r8 9838 031a E318 adds r3, r4, r3 9839 031c C7F89830 str r3, [r7, #152] 9840 0320 4B46 mov r3, r9 9841 0322 45EB0303 adc r3, r5, r3 9842 0326 C7F89C30 str r3, [r7, #156] 9843 032a D7F8F430 ldr r3, [r7, #244] 9844 032e 5B68 ldr r3, [r3, #4] 9845 0330 0022 movs r2, #0 9846 0332 C7F89030 str r3, [r7, #144] 9847 0336 C7F89420 str r2, [r7, #148] 9848 033a 4FF00002 mov r2, #0 9849 033e 4FF00003 mov r3, #0 9850 0342 D7E92445 ldrd r4, [r7, #144] 9851 0346 2946 mov r1, r5 9852 0348 8B00 lsls r3, r1, #2 9853 034a 2146 mov r1, r4 9854 034c 43EA9173 orr r3, r3, r1, lsr #30 9855 0350 2146 mov r1, r4 9856 0352 8A00 lsls r2, r1, #2 9857 0354 D7E92601 ldrd r0, [r7, #152] 9858 0358 FFF7FEFF bl __aeabi_uldivmod 9859 035c 0246 mov r2, r0 9860 035e 0B46 mov r3, r1 9861 0360 604B ldr r3, .L486 9862 0362 A3FB0223 umull r2, r3, r3, r2 9863 0366 5B09 lsrs r3, r3, #5 9864 0368 1C01 lsls r4, r3, #4 9865 036a D7F8FC30 ldr r3, [r7, #252] 9866 036e 0022 movs r2, #0 9867 0370 C7F88830 str r3, [r7, #136] 9868 0374 C7F88C20 str r2, [r7, #140] 9869 0378 D7E92289 ldrd r8, [r7, #136] 9870 037c 4246 mov r2, r8 9871 037e 4B46 mov r3, r9 9872 0380 9118 adds r1, r2, r2 9873 0382 B961 str r1, [r7, #24] 9874 0384 5B41 adcs r3, r3, r3 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 261 9875 0386 FB61 str r3, [r7, #28] 9876 0388 D7E90623 ldrd r2, [r7, #24] 9877 038c 4146 mov r1, r8 9878 038e 5118 adds r1, r2, r1 9879 0390 3961 str r1, [r7, #16] 9880 0392 4946 mov r1, r9 9881 0394 4B41 adcs r3, r3, r1 9882 0396 7B61 str r3, [r7, #20] 9883 0398 4FF00002 mov r2, #0 9884 039c 4FF00003 mov r3, #0 9885 03a0 D7E904AB ldrd r10, [r7, #16] 9886 03a4 5946 mov r1, fp 9887 03a6 CB00 lsls r3, r1, #3 9888 03a8 5146 mov r1, r10 9889 03aa 43EA5173 orr r3, r3, r1, lsr #29 9890 03ae 5146 mov r1, r10 9891 03b0 CA00 lsls r2, r1, #3 9892 03b2 1046 mov r0, r2 9893 03b4 1946 mov r1, r3 9894 03b6 0346 mov r3, r0 9895 03b8 4246 mov r2, r8 9896 03ba 9B18 adds r3, r3, r2 9897 03bc C7F88030 str r3, [r7, #128] 9898 03c0 4B46 mov r3, r9 9899 03c2 0A46 mov r2, r1 9900 03c4 42EB0303 adc r3, r2, r3 9901 03c8 C7F88430 str r3, [r7, #132] 9902 03cc D7F8F430 ldr r3, [r7, #244] 9903 03d0 5B68 ldr r3, [r3, #4] 9904 03d2 0022 movs r2, #0 9905 03d4 BB67 str r3, [r7, #120] 9906 03d6 FA67 str r2, [r7, #124] 9907 03d8 4FF00002 mov r2, #0 9908 03dc 4FF00003 mov r3, #0 9909 03e0 D7E91E89 ldrd r8, [r7, #120] 9910 03e4 4946 mov r1, r9 9911 03e6 8B00 lsls r3, r1, #2 9912 03e8 4146 mov r1, r8 9913 03ea 43EA9173 orr r3, r3, r1, lsr #30 9914 03ee 4146 mov r1, r8 9915 03f0 8A00 lsls r2, r1, #2 9916 03f2 D7E92001 ldrd r0, [r7, #128] 9917 03f6 FFF7FEFF bl __aeabi_uldivmod 9918 03fa 0246 mov r2, r0 9919 03fc 0B46 mov r3, r1 9920 03fe 394B ldr r3, .L486 9921 0400 A3FB0213 umull r1, r3, r3, r2 9922 0404 5B09 lsrs r3, r3, #5 9923 0406 6421 movs r1, #100 9924 0408 01FB03F3 mul r3, r1, r3 9925 040c D31A subs r3, r2, r3 9926 040e 1B01 lsls r3, r3, #4 9927 0410 3233 adds r3, r3, #50 9928 0412 344A ldr r2, .L486 9929 0414 A2FB0323 umull r2, r3, r2, r3 9930 0418 5B09 lsrs r3, r3, #5 9931 041a 03F0F003 and r3, r3, #240 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 262 9932 041e 1C44 add r4, r4, r3 9933 0420 D7F8FC30 ldr r3, [r7, #252] 9934 0424 0022 movs r2, #0 9935 0426 3B67 str r3, [r7, #112] 9936 0428 7A67 str r2, [r7, #116] 9937 042a D7E91C89 ldrd r8, [r7, #112] 9938 042e 4246 mov r2, r8 9939 0430 4B46 mov r3, r9 9940 0432 9118 adds r1, r2, r2 9941 0434 B960 str r1, [r7, #8] 9942 0436 5B41 adcs r3, r3, r3 9943 0438 FB60 str r3, [r7, #12] 9944 043a D7E90223 ldrd r2, [r7, #8] 9945 043e 4146 mov r1, r8 9946 0440 5118 adds r1, r2, r1 9947 0442 3960 str r1, [r7] 9948 0444 4946 mov r1, r9 9949 0446 4B41 adcs r3, r3, r1 9950 0448 7B60 str r3, [r7, #4] 9951 044a 4FF00002 mov r2, #0 9952 044e 4FF00003 mov r3, #0 9953 0452 D7E900AB ldrd r10, [r7] 9954 0456 5946 mov r1, fp 9955 0458 CB00 lsls r3, r1, #3 9956 045a 5146 mov r1, r10 9957 045c 43EA5173 orr r3, r3, r1, lsr #29 9958 0460 5146 mov r1, r10 9959 0462 CA00 lsls r2, r1, #3 9960 0464 1046 mov r0, r2 9961 0466 1946 mov r1, r3 9962 0468 0346 mov r3, r0 9963 046a 4246 mov r2, r8 9964 046c 9B18 adds r3, r3, r2 9965 046e BB66 str r3, [r7, #104] 9966 0470 4B46 mov r3, r9 9967 0472 0A46 mov r2, r1 9968 0474 42EB0303 adc r3, r2, r3 9969 0478 FB66 str r3, [r7, #108] 9970 047a D7F8F430 ldr r3, [r7, #244] 9971 047e 5B68 ldr r3, [r3, #4] 9972 0480 0022 movs r2, #0 9973 0482 3B66 str r3, [r7, #96] 9974 0484 7A66 str r2, [r7, #100] 9975 0486 4FF00002 mov r2, #0 9976 048a 4FF00003 mov r3, #0 9977 048e D7E91889 ldrd r8, [r7, #96] 9978 0492 4946 mov r1, r9 9979 0494 8B00 lsls r3, r1, #2 9980 0496 4146 mov r1, r8 9981 0498 43EA9173 orr r3, r3, r1, lsr #30 9982 049c 4146 mov r1, r8 9983 049e 8A00 lsls r2, r1, #2 9984 04a0 D7E91A01 ldrd r0, [r7, #104] 9985 04a4 FFF7FEFF bl __aeabi_uldivmod 9986 04a8 0246 mov r2, r0 9987 04aa 0B46 mov r3, r1 9988 04ac 0D4B ldr r3, .L486 ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 263 9989 04ae A3FB0213 umull r1, r3, r3, r2 9990 04b2 5B09 lsrs r3, r3, #5 9991 04b4 6421 movs r1, #100 9992 04b6 01FB03F3 mul r3, r1, r3 9993 04ba D31A subs r3, r2, r3 9994 04bc 1B01 lsls r3, r3, #4 9995 04be 3233 adds r3, r3, #50 9996 04c0 084A ldr r2, .L486 9997 04c2 A2FB0323 umull r2, r3, r2, r3 9998 04c6 5B09 lsrs r3, r3, #5 9999 04c8 03F00F02 and r2, r3, #15 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 10000 .loc 1 3735 10 10001 04cc D7F8F430 ldr r3, [r7, #244] 10002 04d0 1B68 ldr r3, [r3] 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 10003 .loc 1 3735 28 10004 04d2 2244 add r2, r2, r4 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 10005 .loc 1 3735 26 10006 04d4 9A60 str r2, [r3, #8] 10007 .L483: 10008 .loc 1 3737 1 10009 04d6 00BF nop 10010 04d8 07F58077 add r7, r7, #256 10011 .LCFI328: 10012 .cfi_def_cfa_offset 32 10013 04dc BD46 mov sp, r7 10014 .LCFI329: 10015 .cfi_def_cfa_register 13 10016 @ sp needed 10017 04de BDE8B08F pop {r4, r5, r7, r8, r9, r10, fp, pc} 10018 .L487: 10019 04e2 00BF .align 2 10020 .L486: 10021 04e4 1F85EB51 .word 1374389535 10022 .cfi_endproc 10023 .LFE295: 10025 .text 10026 .Letext0: 10027 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h" 10028 .file 4 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h" 10029 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f405xx.h" 10030 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 10031 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 10032 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 10033 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h" ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 264 DEFINED SYMBOLS *ABS*:00000000 stm32f4xx_hal_uart.c C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:20 .text.HAL_UART_Init:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:26 .text.HAL_UART_Init:00000000 HAL_UART_Init C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:642 .text.HAL_UART_MspInit:00000000 HAL_UART_MspInit C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9512 .text.UART_SetConfig:00000000 UART_SetConfig C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:136 .text.HAL_HalfDuplex_Init:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:142 .text.HAL_HalfDuplex_Init:00000000 HAL_HalfDuplex_Init C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:259 .text.HAL_LIN_Init:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:265 .text.HAL_LIN_Init:00000000 HAL_LIN_Init C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:400 .text.HAL_MultiProcessor_Init:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:406 .text.HAL_MultiProcessor_Init:00000000 HAL_MultiProcessor_Init C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:552 .text.HAL_UART_DeInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:558 .text.HAL_UART_DeInit:00000000 HAL_UART_DeInit C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:684 .text.HAL_UART_MspDeInit:00000000 HAL_UART_MspDeInit C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:636 .text.HAL_UART_MspInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:678 .text.HAL_UART_MspDeInit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:720 .text.HAL_UART_Transmit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:726 .text.HAL_UART_Transmit:00000000 HAL_UART_Transmit C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7794 .text.UART_WaitOnFlagUntilTimeout:00000000 UART_WaitOnFlagUntilTimeout C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:946 .text.HAL_UART_Receive:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:952 .text.HAL_UART_Receive:00000000 HAL_UART_Receive C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1196 .text.HAL_UART_Transmit_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1202 .text.HAL_UART_Transmit_IT:00000000 HAL_UART_Transmit_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1313 .text.HAL_UART_Receive_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1319 .text.HAL_UART_Receive_IT:00000000 HAL_UART_Receive_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7997 .text.UART_Start_Receive_IT:00000000 UART_Start_Receive_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1403 .text.HAL_UART_Transmit_DMA:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1409 .text.HAL_UART_Transmit_DMA:00000000 HAL_UART_Transmit_DMA C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1606 .text.HAL_UART_Transmit_DMA:000000f0 $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7119 .text.UART_DMATransmitCplt:00000000 UART_DMATransmitCplt C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7283 .text.UART_DMATxHalfCplt:00000000 UART_DMATxHalfCplt C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7679 .text.UART_DMAError:00000000 UART_DMAError C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1613 .text.HAL_UART_Receive_DMA:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1619 .text.HAL_UART_Receive_DMA:00000000 HAL_UART_Receive_DMA C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8099 .text.UART_Start_Receive_DMA:00000000 UART_Start_Receive_DMA C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1703 .text.HAL_UART_DMAPause:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:1709 .text.HAL_UART_DMAPause:00000000 HAL_UART_DMAPause C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2020 .text.HAL_UART_DMAResume:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2026 .text.HAL_UART_DMAResume:00000000 HAL_UART_DMAResume C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2322 .text.HAL_UART_DMAStop:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2328 .text.HAL_UART_DMAStop:00000000 HAL_UART_DMAStop C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8381 .text.UART_EndTxTransfer:00000000 UART_EndTxTransfer C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8477 .text.UART_EndRxTransfer:00000000 UART_EndRxTransfer C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2545 .text.HAL_UARTEx_ReceiveToIdle:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2551 .text.HAL_UARTEx_ReceiveToIdle:00000000 HAL_UARTEx_ReceiveToIdle C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2871 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:2877 .text.HAL_UARTEx_ReceiveToIdle_IT:00000000 HAL_UARTEx_ReceiveToIdle_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3045 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3051 .text.HAL_UARTEx_ReceiveToIdle_DMA:00000000 HAL_UARTEx_ReceiveToIdle_DMA C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3219 .text.HAL_UART_Abort:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3225 .text.HAL_UART_Abort:00000000 HAL_UART_Abort C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3638 .text.HAL_UART_AbortTransmit:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3644 .text.HAL_UART_AbortTransmit:00000000 HAL_UART_AbortTransmit C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3835 .text.HAL_UART_AbortReceive:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:3841 .text.HAL_UART_AbortReceive:00000000 HAL_UART_AbortReceive C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4145 .text.HAL_UART_Abort_IT:00000000 $t ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 265 C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4151 .text.HAL_UART_Abort_IT:00000000 HAL_UART_Abort_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6291 .text.HAL_UART_AbortCpltCallback:00000000 HAL_UART_AbortCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4612 .text.HAL_UART_Abort_IT:00000220 $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8738 .text.UART_DMATxAbortCallback:00000000 UART_DMATxAbortCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8831 .text.UART_DMARxAbortCallback:00000000 UART_DMARxAbortCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4618 .text.HAL_UART_AbortTransmit_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4624 .text.HAL_UART_AbortTransmit_IT:00000000 HAL_UART_AbortTransmit_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6333 .text.HAL_UART_AbortTransmitCpltCallback:00000000 HAL_UART_AbortTransmitCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4827 .text.HAL_UART_AbortTransmit_IT:000000e4 $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8924 .text.UART_DMATxOnlyAbortCallback:00000000 UART_DMATxOnlyAbortCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4832 .text.HAL_UART_AbortReceive_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:4838 .text.HAL_UART_AbortReceive_IT:00000000 HAL_UART_AbortReceive_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6375 .text.HAL_UART_AbortReceiveCpltCallback:00000000 HAL_UART_AbortReceiveCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:5158 .text.HAL_UART_AbortReceive_IT:00000160 $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8976 .text.UART_DMARxOnlyAbortCallback:00000000 UART_DMARxOnlyAbortCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:5163 .text.HAL_UART_IRQHandler:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:5169 .text.HAL_UART_IRQHandler:00000000 HAL_UART_IRQHandler C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9222 .text.UART_Receive_IT:00000000 UART_Receive_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6249 .text.HAL_UART_ErrorCallback:00000000 HAL_UART_ErrorCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6417 .text.HAL_UARTEx_RxEventCallback:00000000 HAL_UARTEx_RxEventCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:5816 .text.HAL_UART_IRQHandler:000003dc $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8686 .text.UART_DMAAbortOnError:00000000 UART_DMAAbortOnError C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:5821 .text.HAL_UART_IRQHandler:000003e0 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9032 .text.UART_Transmit_IT:00000000 UART_Transmit_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9168 .text.UART_EndTransmit_IT:00000000 UART_EndTransmit_IT C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6075 .text.HAL_UART_TxCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6081 .text.HAL_UART_TxCpltCallback:00000000 HAL_UART_TxCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6117 .text.HAL_UART_TxHalfCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6123 .text.HAL_UART_TxHalfCpltCallback:00000000 HAL_UART_TxHalfCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6159 .text.HAL_UART_RxCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6165 .text.HAL_UART_RxCpltCallback:00000000 HAL_UART_RxCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6201 .text.HAL_UART_RxHalfCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6207 .text.HAL_UART_RxHalfCpltCallback:00000000 HAL_UART_RxHalfCpltCallback C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6243 .text.HAL_UART_ErrorCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6285 .text.HAL_UART_AbortCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6327 .text.HAL_UART_AbortTransmitCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6369 .text.HAL_UART_AbortReceiveCpltCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6411 .text.HAL_UARTEx_RxEventCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6455 .text.HAL_LIN_SendBreak:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6461 .text.HAL_LIN_SendBreak:00000000 HAL_LIN_SendBreak C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6576 .text.HAL_MultiProcessor_EnterMuteMode:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6582 .text.HAL_MultiProcessor_EnterMuteMode:00000000 HAL_MultiProcessor_EnterMuteMode C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6697 .text.HAL_MultiProcessor_ExitMuteMode:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6703 .text.HAL_MultiProcessor_ExitMuteMode:00000000 HAL_MultiProcessor_ExitMuteMode C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6818 .text.HAL_HalfDuplex_EnableTransmitter:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6824 .text.HAL_HalfDuplex_EnableTransmitter:00000000 HAL_HalfDuplex_EnableTransmitter C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6910 .text.HAL_HalfDuplex_EnableReceiver:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:6916 .text.HAL_HalfDuplex_EnableReceiver:00000000 HAL_HalfDuplex_EnableReceiver C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7002 .text.HAL_UART_GetState:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7008 .text.HAL_UART_GetState:00000000 HAL_UART_GetState C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7069 .text.HAL_UART_GetError:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7075 .text.HAL_UART_GetError:00000000 HAL_UART_GetError C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7114 .text.UART_DMATransmitCplt:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7278 .text.UART_DMATxHalfCplt:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7322 .text.UART_DMAReceiveCplt:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7327 .text.UART_DMAReceiveCplt:00000000 UART_DMAReceiveCplt C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7611 .text.UART_DMARxHalfCplt:00000000 $t ARM GAS C:\Users\10728\AppData\Local\Temp\cc19ESHk.s page 266 C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7616 .text.UART_DMARxHalfCplt:00000000 UART_DMARxHalfCplt C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7674 .text.UART_DMAError:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7789 .text.UART_WaitOnFlagUntilTimeout:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:7991 .text.UART_Start_Receive_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8093 .text.UART_Start_Receive_DMA:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8369 .text.UART_Start_Receive_DMA:00000130 $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8376 .text.UART_EndTxTransfer:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8472 .text.UART_EndRxTransfer:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8681 .text.UART_DMAAbortOnError:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8733 .text.UART_DMATxAbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8826 .text.UART_DMARxAbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8919 .text.UART_DMATxOnlyAbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:8971 .text.UART_DMARxOnlyAbortCallback:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9027 .text.UART_Transmit_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9163 .text.UART_EndTransmit_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9217 .text.UART_Receive_IT:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9507 .text.UART_SetConfig:00000000 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9809 .text.UART_SetConfig:000002cc $d C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:9814 .text.UART_SetConfig:000002d8 $t C:\Users\10728\AppData\Local\Temp\cc19ESHk.s:10021 .text.UART_SetConfig:000004e4 $d UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_GetError HAL_DMA_Abort_IT __aeabi_uldivmod HAL_RCC_GetPCLK2Freq HAL_RCC_GetPCLK1Freq