ARM GAS /tmp/ccD7nRW1.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 1 11 .eabi_attribute 34, 1 12 .eabi_attribute 18, 4 13 .file "stm32f4xx_hal_uart.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .section .text.UART_EndTxTransfer,"ax",%progbits 18 .align 1 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv4-sp-d16 24 UART_EndTxTransfer: 25 .LFB174: 26 .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 **** @verbatim 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### How to use this driver ##### 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The UART HAL driver can be used as follows: 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) Enable the USARTx interface clock. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) UART pins configuration: 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs. 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure these UART pins (TX as alternate function pull-up, RX as alternate func 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs): 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority. 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle. 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs): 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx stream. 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the DMAx interface clock. ARM GAS /tmp/ccD7nRW1.s page 2 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Tx/Rx parameters. 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx stream. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** interrupt on the DMA Tx/Rx stream. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority and enable the NVIC USART IRQ handle 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (used for last byte sending completion detection in DMA non circular mode) 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Hardware 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** flow control and Mode(Receiver/Transmitter) in the huart Init structure. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_Init() API. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API. 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the LIN mode, initialize the UART registers by calling the HAL_LIN_Init() API. 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the Multi-Processor mode, initialize the UART registers by calling 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_MultiProcessor_Init() API. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) The specific UART interrupts (Transmission complete interrupt, 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RXNE interrupt and Error Interrupts) will be managed using the macros 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() inside the transmit 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process. 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) These APIs (HAL_UART_Init() and HAL_HalfDuplex_Init()) configure also the 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** low level Hardware GPIO, CLOCK, CORTEX...etc) by calling the customized 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit() API. 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Callback registration ##### 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================== 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks. 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 **** Use Function @ref HAL_UART_RegisterCallback() to register a user callback. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Function @ref HAL_UART_RegisterCallback() allows to register following callbacks: 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and a pointer to the user callback function. 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 3 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use function @ref HAL_UART_UnRegisterCallback() to reset a callback to the default 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** weak (surcharged) function. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @ref HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the Callback ID. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function allows to reset following callbacks: 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** By default, after the @ref HAL_UART_Init() and when the state is HAL_UART_STATE_RESET 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions: 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** examples @ref HAL_UART_TxCpltCallback(), @ref HAL_UART_RxHalfCpltCallback(). 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the @ref HAL_UART_Init() 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and @ref HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the @ref HAL_UART_Init() and @ref HAL_UART_DeInit() 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand). 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit. 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using @ref HAL_UART_RegisterCallback() before calling @ref HAL_UART_DeInit() 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or @ref HAL_UART_Init() function. 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** not defined, the callback registration feature is not available 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and weak (surcharged) callbacks are used. 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Three operation modes are available within this driver : 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Polling mode IO operation *** 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================= 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in blocking mode using HAL_UART_Transmit() 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in blocking mode using HAL_UART_Receive() 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Interrupt mode IO operation *** 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 **** (+) Send an amount of data in non blocking mode using HAL_UART_Transmit_IT() 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode using HAL_UART_Receive_IT() ARM GAS /tmp/ccD7nRW1.s page 4 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** DMA mode IO operation *** 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================== 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode (DMA) using HAL_UART_Transmit_DMA() 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of half transfer HAL_UART_TxHalfCpltCallback is executed and user ca 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxHalfCpltCallback 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode (DMA) using HAL_UART_Receive_DMA() 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of half transfer HAL_UART_RxHalfCpltCallback is executed and user can 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxHalfCpltCallback 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 **** (+) Pause the DMA Transfer using HAL_UART_DMAPause() 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Resume the DMA Transfer using HAL_UART_DMAResume() 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Stop the DMA Transfer using HAL_UART_DMAStop() 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** UART HAL driver macros list *** 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================= 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Below the list of most used macros in UART HAL driver. 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE: Enable the UART peripheral 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE: Disable the UART peripheral 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_FLAG : Check whether the specified UART flag is set or not 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_CLEAR_FLAG : Clear the specified UART pending flag 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE_IT: Enable the specified UART interrupt 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE_IT: Disable the specified UART interrupt 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_IT_SOURCE: Check whether the specified UART interrupt has occurred or not 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) You can refer to the UART HAL driver header file for more useful macros 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) Additionnal remark: If the parity is enabled, then the MSB bit of the data written 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the possible UART frame formats are as listed in the following table: 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | M bit | PCE bit | UART frame | 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------------------|---------------------------------------| 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 0 | | SB | 8 bit data | STB | | 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 1 | | SB | 7 bit data | PB | STB | | 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 0 | | SB | 9 bit data | STB | | 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 1 | | SB | 8 bit data | PB | STB | | 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ ARM GAS /tmp/ccD7nRW1.s page 5 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @attention 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *

© Copyright (c) 2016 STMicroelectronics. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * All rights reserved.

209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This software component is licensed by ST under BSD 3-Clause license, 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the "License"; You may not use this file except in compliance with the 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * License. You may obtain a copy of the License at: 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * opensource.org/licenses/BSD-3-Clause 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/ 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #include "stm32f4xx_hal.h" 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup STM32F4xx_HAL_Driver 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 **** 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART UART 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief HAL UART module driver 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/ 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/ 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Constants 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private macro -------------------------------------------------------------*/ 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/ 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/ 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions UART Private Functions 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart); 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart); 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart); 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma); 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); ARM GAS /tmp/ccD7nRW1.s page 6 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart); 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart); 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart); 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart); 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 **** * @} 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Exported functions ---------------------------------------------------------*/ 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions 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 **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialization and Configuration functions 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Initialization and Configuration 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 **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in asynchronous mode. 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) For the asynchronous mode only these parameters can be configured: 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Baud Rate 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Word Length 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Stop Bit 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** please refer to Reference manual for possible UART frame formats. 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Hardware flow control 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Receiver/transmitter modes 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Over Sampling Method 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init() and HAL_MultiProcessor_Init() APIs 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, LIN and Multi-Processor configurat 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** procedures (details for the procedures are available in reference manual 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (RM0430 for STM32F4X3xx MCUs and RM0402 for STM32F412xx MCUs 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0383 for STM32F411xC/E MCUs and RM0401 for STM32F410xx MCUs 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0090 for STM32F4X5xx/STM32F4X7xx/STM32F429xx/STM32F439xx MCUs 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0390 for STM32F446xx MCUs and RM0386 for STM32F469xx/STM32F479xx MCUs)). 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 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 **** * @brief Initializes the UART mode according to the specified parameters in 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the UART_InitTypeDef and create the associated handle. 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) ARM GAS /tmp/ccD7nRW1.s page 7 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The hardware flow control is available only for USART1, USART2, USART3 and USART6 */ 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared: 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ ARM GAS /tmp/ccD7nRW1.s page 8 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the half-duplex mode according to the specified 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ ARM GAS /tmp/ccD7nRW1.s page 9 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared: 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the LIN mode according to the specified 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length. 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_10B: 10-bit break detection 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_11B: 11-bit break detection 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the LIN UART instance */ 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Break detection length parameter */ 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 10 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared: 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - CLKEN bits in the USART_CR2 register, 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */ 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the Multi-Processor mode according to the specified 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Address USART address 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param WakeUpMethod specifies the USART wake-up method. 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_IDLELINE: Wake-up by an idle line detection 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_ADDRESSMARK: Wake-up by an address mark 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ ARM GAS /tmp/ccD7nRW1.s page 11 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Address & wake up method parameters */ 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address)); 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Multi-Processor mode, the following bits must be kept cleared: 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register */ 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART address node */ 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */ ARM GAS /tmp/ccD7nRW1.s page 12 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** * @brief DeInitializes the UART peripheral. 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the Peripheral */ 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL) 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback(huart); 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspDeInit(huart); 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlock */ 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 13 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP Init. 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspInit could be implemented in the user file 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP DeInit. 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspDeInit could be implemented in the user file 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Callback 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback pointer to the Callback function 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 14 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback; 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = pCallback; 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = pCallback; 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = pCallback; 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = pCallback; 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback; 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback; 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback; 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ ARM GAS /tmp/ccD7nRW1.s page 15 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 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 **** } 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET) 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Unregister an UART Callback 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status ARM GAS /tmp/ccD7nRW1.s page 16 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState) 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak Abort 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak Abort 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ ARM GAS /tmp/ccD7nRW1.s page 17 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 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 **** } 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState) 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Transmit and Receive functions 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### IO operation functions ##### 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and Half duplex data transfers. 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two modes of transfer: 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode. ARM GAS /tmp/ccD7nRW1.s page 18 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** after finishing transfer. 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or DMA, these API's return the HAL status. 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using DMA mode. 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will be executed respectively at the end of the transmit or receive process 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API's are : 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit() 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive() 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are : 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT() 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_IT() 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_IRQHandler() 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are : 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA() 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA() 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAPause() 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAResume() 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAStop() 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback() 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback() 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback() 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback() 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback() 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's : 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort() 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit() 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive() 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort_IT() 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT() 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT() 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 987: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 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback() 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback() 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback() 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Errors are handled as follows : 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er 995: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 996: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 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_ErrorCallback() user callback is executed. Transfer is kept ongoing on UART 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user. 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. 1001: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 ARM GAS /tmp/ccD7nRW1.s page 19 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit 1004: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. 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 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 Sends an amount of data in blocking mode. 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint3 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout managment */ 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount--; 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) pData; 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (*tmp & (uint16_t)0x01FF); 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else ARM GAS /tmp/ccD7nRW1.s page 20 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (*pData++ & (uint8_t)0xFF); 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in blocking mode. 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); ARM GAS /tmp/ccD7nRW1.s page 21 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout managment */ 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the remain data to be received */ 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) pData; 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF); 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pData++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 22 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit data register empty Interrupt */ 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode. 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status ARM GAS /tmp/ccD7nRW1.s page 23 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_PE); 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Data Register not empty Interrupt */ 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be sent 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS /tmp/ccD7nRW1.s page 24 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; 1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; 1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError; 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART transmit DMA stream */ 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData; 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); 1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the TC flag in the SR register by writing 0 to it */ 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit 1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode. 1337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer 1340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data to be received 1341: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. 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ ARM GAS /tmp/ccD7nRW1.s page 25 1344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; 1367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; 1370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError; 1373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA stream */ 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData; 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1381: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 sec 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 1383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit 1394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 26 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Pauses the DMA Transfer. 1407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request */ 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request */ 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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); 1438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Resumes the DMA Transfer. 1444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Tx request */ 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 27 1458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer*/ 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 1463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reenable PE and ERR (Frame error, noise error, overrun error) interrupts */ 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 1467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Rx request */ 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Stops the DMA Transfer. 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 1490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the correspond call back is executed HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream */ 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx); 1503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 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 **** /* Stop UART DMA Rx request if ongoing */ 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) ARM GAS /tmp/ccD7nRW1.s page 28 1515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx); 1517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 Abort ongoing transfers (blocking mode). 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 1528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_ 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream: use blocking DMA Abort API (no callback) */ 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 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 **** } 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 29 1572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream: use blocking DMA Abort API (no callback) */ 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** /* Reset Tx and Rx transfer counters */ 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState and huart->gState to Ready */ 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 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 **** /** 1607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode). 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 1610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 1622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ ARM GAS /tmp/ccD7nRW1.s page 30 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (blocking mode). 1659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 1661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccD7nRW1.s page 31 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode). 1711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 1713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1716: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) 1717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 1719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 1720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 1721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_ 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1731: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 1732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** before any call to DMA Abort functions */ 1733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Tx Handle is valid */ 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else ARM GAS /tmp/ccD7nRW1.s page 32 1743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Rx Handle is valid */ 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 1751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 1755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable DMA Tx at UART level */ 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use non blocking DMA Abort API (callback) */ 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised : 1772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 1776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use non blocking DMA Abort API (callback) */ 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised : 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 1799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 33 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 1806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback * 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (AbortCplt == 0x01U) 1812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 1825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 1826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 1827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 1828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 1829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 1831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode). 1839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 1841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 1843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1844: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) 1845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 1848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 1855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ ARM GAS /tmp/ccD7nRW1.s page 34 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 1870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx); 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 1884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 1885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 1887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 1903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 1905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 1906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 1908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 35 1914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode). 1916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1921: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) 1922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 1924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 1925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 1926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 1943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; 1945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 1948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 1951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 1962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 1963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 1965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 1966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 36 1971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 1980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 1981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 1982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 1983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 1986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART interrupt request. 1994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 1997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If no error occurs */ 2007: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)); 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 2009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -------------------------------------------------*/ 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) 2012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If some errors occur */ 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE 2020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART parity error interrupt occurred ----------------------------------*/ 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET)) 2023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 2025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART noise error interrupt occurred -----------------------------------*/ ARM GAS /tmp/ccD7nRW1.s page 37 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 2029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 2031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART frame error interrupt occurred -----------------------------------*/ 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 2037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Over-Run interrupt occurred --------------------------------------*/ 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_ORE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 2041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE; 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 **** /* Call UART Error Call back function if need be --------------------------*/ 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 2047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -----------------------------------------------*/ 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 2052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Overrun error occurs, or if any error occurs in DMA mode reception, 2055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** consider error as blocking */ 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 2058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Blocking error : transfer is aborted 2060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 2063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly XferAbortCallback function in case of error */ 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 2079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccD7nRW1.s page 38 2085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 2108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error is notified to user through user error callback */ 2109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 2122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/ 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET)) 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Transmit_IT(huart); 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter end --------------------------------------------*/ 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET)) 2132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTransmit_IT(huart); 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 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 **** * @brief Tx Transfer completed callbacks. 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. ARM GAS /tmp/ccD7nRW1.s page 39 2142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxCpltCallback could be implemented in the user file 2150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Half Transfer completed callbacks. 2155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback could be implemented in the user file 2165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Transfer completed callbacks. 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxCpltCallback could be implemented in the user file 2180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Half Transfer completed callbacks. 2185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback could be implemented in the user file 2195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** ARM GAS /tmp/ccD7nRW1.s page 40 2199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART error callbacks. 2200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_ErrorCallback could be implemented in the user file 2210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file. 2225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** * @brief UART Abort Complete callback. 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. 2240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback. 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. 2255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ ARM GAS /tmp/ccD7nRW1.s page 41 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions 2263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART control functions 2264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral Control functions ##### 2268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 2270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART: 2271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API can be helpful to transmit the break character. 2272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API can be helpful to enter the UART in mute mode. 2273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_ExitMuteMode() API can be helpful to exit the UART mute mode by software 2274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API to enable the UART transmitter and disables the UART 2275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API to enable the UART receiver and disables the UART trans 2276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Transmits break characters. 2283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Send break characters */ 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_SBK); 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enters the UART in mute mode. 2310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status ARM GAS /tmp/ccD7nRW1.s page 42 2313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART mute mode by setting the RWU bit in the CR1 register */ 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_RWU); 2326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Exits the UART mute mode: wake up software. 2337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */ 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); 2353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART transmitter and disables the UART receiver. 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 43 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 2379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2383: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 */ 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_TE; 2385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART receiver and disables the UART transmitter. 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 2406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 2414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 2417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2418: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 */ 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_RE; 2420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 2423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ ARM GAS /tmp/ccD7nRW1.s page 44 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Errors functions 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART State and Errors functions 2438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral State and Errors functions ##### 2442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 2444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to return the State of 2445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART communication process, return Peripheral Errors occurred during communication 2446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** process 2447: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 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetError() check in run-time errors that could be occurred during communication. 2449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Returns the UART state. 2456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL state 2459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart) 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 2465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2); 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 **** /** 2470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Return the UART error code 2471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART. 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval UART Error Code 2474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart) 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 45 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions 2489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values. 2494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval none 2496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the UART Callback settings */ 2501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb 2503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC 2504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba 2506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa 2507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback. 2515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 2524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by setting the DMAT bit 2528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 2533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Circular mode */ 2536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 2540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); ARM GAS /tmp/ccD7nRW1.s page 46 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 2544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback 2550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 2560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart); 2561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart); 2564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process complete callback. 2569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0U; 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by setting the DMAR bit 2586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 2595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); ARM GAS /tmp/ccD7nRW1.s page 47 2598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 DMA UART receive process half complete callback 2603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA 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 **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/ 2613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart); 2614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/ 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart); 2617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication error callback. 2622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma) 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 2637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 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 **** huart->ErrorCode |= HAL_UART_ERROR_DMA; 2648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccD7nRW1.s page 48 2655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART Communication Timeout. 2659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Flag specifies the UART flag to check. 2662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Status The new Flag status (SET or RESET). 2663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Tickstart Tick start value 2664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */ 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) 2674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((Timeout == 0U) || ((HAL_GetTick() - Tickstart) > Timeout)) 2676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for t 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 2688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart) 2700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 27 .loc 1 2700 0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 .LVL0: 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 33 .loc 1 2702 0 34 0000 0268 ldr r2, [r0] 35 0002 D368 ldr r3, [r2, #12] ARM GAS /tmp/ccD7nRW1.s page 49 36 0004 23F0C003 bic r3, r3, #192 37 0008 D360 str r3, [r2, #12] 2703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 2705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 38 .loc 1 2705 0 39 000a 2023 movs r3, #32 40 000c 80F83930 strb r3, [r0, #57] 41 0010 7047 bx lr 42 .cfi_endproc 43 .LFE174: 45 .section .text.UART_EndRxTransfer,"ax",%progbits 46 .align 1 47 .syntax unified 48 .thumb 49 .thumb_func 50 .fpu fpv4-sp-d16 52 UART_EndRxTransfer: 53 .LFB175: 2706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp 2710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 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 **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart) 2714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 54 .loc 1 2714 0 55 .cfi_startproc 56 @ args = 0, pretend = 0, frame = 0 57 @ frame_needed = 0, uses_anonymous_args = 0 58 @ link register save eliminated. 59 .LVL1: 2715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 60 .loc 1 2716 0 61 0000 0268 ldr r2, [r0] 62 0002 D368 ldr r3, [r2, #12] 63 0004 23F49073 bic r3, r3, #288 64 0008 D360 str r3, [r2, #12] 2717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 65 .loc 1 2717 0 66 000a 0268 ldr r2, [r0] 67 000c 5369 ldr r3, [r2, #20] 68 000e 23F00103 bic r3, r3, #1 69 0012 5361 str r3, [r2, #20] 2718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 2720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 70 .loc 1 2720 0 71 0014 2023 movs r3, #32 72 0016 80F83A30 strb r3, [r0, #58] 73 001a 7047 bx lr 74 .cfi_endproc 75 .LFE175: 77 .section .text.UART_Transmit_IT,"ax",%progbits ARM GAS /tmp/ccD7nRW1.s page 50 78 .align 1 79 .syntax unified 80 .thumb 81 .thumb_func 82 .fpu fpv4-sp-d16 84 UART_Transmit_IT: 85 .LFB181: 2721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error 2725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence). 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** * @brief DMA UART Tx communication abort callback, when initiated by user 2747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 2748: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 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle. 2750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 2759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL) 2764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; ARM GAS /tmp/ccD7nRW1.s page 51 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 2784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 2787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user 2792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 2793: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 2794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle. 2795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 2804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL) 2809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ ARM GAS /tmp/ccD7nRW1.s page 52 2828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 2829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 2832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to 2837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques 2839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution). 2840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 2860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 DMA UART Rx communication abort callback, when initiated by user by a call to 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) 2866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques 2867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution). 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 2869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); ARM GAS /tmp/ccD7nRW1.s page 53 2885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 2888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 2893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) 2898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 86 .loc 1 2898 0 87 .cfi_startproc 88 @ args = 0, pretend = 0, frame = 0 89 @ frame_needed = 0, uses_anonymous_args = 0 90 @ link register save eliminated. 91 .LVL2: 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 2902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 92 .loc 1 2902 0 93 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 94 0004 DBB2 uxtb r3, r3 95 0006 212B cmp r3, #33 96 0008 01D0 beq .L10 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) huart->pTxBuffPtr; 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 2909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 1U; 2915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); 2920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->TxXferCount == 0U) 2923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); 2926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TC); 2929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; ARM GAS /tmp/ccD7nRW1.s page 54 2931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 97 .loc 1 2934 0 98 000a 0220 movs r0, #2 99 .LVL3: 100 000c 7047 bx lr 101 .LVL4: 102 .L10: 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 103 .loc 1 2904 0 104 000e 8368 ldr r3, [r0, #8] 105 0010 B3F5805F cmp r3, #4096 106 0014 17D0 beq .L11 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 107 .loc 1 2919 0 108 0016 0268 ldr r2, [r0] 109 0018 036A ldr r3, [r0, #32] 110 001a 591C adds r1, r3, #1 111 001c 0162 str r1, [r0, #32] 112 001e 1B78 ldrb r3, [r3] @ zero_extendqisi2 113 0020 5360 str r3, [r2, #4] 114 .L7: 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 115 .loc 1 2922 0 116 0022 C38C ldrh r3, [r0, #38] 117 0024 9BB2 uxth r3, r3 118 0026 013B subs r3, r3, #1 119 0028 9BB2 uxth r3, r3 120 002a C384 strh r3, [r0, #38] @ movhi 121 002c DBB9 cbnz r3, .L9 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 122 .loc 1 2925 0 123 002e 0268 ldr r2, [r0] 124 0030 D368 ldr r3, [r2, #12] 125 0032 23F08003 bic r3, r3, #128 126 0036 D360 str r3, [r2, #12] 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 127 .loc 1 2928 0 128 0038 0268 ldr r2, [r0] 129 003a D368 ldr r3, [r2, #12] 130 003c 43F04003 orr r3, r3, #64 131 0040 D360 str r3, [r2, #12] 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 132 .loc 1 2930 0 133 0042 0020 movs r0, #0 134 .LVL5: 135 0044 7047 bx lr 136 .LVL6: 137 .L11: 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 138 .loc 1 2906 0 139 0046 036A ldr r3, [r0, #32] 140 .LVL7: 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 141 .loc 1 2907 0 ARM GAS /tmp/ccD7nRW1.s page 55 142 0048 0268 ldr r2, [r0] 143 004a 1B88 ldrh r3, [r3] 144 .LVL8: 145 004c C3F30803 ubfx r3, r3, #0, #9 146 0050 5360 str r3, [r2, #4] 147 .LVL9: 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 148 .loc 1 2908 0 149 0052 0369 ldr r3, [r0, #16] 150 0054 1BB9 cbnz r3, .L6 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 151 .loc 1 2910 0 152 0056 036A ldr r3, [r0, #32] 153 0058 0233 adds r3, r3, #2 154 005a 0362 str r3, [r0, #32] 155 005c E1E7 b .L7 156 .L6: 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 157 .loc 1 2914 0 158 005e 036A ldr r3, [r0, #32] 159 0060 0133 adds r3, r3, #1 160 0062 0362 str r3, [r0, #32] 161 0064 DDE7 b .L7 162 .L9: 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 163 .loc 1 2930 0 164 0066 0020 movs r0, #0 165 .LVL10: 2935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 166 .loc 1 2936 0 167 0068 7047 bx lr 168 .cfi_endproc 169 .LFE181: 171 .section .text.UART_SetConfig,"ax",%progbits 172 .align 1 173 .syntax unified 174 .thumb 175 .thumb_func 176 .fpu fpv4-sp-d16 178 UART_SetConfig: 179 .LFB184: 2937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Wraps up transmission in non blocking mode. 2940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TC); 2948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */ 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 56 2952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 2954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); 2955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode 2965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 2975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 2977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint16_t *) huart->pRxBuffPtr; 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 2980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 2983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *tmp = (uint16_t)(huart->Instance->DR & (uint16_t)0x00FF); 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 2988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 2993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 2995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *huart->pRxBuffPtr++ = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 2999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** if (--huart->RxXferCount == 0U) 3003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Data Register not empty Interrupt */ 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); 3006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt */ 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_PE); ARM GAS /tmp/ccD7nRW1.s page 57 3009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); 3012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 3022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 3031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 Configures the UART peripheral. 3036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART 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_SetConfig(UART_HandleTypeDef *huart) 3041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 180 .loc 1 3041 0 181 .cfi_startproc 182 @ args = 0, pretend = 0, frame = 0 183 @ frame_needed = 0, uses_anonymous_args = 0 184 .LVL11: 185 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 186 .LCFI0: 187 .cfi_def_cfa_offset 32 188 .cfi_offset 4, -32 189 .cfi_offset 5, -28 190 .cfi_offset 6, -24 191 .cfi_offset 7, -20 192 .cfi_offset 8, -16 193 .cfi_offset 9, -12 194 .cfi_offset 10, -8 195 .cfi_offset 14, -4 196 0004 0446 mov r4, r0 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg; 3043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); 3046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 3047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 3048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); ARM GAS /tmp/ccD7nRW1.s page 58 3049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/ 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** according to huart->Init.StopBits value */ 3053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 197 .loc 1 3053 0 198 0006 0268 ldr r2, [r0] 199 0008 1369 ldr r3, [r2, #16] 200 000a 23F44053 bic r3, r3, #12288 201 000e C168 ldr r1, [r0, #12] 202 0010 0B43 orrs r3, r3, r1 203 0012 1361 str r3, [r2, #16] 3054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 3056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Word Length, Parity and mode: 3057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the M bits according to huart->Init.WordLength value 3058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set PCE and PS bits according to huart->Init.Parity value 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set TE and RE bits according to huart->Init.Mode value 3060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set OVER8 bit according to huart->Init.OverSampling value */ 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O 204 .loc 1 3062 0 205 0014 8368 ldr r3, [r0, #8] 206 0016 0269 ldr r2, [r0, #16] 207 0018 1343 orrs r3, r3, r2 208 001a 4269 ldr r2, [r0, #20] 209 001c 1343 orrs r3, r3, r2 210 001e C269 ldr r2, [r0, #28] 211 0020 1343 orrs r3, r3, r2 212 .LVL12: 3063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, 213 .loc 1 3063 0 214 0022 0168 ldr r1, [r0] 215 0024 CA68 ldr r2, [r1, #12] 216 0026 22F41642 bic r2, r2, #38400 217 002a 22F00C02 bic r2, r2, #12 218 002e 1343 orrs r3, r3, r2 219 .LVL13: 220 0030 CB60 str r3, [r1, #12] 221 .LVL14: 3064: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 | 3065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg); 3066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/ 3068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */ 3069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); 222 .loc 1 3069 0 223 0032 0268 ldr r2, [r0] 224 0034 5369 ldr r3, [r2, #20] 225 0036 23F44073 bic r3, r3, #768 226 003a 8169 ldr r1, [r0, #24] 227 003c 0B43 orrs r3, r3, r1 228 003e 5361 str r3, [r2, #20] 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Over Sampling */ 3072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 229 .loc 1 3072 0 ARM GAS /tmp/ccD7nRW1.s page 59 230 0040 C369 ldr r3, [r0, #28] 231 0042 B3F5004F cmp r3, #32768 232 0046 62D0 beq .L20 3073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/ 3075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6) 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6)) 3077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate); 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1) 3082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate); 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */ 3086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate); 3089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/ 3094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6) 3095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6)) 233 .loc 1 3095 0 234 0048 D0F80080 ldr r8, [r0] 235 004c BB4B ldr r3, .L21 236 004e 9845 cmp r8, r3 237 0050 00F01B81 beq .L17 238 .loc 1 3095 0 is_stmt 0 discriminator 1 239 0054 03F58063 add r3, r3, #1024 240 0058 9845 cmp r8, r3 241 005a 00F01681 beq .L17 3096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate); 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1) 3101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate); 3103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */ 3105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate); 242 .loc 1 3107 0 is_stmt 1 243 005e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 244 .LVL15: 245 0062 00EB8000 add r0, r0, r0, lsl #2 246 0066 00EB8000 add r0, r0, r0, lsl #2 247 006a 6568 ldr r5, [r4, #4] 248 006c AD00 lsls r5, r5, #2 249 006e B0FBF5F5 udiv r5, r0, r5 250 0072 B34F ldr r7, .L21+4 251 0074 A7FB0535 umull r3, r5, r7, r5 ARM GAS /tmp/ccD7nRW1.s page 60 252 0078 6D09 lsrs r5, r5, #5 253 007a 2E01 lsls r6, r5, #4 254 007c FFF7FEFF bl HAL_RCC_GetPCLK1Freq 255 .LVL16: 256 0080 00EB8000 add r0, r0, r0, lsl #2 257 0084 00EB8000 add r0, r0, r0, lsl #2 258 0088 6568 ldr r5, [r4, #4] 259 008a AD00 lsls r5, r5, #2 260 008c B0FBF5FA udiv r10, r0, r5 261 0090 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 262 .LVL17: 263 0094 00EB8000 add r0, r0, r0, lsl #2 264 0098 00EB8000 add r0, r0, r0, lsl #2 265 009c 6568 ldr r5, [r4, #4] 266 009e AD00 lsls r5, r5, #2 267 00a0 B0FBF5F5 udiv r5, r0, r5 268 00a4 A7FB0535 umull r3, r5, r7, r5 269 00a8 6D09 lsrs r5, r5, #5 270 00aa 4FF06409 mov r9, #100 271 00ae 09FB15A5 mls r5, r9, r5, r10 272 00b2 2D01 lsls r5, r5, #4 273 00b4 3235 adds r5, r5, #50 274 00b6 A7FB0535 umull r3, r5, r7, r5 275 00ba 6D09 lsrs r5, r5, #5 276 00bc 05F0F005 and r5, r5, #240 277 00c0 3544 add r5, r5, r6 278 00c2 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 279 .LVL18: 280 00c6 00EB8000 add r0, r0, r0, lsl #2 281 00ca 00EB8000 add r0, r0, r0, lsl #2 282 00ce 6668 ldr r6, [r4, #4] 283 00d0 B600 lsls r6, r6, #2 284 00d2 B0FBF6F6 udiv r6, r0, r6 285 00d6 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 286 .LVL19: 287 00da 00EB8000 add r0, r0, r0, lsl #2 288 00de 00EB8000 add r0, r0, r0, lsl #2 289 00e2 6368 ldr r3, [r4, #4] 290 00e4 9B00 lsls r3, r3, #2 291 00e6 B0FBF3F0 udiv r0, r0, r3 292 00ea A7FB0030 umull r3, r0, r7, r0 293 00ee 4009 lsrs r0, r0, #5 294 00f0 09FB1069 mls r9, r9, r0, r6 295 00f4 4FEA0919 lsl r9, r9, #4 296 00f8 09F13209 add r9, r9, #50 297 00fc A7FB0937 umull r3, r7, r7, r9 298 0100 C7F34317 ubfx r7, r7, #5, #4 299 0104 2F44 add r7, r7, r5 300 0106 C8F80870 str r7, [r8, #8] 301 010a BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 302 .LVL20: 303 .L20: 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 304 .loc 1 3076 0 305 010e D0F80080 ldr r8, [r0] 306 0112 03F18043 add r3, r3, #1073741824 307 0116 03F51043 add r3, r3, #36864 ARM GAS /tmp/ccD7nRW1.s page 61 308 011a 9845 cmp r8, r3 309 011c 5CD0 beq .L14 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 310 .loc 1 3076 0 is_stmt 0 discriminator 1 311 011e 03F58063 add r3, r3, #1024 312 0122 9845 cmp r8, r3 313 0124 58D0 beq .L14 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 314 .loc 1 3088 0 is_stmt 1 315 0126 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 316 .LVL21: 317 012a 00EB8000 add r0, r0, r0, lsl #2 318 012e 00EB8000 add r0, r0, r0, lsl #2 319 0132 6568 ldr r5, [r4, #4] 320 0134 6D00 lsls r5, r5, #1 321 0136 B0FBF5F5 udiv r5, r0, r5 322 013a 814F ldr r7, .L21+4 323 013c A7FB0535 umull r3, r5, r7, r5 324 0140 6D09 lsrs r5, r5, #5 325 0142 2E01 lsls r6, r5, #4 326 0144 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 327 .LVL22: 328 0148 00EB8000 add r0, r0, r0, lsl #2 329 014c 00EB8000 add r0, r0, r0, lsl #2 330 0150 6568 ldr r5, [r4, #4] 331 0152 6D00 lsls r5, r5, #1 332 0154 B0FBF5FA udiv r10, r0, r5 333 0158 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 334 .LVL23: 335 015c 00EB8000 add r0, r0, r0, lsl #2 336 0160 00EB8000 add r0, r0, r0, lsl #2 337 0164 6568 ldr r5, [r4, #4] 338 0166 6D00 lsls r5, r5, #1 339 0168 B0FBF5F5 udiv r5, r0, r5 340 016c A7FB0535 umull r3, r5, r7, r5 341 0170 6D09 lsrs r5, r5, #5 342 0172 4FF06409 mov r9, #100 343 0176 09FB15A5 mls r5, r9, r5, r10 344 017a ED00 lsls r5, r5, #3 345 017c 3235 adds r5, r5, #50 346 017e A7FB0535 umull r3, r5, r7, r5 347 0182 6D09 lsrs r5, r5, #5 348 0184 6D00 lsls r5, r5, #1 349 0186 05F4F875 and r5, r5, #496 350 018a 3544 add r5, r5, r6 351 018c FFF7FEFF bl HAL_RCC_GetPCLK1Freq 352 .LVL24: 353 0190 00EB8000 add r0, r0, r0, lsl #2 354 0194 00EB8000 add r0, r0, r0, lsl #2 355 0198 6668 ldr r6, [r4, #4] 356 019a 7600 lsls r6, r6, #1 357 019c B0FBF6F6 udiv r6, r0, r6 358 01a0 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 359 .LVL25: 360 01a4 00EB8000 add r0, r0, r0, lsl #2 361 01a8 00EB8000 add r0, r0, r0, lsl #2 362 01ac 6368 ldr r3, [r4, #4] ARM GAS /tmp/ccD7nRW1.s page 62 363 01ae 5B00 lsls r3, r3, #1 364 01b0 B0FBF3F3 udiv r3, r0, r3 365 01b4 A7FB0323 umull r2, r3, r7, r3 366 01b8 5B09 lsrs r3, r3, #5 367 01ba 09FB1369 mls r9, r9, r3, r6 368 01be 4FEAC909 lsl r9, r9, #3 369 01c2 09F13209 add r9, r9, #50 370 01c6 A7FB0937 umull r3, r7, r7, r9 371 01ca C7F34217 ubfx r7, r7, #5, #3 372 01ce 2F44 add r7, r7, r5 373 01d0 C8F80870 str r7, [r8, #8] 374 01d4 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 375 .LVL26: 376 .L14: 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 377 .loc 1 3078 0 378 01d8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 379 .LVL27: 380 01dc 00EB8000 add r0, r0, r0, lsl #2 381 01e0 00EB8000 add r0, r0, r0, lsl #2 382 01e4 6568 ldr r5, [r4, #4] 383 01e6 6D00 lsls r5, r5, #1 384 01e8 B0FBF5F5 udiv r5, r0, r5 385 01ec 544F ldr r7, .L21+4 386 01ee A7FB0535 umull r3, r5, r7, r5 387 01f2 6D09 lsrs r5, r5, #5 388 01f4 2E01 lsls r6, r5, #4 389 01f6 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 390 .LVL28: 391 01fa 00EB8000 add r0, r0, r0, lsl #2 392 01fe 00EB8000 add r0, r0, r0, lsl #2 393 0202 6568 ldr r5, [r4, #4] 394 0204 6D00 lsls r5, r5, #1 395 0206 B0FBF5FA udiv r10, r0, r5 396 020a FFF7FEFF bl HAL_RCC_GetPCLK2Freq 397 .LVL29: 398 020e 00EB8000 add r0, r0, r0, lsl #2 399 0212 00EB8000 add r0, r0, r0, lsl #2 400 0216 6568 ldr r5, [r4, #4] 401 0218 6D00 lsls r5, r5, #1 402 021a B0FBF5F5 udiv r5, r0, r5 403 021e A7FB0535 umull r3, r5, r7, r5 404 0222 6D09 lsrs r5, r5, #5 405 0224 4FF06409 mov r9, #100 406 0228 09FB15A5 mls r5, r9, r5, r10 407 022c ED00 lsls r5, r5, #3 408 022e 3235 adds r5, r5, #50 409 0230 A7FB0535 umull r3, r5, r7, r5 410 0234 6D09 lsrs r5, r5, #5 411 0236 6D00 lsls r5, r5, #1 412 0238 05F4F875 and r5, r5, #496 413 023c 3544 add r5, r5, r6 414 023e FFF7FEFF bl HAL_RCC_GetPCLK2Freq 415 .LVL30: 416 0242 00EB8000 add r0, r0, r0, lsl #2 417 0246 00EB8000 add r0, r0, r0, lsl #2 418 024a 6668 ldr r6, [r4, #4] ARM GAS /tmp/ccD7nRW1.s page 63 419 024c 7600 lsls r6, r6, #1 420 024e B0FBF6F6 udiv r6, r0, r6 421 0252 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 422 .LVL31: 423 0256 00EB8000 add r0, r0, r0, lsl #2 424 025a 00EB8000 add r0, r0, r0, lsl #2 425 025e 6368 ldr r3, [r4, #4] 426 0260 5B00 lsls r3, r3, #1 427 0262 B0FBF3F3 udiv r3, r0, r3 428 0266 A7FB0323 umull r2, r3, r7, r3 429 026a 5B09 lsrs r3, r3, #5 430 026c 09FB1369 mls r9, r9, r3, r6 431 0270 4FEAC909 lsl r9, r9, #3 432 0274 09F13209 add r9, r9, #50 433 0278 A7FB0937 umull r3, r7, r7, r9 434 027c C7F34217 ubfx r7, r7, #5, #3 435 0280 2F44 add r7, r7, r5 436 0282 C8F80870 str r7, [r8, #8] 437 0286 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 438 .LVL32: 439 .L17: 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 440 .loc 1 3097 0 441 028a FFF7FEFF bl HAL_RCC_GetPCLK2Freq 442 .LVL33: 443 028e 00EB8000 add r0, r0, r0, lsl #2 444 0292 00EB8000 add r0, r0, r0, lsl #2 445 0296 6568 ldr r5, [r4, #4] 446 0298 AD00 lsls r5, r5, #2 447 029a B0FBF5F5 udiv r5, r0, r5 448 029e 284F ldr r7, .L21+4 449 02a0 A7FB0535 umull r3, r5, r7, r5 450 02a4 6D09 lsrs r5, r5, #5 451 02a6 2E01 lsls r6, r5, #4 452 02a8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 453 .LVL34: 454 02ac 00EB8000 add r0, r0, r0, lsl #2 455 02b0 00EB8000 add r0, r0, r0, lsl #2 456 02b4 6568 ldr r5, [r4, #4] 457 02b6 AD00 lsls r5, r5, #2 458 02b8 B0FBF5FA udiv r10, r0, r5 459 02bc FFF7FEFF bl HAL_RCC_GetPCLK2Freq 460 .LVL35: 461 02c0 00EB8000 add r0, r0, r0, lsl #2 462 02c4 00EB8000 add r0, r0, r0, lsl #2 463 02c8 6568 ldr r5, [r4, #4] 464 02ca AD00 lsls r5, r5, #2 465 02cc B0FBF5F5 udiv r5, r0, r5 466 02d0 A7FB0535 umull r3, r5, r7, r5 467 02d4 6D09 lsrs r5, r5, #5 468 02d6 4FF06409 mov r9, #100 469 02da 09FB15A5 mls r5, r9, r5, r10 470 02de 2D01 lsls r5, r5, #4 471 02e0 3235 adds r5, r5, #50 472 02e2 A7FB0535 umull r3, r5, r7, r5 473 02e6 6D09 lsrs r5, r5, #5 474 02e8 05F0F005 and r5, r5, #240 ARM GAS /tmp/ccD7nRW1.s page 64 475 02ec 3544 add r5, r5, r6 476 02ee FFF7FEFF bl HAL_RCC_GetPCLK2Freq 477 .LVL36: 478 02f2 00EB8000 add r0, r0, r0, lsl #2 479 02f6 00EB8000 add r0, r0, r0, lsl #2 480 02fa 6668 ldr r6, [r4, #4] 481 02fc B600 lsls r6, r6, #2 482 02fe B0FBF6F6 udiv r6, r0, r6 483 0302 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 484 .LVL37: 485 0306 00EB8000 add r0, r0, r0, lsl #2 486 030a 00EB8000 add r0, r0, r0, lsl #2 487 030e 6368 ldr r3, [r4, #4] 488 0310 9B00 lsls r3, r3, #2 489 0312 B0FBF3F3 udiv r3, r0, r3 490 0316 A7FB0323 umull r2, r3, r7, r3 491 031a 5B09 lsrs r3, r3, #5 492 031c 09FB1369 mls r9, r9, r3, r6 493 0320 4FEA0919 lsl r9, r9, #4 494 0324 09F13209 add r9, r9, #50 495 0328 A7FB0937 umull r3, r7, r7, r9 496 032c C7F34317 ubfx r7, r7, #5, #4 497 0330 2F44 add r7, r7, r5 498 0332 C8F80870 str r7, [r8, #8] 499 0336 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 500 .LVL38: 501 .L22: 502 033a 00BF .align 2 503 .L21: 504 033c 00100140 .word 1073811456 505 0340 1F85EB51 .word 1374389535 506 .cfi_endproc 507 .LFE184: 509 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 510 .align 1 511 .syntax unified 512 .thumb 513 .thumb_func 514 .fpu fpv4-sp-d16 516 UART_WaitOnFlagUntilTimeout: 517 .LFB173: 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 518 .loc 1 2668 0 519 .cfi_startproc 520 @ args = 4, pretend = 0, frame = 0 521 @ frame_needed = 0, uses_anonymous_args = 0 522 .LVL39: 523 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 524 .LCFI1: 525 .cfi_def_cfa_offset 24 526 .cfi_offset 4, -24 527 .cfi_offset 5, -20 528 .cfi_offset 6, -16 529 .cfi_offset 7, -12 530 .cfi_offset 8, -8 531 .cfi_offset 14, -4 532 0004 0546 mov r5, r0 ARM GAS /tmp/ccD7nRW1.s page 65 533 0006 0F46 mov r7, r1 534 0008 1646 mov r6, r2 535 000a 9846 mov r8, r3 536 000c 069C ldr r4, [sp, #24] 537 .LVL40: 538 .L25: 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 539 .loc 1 2670 0 540 000e 2B68 ldr r3, [r5] 541 0010 1B68 ldr r3, [r3] 542 0012 37EA0303 bics r3, r7, r3 543 0016 0CBF ite eq 544 0018 0123 moveq r3, #1 545 001a 0023 movne r3, #0 546 001c B342 cmp r3, r6 547 001e 1ED1 bne .L30 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 548 .loc 1 2673 0 549 0020 B4F1FF3F cmp r4, #-1 550 0024 F3D0 beq .L25 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 551 .loc 1 2675 0 552 0026 2CB1 cbz r4, .L26 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 553 .loc 1 2675 0 is_stmt 0 discriminator 1 554 0028 FFF7FEFF bl HAL_GetTick 555 .LVL41: 556 002c A0EB0800 sub r0, r0, r8 557 0030 8442 cmp r4, r0 558 0032 ECD2 bcs .L25 559 .L26: 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 560 .loc 1 2678 0 is_stmt 1 561 0034 2A68 ldr r2, [r5] 562 0036 D368 ldr r3, [r2, #12] 563 0038 23F4D073 bic r3, r3, #416 564 003c D360 str r3, [r2, #12] 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 565 .loc 1 2679 0 566 003e 2A68 ldr r2, [r5] 567 0040 5369 ldr r3, [r2, #20] 568 0042 23F00103 bic r3, r3, #1 569 0046 5361 str r3, [r2, #20] 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 570 .loc 1 2681 0 571 0048 2023 movs r3, #32 572 004a 85F83930 strb r3, [r5, #57] 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 573 .loc 1 2682 0 574 004e 85F83A30 strb r3, [r5, #58] 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 575 .loc 1 2685 0 576 0052 0023 movs r3, #0 577 0054 85F83830 strb r3, [r5, #56] 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 578 .loc 1 2687 0 579 0058 0320 movs r0, #3 ARM GAS /tmp/ccD7nRW1.s page 66 580 005a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 581 .LVL42: 582 .L30: 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 583 .loc 1 2691 0 584 005e 0020 movs r0, #0 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 585 .loc 1 2692 0 586 0060 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 587 .cfi_endproc 588 .LFE173: 590 .section .text.HAL_UART_MspInit,"ax",%progbits 591 .align 1 592 .weak HAL_UART_MspInit 593 .syntax unified 594 .thumb 595 .thumb_func 596 .fpu fpv4-sp-d16 598 HAL_UART_MspInit: 599 .LFB135: 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 600 .loc 1 668 0 601 .cfi_startproc 602 @ args = 0, pretend = 0, frame = 0 603 @ frame_needed = 0, uses_anonymous_args = 0 604 @ link register save eliminated. 605 .LVL43: 606 0000 7047 bx lr 607 .cfi_endproc 608 .LFE135: 610 .section .text.HAL_UART_Init,"ax",%progbits 611 .align 1 612 .global HAL_UART_Init 613 .syntax unified 614 .thumb 615 .thumb_func 616 .fpu fpv4-sp-d16 618 HAL_UART_Init: 619 .LFB130: 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 620 .loc 1 318 0 621 .cfi_startproc 622 @ args = 0, pretend = 0, frame = 0 623 @ frame_needed = 0, uses_anonymous_args = 0 624 .LVL44: 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 625 .loc 1 320 0 626 0000 58B3 cbz r0, .L35 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 627 .loc 1 318 0 628 0002 10B5 push {r4, lr} 629 .LCFI2: 630 .cfi_def_cfa_offset 8 631 .cfi_offset 4, -8 632 .cfi_offset 14, -4 633 0004 0446 mov r4, r0 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 67 634 .loc 1 339 0 635 0006 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 636 000a 0BB3 cbz r3, .L40 637 .LVL45: 638 .L34: 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 639 .loc 1 360 0 640 000c 2423 movs r3, #36 641 000e 84F83930 strb r3, [r4, #57] 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 642 .loc 1 363 0 643 0012 2268 ldr r2, [r4] 644 0014 D368 ldr r3, [r2, #12] 645 0016 23F40053 bic r3, r3, #8192 646 001a D360 str r3, [r2, #12] 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 647 .loc 1 366 0 648 001c 2046 mov r0, r4 649 001e FFF7FEFF bl UART_SetConfig 650 .LVL46: 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 651 .loc 1 371 0 652 0022 2268 ldr r2, [r4] 653 0024 1369 ldr r3, [r2, #16] 654 0026 23F49043 bic r3, r3, #18432 655 002a 1361 str r3, [r2, #16] 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 656 .loc 1 372 0 657 002c 2268 ldr r2, [r4] 658 002e 5369 ldr r3, [r2, #20] 659 0030 23F02A03 bic r3, r3, #42 660 0034 5361 str r3, [r2, #20] 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 661 .loc 1 375 0 662 0036 2268 ldr r2, [r4] 663 0038 D368 ldr r3, [r2, #12] 664 003a 43F40053 orr r3, r3, #8192 665 003e D360 str r3, [r2, #12] 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 666 .loc 1 378 0 667 0040 0020 movs r0, #0 668 0042 E063 str r0, [r4, #60] 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 669 .loc 1 379 0 670 0044 2023 movs r3, #32 671 0046 84F83930 strb r3, [r4, #57] 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 672 .loc 1 380 0 673 004a 84F83A30 strb r3, [r4, #58] 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 674 .loc 1 382 0 675 004e 10BD pop {r4, pc} 676 .LVL47: 677 .L40: 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 678 .loc 1 342 0 679 0050 80F83830 strb r3, [r0, #56] ARM GAS /tmp/ccD7nRW1.s page 68 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 680 .loc 1 356 0 681 0054 FFF7FEFF bl HAL_UART_MspInit 682 .LVL48: 683 0058 D8E7 b .L34 684 .LVL49: 685 .L35: 686 .LCFI3: 687 .cfi_def_cfa_offset 0 688 .cfi_restore 4 689 .cfi_restore 14 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 690 .loc 1 322 0 691 005a 0120 movs r0, #1 692 .LVL50: 693 005c 7047 bx lr 694 .cfi_endproc 695 .LFE130: 697 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 698 .align 1 699 .global HAL_HalfDuplex_Init 700 .syntax unified 701 .thumb 702 .thumb_func 703 .fpu fpv4-sp-d16 705 HAL_HalfDuplex_Init: 706 .LFB131: 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 707 .loc 1 393 0 708 .cfi_startproc 709 @ args = 0, pretend = 0, frame = 0 710 @ frame_needed = 0, uses_anonymous_args = 0 711 .LVL51: 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 712 .loc 1 395 0 713 0000 0028 cmp r0, #0 714 0002 30D0 beq .L44 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 715 .loc 1 393 0 716 0004 10B5 push {r4, lr} 717 .LCFI4: 718 .cfi_def_cfa_offset 8 719 .cfi_offset 4, -8 720 .cfi_offset 14, -4 721 0006 0446 mov r4, r0 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 722 .loc 1 405 0 723 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 724 000c 33B3 cbz r3, .L49 725 .LVL52: 726 .L43: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 727 .loc 1 426 0 728 000e 2423 movs r3, #36 729 0010 84F83930 strb r3, [r4, #57] 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 730 .loc 1 429 0 ARM GAS /tmp/ccD7nRW1.s page 69 731 0014 2268 ldr r2, [r4] 732 0016 D368 ldr r3, [r2, #12] 733 0018 23F40053 bic r3, r3, #8192 734 001c D360 str r3, [r2, #12] 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 735 .loc 1 432 0 736 001e 2046 mov r0, r4 737 0020 FFF7FEFF bl UART_SetConfig 738 .LVL53: 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 739 .loc 1 437 0 740 0024 2268 ldr r2, [r4] 741 0026 1369 ldr r3, [r2, #16] 742 0028 23F49043 bic r3, r3, #18432 743 002c 1361 str r3, [r2, #16] 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 744 .loc 1 438 0 745 002e 2268 ldr r2, [r4] 746 0030 5369 ldr r3, [r2, #20] 747 0032 23F02203 bic r3, r3, #34 748 0036 5361 str r3, [r2, #20] 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 749 .loc 1 441 0 750 0038 2268 ldr r2, [r4] 751 003a 5369 ldr r3, [r2, #20] 752 003c 43F00803 orr r3, r3, #8 753 0040 5361 str r3, [r2, #20] 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 754 .loc 1 444 0 755 0042 2268 ldr r2, [r4] 756 0044 D368 ldr r3, [r2, #12] 757 0046 43F40053 orr r3, r3, #8192 758 004a D360 str r3, [r2, #12] 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 759 .loc 1 447 0 760 004c 0020 movs r0, #0 761 004e E063 str r0, [r4, #60] 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 762 .loc 1 448 0 763 0050 2023 movs r3, #32 764 0052 84F83930 strb r3, [r4, #57] 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 765 .loc 1 449 0 766 0056 84F83A30 strb r3, [r4, #58] 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 767 .loc 1 451 0 768 005a 10BD pop {r4, pc} 769 .LVL54: 770 .L49: 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 771 .loc 1 408 0 772 005c 80F83830 strb r3, [r0, #56] 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 773 .loc 1 422 0 774 0060 FFF7FEFF bl HAL_UART_MspInit 775 .LVL55: 776 0064 D3E7 b .L43 ARM GAS /tmp/ccD7nRW1.s page 70 777 .LVL56: 778 .L44: 779 .LCFI5: 780 .cfi_def_cfa_offset 0 781 .cfi_restore 4 782 .cfi_restore 14 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 783 .loc 1 397 0 784 0066 0120 movs r0, #1 785 .LVL57: 786 0068 7047 bx lr 787 .cfi_endproc 788 .LFE131: 790 .section .text.HAL_LIN_Init,"ax",%progbits 791 .align 1 792 .global HAL_LIN_Init 793 .syntax unified 794 .thumb 795 .thumb_func 796 .fpu fpv4-sp-d16 798 HAL_LIN_Init: 799 .LFB132: 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 800 .loc 1 466 0 801 .cfi_startproc 802 @ args = 0, pretend = 0, frame = 0 803 @ frame_needed = 0, uses_anonymous_args = 0 804 .LVL58: 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 805 .loc 1 468 0 806 0000 0028 cmp r0, #0 807 0002 3BD0 beq .L53 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 808 .loc 1 466 0 809 0004 38B5 push {r3, r4, r5, lr} 810 .LCFI6: 811 .cfi_def_cfa_offset 16 812 .cfi_offset 3, -16 813 .cfi_offset 4, -12 814 .cfi_offset 5, -8 815 .cfi_offset 14, -4 816 0006 0446 mov r4, r0 817 0008 0D46 mov r5, r1 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 818 .loc 1 481 0 819 000a 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 820 000e 002B cmp r3, #0 821 0010 2FD0 beq .L58 822 .LVL59: 823 .L52: 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 824 .loc 1 502 0 825 0012 2423 movs r3, #36 826 0014 84F83930 strb r3, [r4, #57] 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 827 .loc 1 505 0 828 0018 2268 ldr r2, [r4] ARM GAS /tmp/ccD7nRW1.s page 71 829 001a D368 ldr r3, [r2, #12] 830 001c 23F40053 bic r3, r3, #8192 831 0020 D360 str r3, [r2, #12] 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 832 .loc 1 508 0 833 0022 2046 mov r0, r4 834 0024 FFF7FEFF bl UART_SetConfig 835 .LVL60: 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 836 .loc 1 513 0 837 0028 2268 ldr r2, [r4] 838 002a 1369 ldr r3, [r2, #16] 839 002c 23F40063 bic r3, r3, #2048 840 0030 1361 str r3, [r2, #16] 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 841 .loc 1 514 0 842 0032 2268 ldr r2, [r4] 843 0034 5369 ldr r3, [r2, #20] 844 0036 23F02A03 bic r3, r3, #42 845 003a 5361 str r3, [r2, #20] 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 846 .loc 1 517 0 847 003c 2268 ldr r2, [r4] 848 003e 1369 ldr r3, [r2, #16] 849 0040 43F48043 orr r3, r3, #16384 850 0044 1361 str r3, [r2, #16] 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 851 .loc 1 520 0 852 0046 2268 ldr r2, [r4] 853 0048 1369 ldr r3, [r2, #16] 854 004a 23F02003 bic r3, r3, #32 855 004e 1361 str r3, [r2, #16] 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 856 .loc 1 521 0 857 0050 2368 ldr r3, [r4] 858 0052 1969 ldr r1, [r3, #16] 859 0054 0D43 orrs r5, r5, r1 860 .LVL61: 861 0056 1D61 str r5, [r3, #16] 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 862 .loc 1 524 0 863 0058 2268 ldr r2, [r4] 864 005a D368 ldr r3, [r2, #12] 865 005c 43F40053 orr r3, r3, #8192 866 0060 D360 str r3, [r2, #12] 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 867 .loc 1 527 0 868 0062 0020 movs r0, #0 869 0064 E063 str r0, [r4, #60] 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 870 .loc 1 528 0 871 0066 2023 movs r3, #32 872 0068 84F83930 strb r3, [r4, #57] 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 873 .loc 1 529 0 874 006c 84F83A30 strb r3, [r4, #58] 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 72 875 .loc 1 531 0 876 0070 38BD pop {r3, r4, r5, pc} 877 .LVL62: 878 .L58: 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 879 .loc 1 484 0 880 0072 80F83830 strb r3, [r0, #56] 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 881 .loc 1 498 0 882 0076 FFF7FEFF bl HAL_UART_MspInit 883 .LVL63: 884 007a CAE7 b .L52 885 .LVL64: 886 .L53: 887 .LCFI7: 888 .cfi_def_cfa_offset 0 889 .cfi_restore 3 890 .cfi_restore 4 891 .cfi_restore 5 892 .cfi_restore 14 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 893 .loc 1 470 0 894 007c 0120 movs r0, #1 895 .LVL65: 896 007e 7047 bx lr 897 .cfi_endproc 898 .LFE132: 900 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 901 .align 1 902 .global HAL_MultiProcessor_Init 903 .syntax unified 904 .thumb 905 .thumb_func 906 .fpu fpv4-sp-d16 908 HAL_MultiProcessor_Init: 909 .LFB133: 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 910 .loc 1 547 0 911 .cfi_startproc 912 @ args = 0, pretend = 0, frame = 0 913 @ frame_needed = 0, uses_anonymous_args = 0 914 .LVL66: 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 915 .loc 1 549 0 916 0000 0028 cmp r0, #0 917 0002 40D0 beq .L62 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 918 .loc 1 547 0 919 0004 70B5 push {r4, r5, r6, lr} 920 .LCFI8: 921 .cfi_def_cfa_offset 16 922 .cfi_offset 4, -16 923 .cfi_offset 5, -12 924 .cfi_offset 6, -8 925 .cfi_offset 14, -4 926 0006 0446 mov r4, r0 927 0008 1646 mov r6, r2 ARM GAS /tmp/ccD7nRW1.s page 73 928 000a 0D46 mov r5, r1 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 929 .loc 1 563 0 930 000c 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 931 0010 002B cmp r3, #0 932 0012 33D0 beq .L67 933 .LVL67: 934 .L61: 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 935 .loc 1 584 0 936 0014 2423 movs r3, #36 937 0016 84F83930 strb r3, [r4, #57] 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 938 .loc 1 587 0 939 001a 2268 ldr r2, [r4] 940 001c D368 ldr r3, [r2, #12] 941 001e 23F40053 bic r3, r3, #8192 942 0022 D360 str r3, [r2, #12] 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 943 .loc 1 590 0 944 0024 2046 mov r0, r4 945 0026 FFF7FEFF bl UART_SetConfig 946 .LVL68: 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 947 .loc 1 595 0 948 002a 2268 ldr r2, [r4] 949 002c 1369 ldr r3, [r2, #16] 950 002e 23F49043 bic r3, r3, #18432 951 0032 1361 str r3, [r2, #16] 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 952 .loc 1 596 0 953 0034 2268 ldr r2, [r4] 954 0036 5369 ldr r3, [r2, #20] 955 0038 23F02A03 bic r3, r3, #42 956 003c 5361 str r3, [r2, #20] 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 957 .loc 1 599 0 958 003e 2268 ldr r2, [r4] 959 0040 1369 ldr r3, [r2, #16] 960 0042 23F00F03 bic r3, r3, #15 961 0046 1361 str r3, [r2, #16] 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 962 .loc 1 600 0 963 0048 2368 ldr r3, [r4] 964 004a 1969 ldr r1, [r3, #16] 965 004c 0D43 orrs r5, r5, r1 966 004e 1D61 str r5, [r3, #16] 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 967 .loc 1 603 0 968 0050 2268 ldr r2, [r4] 969 0052 D368 ldr r3, [r2, #12] 970 0054 23F40063 bic r3, r3, #2048 971 0058 D360 str r3, [r2, #12] 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 972 .loc 1 604 0 973 005a 2168 ldr r1, [r4] 974 005c CB68 ldr r3, [r1, #12] ARM GAS /tmp/ccD7nRW1.s page 74 975 005e 3343 orrs r3, r3, r6 976 0060 CB60 str r3, [r1, #12] 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 977 .loc 1 607 0 978 0062 2268 ldr r2, [r4] 979 0064 D368 ldr r3, [r2, #12] 980 0066 43F40053 orr r3, r3, #8192 981 006a D360 str r3, [r2, #12] 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 982 .loc 1 610 0 983 006c 0020 movs r0, #0 984 006e E063 str r0, [r4, #60] 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 985 .loc 1 611 0 986 0070 2023 movs r3, #32 987 0072 84F83930 strb r3, [r4, #57] 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 988 .loc 1 612 0 989 0076 84F83A30 strb r3, [r4, #58] 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 990 .loc 1 614 0 991 007a 70BD pop {r4, r5, r6, pc} 992 .LVL69: 993 .L67: 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 994 .loc 1 566 0 995 007c 80F83830 strb r3, [r0, #56] 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 996 .loc 1 580 0 997 0080 FFF7FEFF bl HAL_UART_MspInit 998 .LVL70: 999 0084 C6E7 b .L61 1000 .LVL71: 1001 .L62: 1002 .LCFI9: 1003 .cfi_def_cfa_offset 0 1004 .cfi_restore 4 1005 .cfi_restore 5 1006 .cfi_restore 6 1007 .cfi_restore 14 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1008 .loc 1 551 0 1009 0086 0120 movs r0, #1 1010 .LVL72: 1011 0088 7047 bx lr 1012 .cfi_endproc 1013 .LFE133: 1015 .section .text.HAL_UART_MspDeInit,"ax",%progbits 1016 .align 1 1017 .weak HAL_UART_MspDeInit 1018 .syntax unified 1019 .thumb 1020 .thumb_func 1021 .fpu fpv4-sp-d16 1023 HAL_UART_MspDeInit: 1024 .LFB136: 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccD7nRW1.s page 75 1025 .loc 1 683 0 1026 .cfi_startproc 1027 @ args = 0, pretend = 0, frame = 0 1028 @ frame_needed = 0, uses_anonymous_args = 0 1029 @ link register save eliminated. 1030 .LVL73: 1031 0000 7047 bx lr 1032 .cfi_endproc 1033 .LFE136: 1035 .section .text.HAL_UART_DeInit,"ax",%progbits 1036 .align 1 1037 .global HAL_UART_DeInit 1038 .syntax unified 1039 .thumb 1040 .thumb_func 1041 .fpu fpv4-sp-d16 1043 HAL_UART_DeInit: 1044 .LFB134: 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1045 .loc 1 624 0 1046 .cfi_startproc 1047 @ args = 0, pretend = 0, frame = 0 1048 @ frame_needed = 0, uses_anonymous_args = 0 1049 .LVL74: 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1050 .loc 1 626 0 1051 0000 A0B1 cbz r0, .L71 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1052 .loc 1 624 0 1053 0002 10B5 push {r4, lr} 1054 .LCFI10: 1055 .cfi_def_cfa_offset 8 1056 .cfi_offset 4, -8 1057 .cfi_offset 14, -4 1058 0004 0446 mov r4, r0 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1059 .loc 1 634 0 1060 0006 2423 movs r3, #36 1061 0008 80F83930 strb r3, [r0, #57] 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1062 .loc 1 637 0 1063 000c 0268 ldr r2, [r0] 1064 000e D368 ldr r3, [r2, #12] 1065 0010 23F40053 bic r3, r3, #8192 1066 0014 D360 str r3, [r2, #12] 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1067 .loc 1 648 0 1068 0016 FFF7FEFF bl HAL_UART_MspDeInit 1069 .LVL75: 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1070 .loc 1 651 0 1071 001a 0020 movs r0, #0 1072 001c E063 str r0, [r4, #60] 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1073 .loc 1 652 0 1074 001e 84F83900 strb r0, [r4, #57] 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 76 1075 .loc 1 653 0 1076 0022 84F83A00 strb r0, [r4, #58] 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1077 .loc 1 656 0 1078 0026 84F83800 strb r0, [r4, #56] 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1079 .loc 1 658 0 1080 002a 10BD pop {r4, pc} 1081 .LVL76: 1082 .L71: 1083 .LCFI11: 1084 .cfi_def_cfa_offset 0 1085 .cfi_restore 4 1086 .cfi_restore 14 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1087 .loc 1 628 0 1088 002c 0120 movs r0, #1 1089 .LVL77: 1090 002e 7047 bx lr 1091 .cfi_endproc 1092 .LFE134: 1094 .section .text.HAL_UART_Transmit,"ax",%progbits 1095 .align 1 1096 .global HAL_UART_Transmit 1097 .syntax unified 1098 .thumb 1099 .thumb_func 1100 .fpu fpv4-sp-d16 1102 HAL_UART_Transmit: 1103 .LFB137: 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1104 .loc 1 1020 0 1105 .cfi_startproc 1106 @ args = 0, pretend = 0, frame = 0 1107 @ frame_needed = 0, uses_anonymous_args = 0 1108 .LVL78: 1109 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1110 .LCFI12: 1111 .cfi_def_cfa_offset 24 1112 .cfi_offset 4, -24 1113 .cfi_offset 5, -20 1114 .cfi_offset 6, -16 1115 .cfi_offset 7, -12 1116 .cfi_offset 8, -8 1117 .cfi_offset 14, -4 1118 0004 82B0 sub sp, sp, #8 1119 .LCFI13: 1120 .cfi_def_cfa_offset 32 1121 0006 1E46 mov r6, r3 1122 .LVL79: 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1123 .loc 1 1025 0 1124 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 1125 .LVL80: 1126 000c DBB2 uxtb r3, r3 1127 000e 202B cmp r3, #32 1128 0010 04D0 beq .L91 ARM GAS /tmp/ccD7nRW1.s page 77 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1129 .loc 1 1088 0 1130 0012 0223 movs r3, #2 1131 .LVL81: 1132 .L77: 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1133 .loc 1 1090 0 1134 0014 1846 mov r0, r3 1135 0016 02B0 add sp, sp, #8 1136 .LCFI14: 1137 .cfi_remember_state 1138 .cfi_def_cfa_offset 24 1139 @ sp needed 1140 0018 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1141 .LVL82: 1142 .L91: 1143 .LCFI15: 1144 .cfi_restore_state 1145 001c 0446 mov r4, r0 1146 001e 0D46 mov r5, r1 1147 0020 9046 mov r8, r2 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1148 .loc 1 1027 0 1149 0022 0029 cmp r1, #0 1150 0024 55D0 beq .L84 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1151 .loc 1 1027 0 is_stmt 0 discriminator 1 1152 0026 002A cmp r2, #0 1153 0028 55D0 beq .L85 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1154 .loc 1 1033 0 is_stmt 1 1155 002a 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1156 002e 012B cmp r3, #1 1157 0030 01D1 bne .L92 1158 0032 0223 movs r3, #2 1159 0034 EEE7 b .L77 1160 .L92: 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1161 .loc 1 1033 0 is_stmt 0 discriminator 2 1162 0036 0123 movs r3, #1 1163 0038 80F83830 strb r3, [r0, #56] 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1164 .loc 1 1035 0 is_stmt 1 discriminator 2 1165 003c 0023 movs r3, #0 1166 003e C363 str r3, [r0, #60] 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1167 .loc 1 1036 0 discriminator 2 1168 0040 2123 movs r3, #33 1169 0042 80F83930 strb r3, [r0, #57] 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1170 .loc 1 1039 0 discriminator 2 1171 0046 FFF7FEFF bl HAL_GetTick 1172 .LVL83: 1173 004a 0746 mov r7, r0 1174 .LVL84: 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1175 .loc 1 1041 0 discriminator 2 ARM GAS /tmp/ccD7nRW1.s page 78 1176 004c A4F82480 strh r8, [r4, #36] @ movhi 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1177 .loc 1 1042 0 discriminator 2 1178 0050 A4F82680 strh r8, [r4, #38] @ movhi 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1179 .loc 1 1043 0 discriminator 2 1180 0054 10E0 b .L78 1181 .LVL85: 1182 .L94: 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1183 .loc 1 1048 0 1184 0056 0096 str r6, [sp] 1185 0058 3B46 mov r3, r7 1186 005a 0022 movs r2, #0 1187 005c 8021 movs r1, #128 1188 005e 2046 mov r0, r4 1189 0060 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1190 .LVL86: 1191 0064 0028 cmp r0, #0 1192 0066 38D1 bne .L87 1193 .LVL87: 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1194 .loc 1 1053 0 1195 0068 2268 ldr r2, [r4] 1196 006a 2B88 ldrh r3, [r5] 1197 006c C3F30803 ubfx r3, r3, #0, #9 1198 0070 5360 str r3, [r2, #4] 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1199 .loc 1 1054 0 1200 0072 2369 ldr r3, [r4, #16] 1201 0074 CBB9 cbnz r3, .L80 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1202 .loc 1 1056 0 1203 0076 0235 adds r5, r5, #2 1204 .LVL88: 1205 .L78: 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1206 .loc 1 1043 0 1207 0078 E38C ldrh r3, [r4, #38] 1208 007a 9BB2 uxth r3, r3 1209 007c BBB1 cbz r3, .L93 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1210 .loc 1 1045 0 1211 007e E38C ldrh r3, [r4, #38] 1212 0080 9BB2 uxth r3, r3 1213 0082 013B subs r3, r3, #1 1214 0084 9BB2 uxth r3, r3 1215 0086 E384 strh r3, [r4, #38] @ movhi 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1216 .loc 1 1046 0 1217 0088 A368 ldr r3, [r4, #8] 1218 008a B3F5805F cmp r3, #4096 1219 008e E2D0 beq .L94 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1220 .loc 1 1065 0 1221 0090 0096 str r6, [sp] 1222 0092 3B46 mov r3, r7 ARM GAS /tmp/ccD7nRW1.s page 79 1223 0094 0022 movs r2, #0 1224 0096 8021 movs r1, #128 1225 0098 2046 mov r0, r4 1226 009a FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1227 .LVL89: 1228 009e F0B9 cbnz r0, .L88 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1229 .loc 1 1069 0 1230 00a0 2368 ldr r3, [r4] 1231 .LVL90: 1232 00a2 2A78 ldrb r2, [r5] @ zero_extendqisi2 1233 00a4 5A60 str r2, [r3, #4] 1234 00a6 0135 adds r5, r5, #1 1235 .LVL91: 1236 00a8 E6E7 b .L78 1237 .LVL92: 1238 .L80: 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1239 .loc 1 1060 0 1240 00aa 0135 adds r5, r5, #1 1241 .LVL93: 1242 00ac E4E7 b .L78 1243 .LVL94: 1244 .L93: 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1245 .loc 1 1073 0 1246 00ae 0096 str r6, [sp] 1247 00b0 3B46 mov r3, r7 1248 00b2 0022 movs r2, #0 1249 00b4 4021 movs r1, #64 1250 00b6 2046 mov r0, r4 1251 00b8 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1252 .LVL95: 1253 00bc 0346 mov r3, r0 1254 00be 08B1 cbz r0, .L95 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1255 .loc 1 1075 0 1256 00c0 0323 movs r3, #3 1257 00c2 A7E7 b .L77 1258 .L95: 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1259 .loc 1 1079 0 1260 00c4 2022 movs r2, #32 1261 00c6 84F83920 strb r2, [r4, #57] 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1262 .loc 1 1082 0 1263 00ca 0022 movs r2, #0 1264 00cc 84F83820 strb r2, [r4, #56] 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1265 .loc 1 1084 0 1266 00d0 A0E7 b .L77 1267 .LVL96: 1268 .L84: 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1269 .loc 1 1029 0 1270 00d2 0123 movs r3, #1 1271 00d4 9EE7 b .L77 ARM GAS /tmp/ccD7nRW1.s page 80 1272 .L85: 1273 00d6 0123 movs r3, #1 1274 00d8 9CE7 b .L77 1275 .LVL97: 1276 .L87: 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1277 .loc 1 1050 0 1278 00da 0323 movs r3, #3 1279 00dc 9AE7 b .L77 1280 .L88: 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1281 .loc 1 1067 0 1282 00de 0323 movs r3, #3 1283 00e0 98E7 b .L77 1284 .cfi_endproc 1285 .LFE137: 1287 .section .text.HAL_UART_Receive,"ax",%progbits 1288 .align 1 1289 .global HAL_UART_Receive 1290 .syntax unified 1291 .thumb 1292 .thumb_func 1293 .fpu fpv4-sp-d16 1295 HAL_UART_Receive: 1296 .LFB138: 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1297 .loc 1 1102 0 1298 .cfi_startproc 1299 @ args = 0, pretend = 0, frame = 0 1300 @ frame_needed = 0, uses_anonymous_args = 0 1301 .LVL98: 1302 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1303 .LCFI16: 1304 .cfi_def_cfa_offset 24 1305 .cfi_offset 4, -24 1306 .cfi_offset 5, -20 1307 .cfi_offset 6, -16 1308 .cfi_offset 7, -12 1309 .cfi_offset 8, -8 1310 .cfi_offset 14, -4 1311 0004 82B0 sub sp, sp, #8 1312 .LCFI17: 1313 .cfi_def_cfa_offset 32 1314 0006 1E46 mov r6, r3 1315 .LVL99: 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1316 .loc 1 1107 0 1317 0008 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 1318 .LVL100: 1319 000c DBB2 uxtb r3, r3 1320 000e 202B cmp r3, #32 1321 0010 03D0 beq .L111 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1322 .loc 1 1177 0 1323 0012 0220 movs r0, #2 1324 .LVL101: 1325 .L97: ARM GAS /tmp/ccD7nRW1.s page 81 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1326 .loc 1 1179 0 1327 0014 02B0 add sp, sp, #8 1328 .LCFI18: 1329 .cfi_remember_state 1330 .cfi_def_cfa_offset 24 1331 @ sp needed 1332 0016 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1333 .LVL102: 1334 .L111: 1335 .LCFI19: 1336 .cfi_restore_state 1337 001a 0446 mov r4, r0 1338 001c 0D46 mov r5, r1 1339 001e 9046 mov r8, r2 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1340 .loc 1 1109 0 1341 0020 0029 cmp r1, #0 1342 0022 58D0 beq .L105 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1343 .loc 1 1109 0 is_stmt 0 discriminator 1 1344 0024 002A cmp r2, #0 1345 0026 58D0 beq .L106 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1346 .loc 1 1115 0 is_stmt 1 1347 0028 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1348 002c 012B cmp r3, #1 1349 002e 01D1 bne .L112 1350 0030 0220 movs r0, #2 1351 .LVL103: 1352 0032 EFE7 b .L97 1353 .LVL104: 1354 .L112: 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1355 .loc 1 1115 0 is_stmt 0 discriminator 2 1356 0034 0123 movs r3, #1 1357 0036 80F83830 strb r3, [r0, #56] 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1358 .loc 1 1117 0 is_stmt 1 discriminator 2 1359 003a 0023 movs r3, #0 1360 003c C363 str r3, [r0, #60] 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1361 .loc 1 1118 0 discriminator 2 1362 003e 2223 movs r3, #34 1363 0040 80F83A30 strb r3, [r0, #58] 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1364 .loc 1 1121 0 discriminator 2 1365 0044 FFF7FEFF bl HAL_GetTick 1366 .LVL105: 1367 0048 0746 mov r7, r0 1368 .LVL106: 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1369 .loc 1 1123 0 discriminator 2 1370 004a A4F82C80 strh r8, [r4, #44] @ movhi 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1371 .loc 1 1124 0 discriminator 2 1372 004e A4F82E80 strh r8, [r4, #46] @ movhi ARM GAS /tmp/ccD7nRW1.s page 82 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1373 .loc 1 1127 0 discriminator 2 1374 0052 1DE0 b .L98 1375 .LVL107: 1376 .L114: 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1377 .loc 1 1132 0 1378 0054 0096 str r6, [sp] 1379 0056 3B46 mov r3, r7 1380 0058 0022 movs r2, #0 1381 005a 2021 movs r1, #32 1382 005c 2046 mov r0, r4 1383 005e FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1384 .LVL108: 1385 0062 0028 cmp r0, #0 1386 0064 3BD1 bne .L108 1387 .LVL109: 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1388 .loc 1 1137 0 1389 0066 2369 ldr r3, [r4, #16] 1390 0068 33B9 cbnz r3, .L100 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1391 .loc 1 1139 0 1392 006a 2368 ldr r3, [r4] 1393 006c 5B68 ldr r3, [r3, #4] 1394 006e C3F30803 ubfx r3, r3, #0, #9 1395 0072 25F8023B strh r3, [r5], #2 @ movhi 1396 .LVL110: 1397 0076 0BE0 b .L98 1398 .LVL111: 1399 .L100: 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1400 .loc 1 1144 0 1401 0078 2368 ldr r3, [r4] 1402 007a 5B68 ldr r3, [r3, #4] 1403 007c DBB2 uxtb r3, r3 1404 007e 25F8013B strh r3, [r5], #1 @ movhi 1405 .LVL112: 1406 0082 05E0 b .L98 1407 .LVL113: 1408 .L102: 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1409 .loc 1 1161 0 1410 0084 2368 ldr r3, [r4] 1411 0086 5B68 ldr r3, [r3, #4] 1412 0088 03F07F03 and r3, r3, #127 1413 008c 2B70 strb r3, [r5] 1414 008e 0135 adds r5, r5, #1 1415 .LVL114: 1416 .L98: 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1417 .loc 1 1127 0 1418 0090 E38D ldrh r3, [r4, #46] 1419 0092 9BB2 uxth r3, r3 1420 0094 C3B1 cbz r3, .L113 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1421 .loc 1 1129 0 ARM GAS /tmp/ccD7nRW1.s page 83 1422 0096 E38D ldrh r3, [r4, #46] 1423 0098 9BB2 uxth r3, r3 1424 009a 013B subs r3, r3, #1 1425 009c 9BB2 uxth r3, r3 1426 009e E385 strh r3, [r4, #46] @ movhi 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1427 .loc 1 1130 0 1428 00a0 A368 ldr r3, [r4, #8] 1429 00a2 B3F5805F cmp r3, #4096 1430 00a6 D5D0 beq .L114 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1431 .loc 1 1151 0 1432 00a8 0096 str r6, [sp] 1433 00aa 3B46 mov r3, r7 1434 00ac 0022 movs r2, #0 1435 00ae 2021 movs r1, #32 1436 00b0 2046 mov r0, r4 1437 00b2 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1438 .LVL115: 1439 00b6 A0B9 cbnz r0, .L109 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1440 .loc 1 1155 0 1441 00b8 2369 ldr r3, [r4, #16] 1442 00ba 002B cmp r3, #0 1443 00bc E2D1 bne .L102 1444 .LVL116: 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1445 .loc 1 1157 0 1446 00be 2368 ldr r3, [r4] 1447 00c0 5B68 ldr r3, [r3, #4] 1448 00c2 2B70 strb r3, [r5] 1449 00c4 0135 adds r5, r5, #1 1450 .LVL117: 1451 00c6 E3E7 b .L98 1452 .L113: 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1453 .loc 1 1168 0 1454 00c8 2023 movs r3, #32 1455 00ca 84F83A30 strb r3, [r4, #58] 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1456 .loc 1 1171 0 1457 00ce 0020 movs r0, #0 1458 00d0 84F83800 strb r0, [r4, #56] 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1459 .loc 1 1173 0 1460 00d4 9EE7 b .L97 1461 .LVL118: 1462 .L105: 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1463 .loc 1 1111 0 1464 00d6 0120 movs r0, #1 1465 .LVL119: 1466 00d8 9CE7 b .L97 1467 .LVL120: 1468 .L106: 1469 00da 0120 movs r0, #1 1470 .LVL121: ARM GAS /tmp/ccD7nRW1.s page 84 1471 00dc 9AE7 b .L97 1472 .LVL122: 1473 .L108: 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1474 .loc 1 1134 0 1475 00de 0320 movs r0, #3 1476 00e0 98E7 b .L97 1477 .L109: 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1478 .loc 1 1153 0 1479 00e2 0320 movs r0, #3 1480 00e4 96E7 b .L97 1481 .cfi_endproc 1482 .LFE138: 1484 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1485 .align 1 1486 .global HAL_UART_Transmit_IT 1487 .syntax unified 1488 .thumb 1489 .thumb_func 1490 .fpu fpv4-sp-d16 1492 HAL_UART_Transmit_IT: 1493 .LFB139: 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1494 .loc 1 1190 0 1495 .cfi_startproc 1496 @ args = 0, pretend = 0, frame = 0 1497 @ frame_needed = 0, uses_anonymous_args = 0 1498 @ link register save eliminated. 1499 .LVL123: 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1500 .loc 1 1192 0 1501 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 1502 0004 DBB2 uxtb r3, r3 1503 0006 202B cmp r3, #32 1504 0008 01D0 beq .L121 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1505 .loc 1 1219 0 1506 000a 0220 movs r0, #2 1507 .LVL124: 1508 000c 7047 bx lr 1509 .LVL125: 1510 .L121: 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1511 .loc 1 1194 0 1512 000e A9B1 cbz r1, .L118 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1513 .loc 1 1194 0 is_stmt 0 discriminator 1 1514 0010 B2B1 cbz r2, .L119 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1515 .loc 1 1200 0 is_stmt 1 1516 0012 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1517 0016 012B cmp r3, #1 1518 0018 14D0 beq .L120 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1519 .loc 1 1202 0 discriminator 2 1520 001a 0162 str r1, [r0, #32] ARM GAS /tmp/ccD7nRW1.s page 85 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1521 .loc 1 1203 0 discriminator 2 1522 001c 8284 strh r2, [r0, #36] @ movhi 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1523 .loc 1 1204 0 discriminator 2 1524 001e C284 strh r2, [r0, #38] @ movhi 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1525 .loc 1 1206 0 discriminator 2 1526 0020 0023 movs r3, #0 1527 0022 C363 str r3, [r0, #60] 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1528 .loc 1 1207 0 discriminator 2 1529 0024 2122 movs r2, #33 1530 .LVL126: 1531 0026 80F83920 strb r2, [r0, #57] 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1532 .loc 1 1210 0 discriminator 2 1533 002a 80F83830 strb r3, [r0, #56] 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1534 .loc 1 1213 0 discriminator 2 1535 002e 0168 ldr r1, [r0] 1536 .LVL127: 1537 0030 CA68 ldr r2, [r1, #12] 1538 0032 42F08002 orr r2, r2, #128 1539 0036 CA60 str r2, [r1, #12] 1540 .LVL128: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1541 .loc 1 1215 0 discriminator 2 1542 0038 1846 mov r0, r3 1543 .LVL129: 1544 003a 7047 bx lr 1545 .LVL130: 1546 .L118: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1547 .loc 1 1196 0 1548 003c 0120 movs r0, #1 1549 .LVL131: 1550 003e 7047 bx lr 1551 .LVL132: 1552 .L119: 1553 0040 0120 movs r0, #1 1554 .LVL133: 1555 0042 7047 bx lr 1556 .LVL134: 1557 .L120: 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1558 .loc 1 1200 0 1559 0044 0220 movs r0, #2 1560 .LVL135: 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1561 .loc 1 1221 0 1562 0046 7047 bx lr 1563 .cfi_endproc 1564 .LFE139: 1566 .section .text.HAL_UART_Receive_IT,"ax",%progbits 1567 .align 1 1568 .global HAL_UART_Receive_IT ARM GAS /tmp/ccD7nRW1.s page 86 1569 .syntax unified 1570 .thumb 1571 .thumb_func 1572 .fpu fpv4-sp-d16 1574 HAL_UART_Receive_IT: 1575 .LFB140: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1576 .loc 1 1232 0 1577 .cfi_startproc 1578 @ args = 0, pretend = 0, frame = 0 1579 @ frame_needed = 0, uses_anonymous_args = 0 1580 @ link register save eliminated. 1581 .LVL136: 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1582 .loc 1 1234 0 1583 0000 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 1584 0004 DBB2 uxtb r3, r3 1585 0006 202B cmp r3, #32 1586 0008 01D0 beq .L128 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1587 .loc 1 1267 0 1588 000a 0220 movs r0, #2 1589 .LVL137: 1590 000c 7047 bx lr 1591 .LVL138: 1592 .L128: 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1593 .loc 1 1236 0 1594 000e F9B1 cbz r1, .L125 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1595 .loc 1 1236 0 is_stmt 0 discriminator 1 1596 0010 02B3 cbz r2, .L126 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1597 .loc 1 1242 0 is_stmt 1 1598 0012 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1599 0016 012B cmp r3, #1 1600 0018 1ED0 beq .L127 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1601 .loc 1 1244 0 discriminator 2 1602 001a 8162 str r1, [r0, #40] 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1603 .loc 1 1245 0 discriminator 2 1604 001c 8285 strh r2, [r0, #44] @ movhi 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1605 .loc 1 1246 0 discriminator 2 1606 001e C285 strh r2, [r0, #46] @ movhi 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1607 .loc 1 1248 0 discriminator 2 1608 0020 0023 movs r3, #0 1609 0022 C363 str r3, [r0, #60] 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1610 .loc 1 1249 0 discriminator 2 1611 0024 2222 movs r2, #34 1612 .LVL139: 1613 0026 80F83A20 strb r2, [r0, #58] 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1614 .loc 1 1252 0 discriminator 2 ARM GAS /tmp/ccD7nRW1.s page 87 1615 002a 80F83830 strb r3, [r0, #56] 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1616 .loc 1 1255 0 discriminator 2 1617 002e 0168 ldr r1, [r0] 1618 .LVL140: 1619 0030 CA68 ldr r2, [r1, #12] 1620 0032 42F48072 orr r2, r2, #256 1621 0036 CA60 str r2, [r1, #12] 1622 .LVL141: 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1623 .loc 1 1258 0 discriminator 2 1624 0038 0168 ldr r1, [r0] 1625 003a 4A69 ldr r2, [r1, #20] 1626 003c 42F00102 orr r2, r2, #1 1627 0040 4A61 str r2, [r1, #20] 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1628 .loc 1 1261 0 discriminator 2 1629 0042 0168 ldr r1, [r0] 1630 0044 CA68 ldr r2, [r1, #12] 1631 0046 42F02002 orr r2, r2, #32 1632 004a CA60 str r2, [r1, #12] 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1633 .loc 1 1263 0 discriminator 2 1634 004c 1846 mov r0, r3 1635 .LVL142: 1636 004e 7047 bx lr 1637 .LVL143: 1638 .L125: 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1639 .loc 1 1238 0 1640 0050 0120 movs r0, #1 1641 .LVL144: 1642 0052 7047 bx lr 1643 .LVL145: 1644 .L126: 1645 0054 0120 movs r0, #1 1646 .LVL146: 1647 0056 7047 bx lr 1648 .LVL147: 1649 .L127: 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1650 .loc 1 1242 0 1651 0058 0220 movs r0, #2 1652 .LVL148: 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1653 .loc 1 1269 0 1654 005a 7047 bx lr 1655 .cfi_endproc 1656 .LFE140: 1658 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1659 .align 1 1660 .global HAL_UART_Transmit_DMA 1661 .syntax unified 1662 .thumb 1663 .thumb_func 1664 .fpu fpv4-sp-d16 1666 HAL_UART_Transmit_DMA: ARM GAS /tmp/ccD7nRW1.s page 88 1667 .LFB141: 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1668 .loc 1 1280 0 1669 .cfi_startproc 1670 @ args = 0, pretend = 0, frame = 0 1671 @ frame_needed = 0, uses_anonymous_args = 0 1672 .LVL149: 1673 0000 38B5 push {r3, r4, r5, lr} 1674 .LCFI20: 1675 .cfi_def_cfa_offset 16 1676 .cfi_offset 3, -16 1677 .cfi_offset 4, -12 1678 .cfi_offset 5, -8 1679 .cfi_offset 14, -4 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1680 .loc 1 1284 0 1681 0002 90F83940 ldrb r4, [r0, #57] @ zero_extendqisi2 1682 0006 E4B2 uxtb r4, r4 1683 0008 202C cmp r4, #32 1684 000a 01D0 beq .L136 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1685 .loc 1 1331 0 1686 000c 0220 movs r0, #2 1687 .LVL150: 1688 000e 38BD pop {r3, r4, r5, pc} 1689 .LVL151: 1690 .L136: 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1691 .loc 1 1286 0 1692 0010 0029 cmp r1, #0 1693 0012 31D0 beq .L132 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1694 .loc 1 1286 0 is_stmt 0 discriminator 1 1695 0014 002A cmp r2, #0 1696 0016 31D0 beq .L133 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1697 .loc 1 1292 0 is_stmt 1 1698 0018 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1699 001c 012B cmp r3, #1 1700 001e 01D1 bne .L137 1701 0020 0220 movs r0, #2 1702 .LVL152: 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1703 .loc 1 1333 0 1704 0022 38BD pop {r3, r4, r5, pc} 1705 .LVL153: 1706 .L137: 1707 0024 1346 mov r3, r2 1708 0026 0446 mov r4, r0 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1709 .loc 1 1292 0 discriminator 2 1710 0028 0122 movs r2, #1 1711 .LVL154: 1712 002a 80F83820 strb r2, [r0, #56] 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1713 .loc 1 1294 0 discriminator 2 1714 002e 0162 str r1, [r0, #32] ARM GAS /tmp/ccD7nRW1.s page 89 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1715 .loc 1 1295 0 discriminator 2 1716 0030 8384 strh r3, [r0, #36] @ movhi 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1717 .loc 1 1296 0 discriminator 2 1718 0032 C384 strh r3, [r0, #38] @ movhi 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1719 .loc 1 1298 0 discriminator 2 1720 0034 0025 movs r5, #0 1721 0036 C563 str r5, [r0, #60] 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1722 .loc 1 1299 0 discriminator 2 1723 0038 2122 movs r2, #33 1724 003a 80F83920 strb r2, [r0, #57] 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1725 .loc 1 1302 0 discriminator 2 1726 003e 026B ldr r2, [r0, #48] 1727 0040 0F48 ldr r0, .L138 1728 .LVL155: 1729 0042 D063 str r0, [r2, #60] 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1730 .loc 1 1305 0 discriminator 2 1731 0044 226B ldr r2, [r4, #48] 1732 0046 0F48 ldr r0, .L138+4 1733 0048 1064 str r0, [r2, #64] 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1734 .loc 1 1308 0 discriminator 2 1735 004a 226B ldr r2, [r4, #48] 1736 004c 0E48 ldr r0, .L138+8 1737 004e D064 str r0, [r2, #76] 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1738 .loc 1 1311 0 discriminator 2 1739 0050 226B ldr r2, [r4, #48] 1740 0052 1565 str r5, [r2, #80] 1741 .LVL156: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1742 .loc 1 1315 0 discriminator 2 1743 0054 2268 ldr r2, [r4] 1744 0056 0432 adds r2, r2, #4 1745 0058 206B ldr r0, [r4, #48] 1746 005a FFF7FEFF bl HAL_DMA_Start_IT 1747 .LVL157: 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1748 .loc 1 1318 0 discriminator 2 1749 005e 2368 ldr r3, [r4] 1750 0060 6FF04002 mvn r2, #64 1751 0064 1A60 str r2, [r3] 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1752 .loc 1 1321 0 discriminator 2 1753 0066 84F83850 strb r5, [r4, #56] 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1754 .loc 1 1325 0 discriminator 2 1755 006a 2268 ldr r2, [r4] 1756 006c 5369 ldr r3, [r2, #20] 1757 006e 43F08003 orr r3, r3, #128 1758 0072 5361 str r3, [r2, #20] 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 90 1759 .loc 1 1327 0 discriminator 2 1760 0074 2846 mov r0, r5 1761 0076 38BD pop {r3, r4, r5, pc} 1762 .LVL158: 1763 .L132: 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1764 .loc 1 1288 0 1765 0078 0120 movs r0, #1 1766 .LVL159: 1767 007a 38BD pop {r3, r4, r5, pc} 1768 .LVL160: 1769 .L133: 1770 007c 0120 movs r0, #1 1771 .LVL161: 1772 007e 38BD pop {r3, r4, r5, pc} 1773 .L139: 1774 .align 2 1775 .L138: 1776 0080 00000000 .word UART_DMATransmitCplt 1777 0084 00000000 .word UART_DMATxHalfCplt 1778 0088 00000000 .word UART_DMAError 1779 .cfi_endproc 1780 .LFE141: 1782 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 1783 .align 1 1784 .global HAL_UART_Receive_DMA 1785 .syntax unified 1786 .thumb 1787 .thumb_func 1788 .fpu fpv4-sp-d16 1790 HAL_UART_Receive_DMA: 1791 .LFB142: 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1792 .loc 1 1345 0 1793 .cfi_startproc 1794 @ args = 0, pretend = 0, frame = 8 1795 @ frame_needed = 0, uses_anonymous_args = 0 1796 .LVL162: 1797 0000 30B5 push {r4, r5, lr} 1798 .LCFI21: 1799 .cfi_def_cfa_offset 12 1800 .cfi_offset 4, -12 1801 .cfi_offset 5, -8 1802 .cfi_offset 14, -4 1803 0002 83B0 sub sp, sp, #12 1804 .LCFI22: 1805 .cfi_def_cfa_offset 24 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1806 .loc 1 1349 0 1807 0004 90F83A40 ldrb r4, [r0, #58] @ zero_extendqisi2 1808 0008 E4B2 uxtb r4, r4 1809 000a 202C cmp r4, #32 1810 000c 02D0 beq .L147 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1811 .loc 1 1401 0 1812 000e 0220 movs r0, #2 1813 .LVL163: ARM GAS /tmp/ccD7nRW1.s page 91 1814 .L141: 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1815 .loc 1 1403 0 1816 0010 03B0 add sp, sp, #12 1817 .LCFI23: 1818 .cfi_remember_state 1819 .cfi_def_cfa_offset 12 1820 @ sp needed 1821 0012 30BD pop {r4, r5, pc} 1822 .LVL164: 1823 .L147: 1824 .LCFI24: 1825 .cfi_restore_state 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1826 .loc 1 1351 0 1827 0014 0029 cmp r1, #0 1828 0016 3DD0 beq .L143 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1829 .loc 1 1351 0 is_stmt 0 discriminator 1 1830 0018 002A cmp r2, #0 1831 001a 3DD0 beq .L144 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1832 .loc 1 1357 0 is_stmt 1 1833 001c 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1834 0020 012B cmp r3, #1 1835 0022 01D1 bne .L148 1836 0024 0220 movs r0, #2 1837 .LVL165: 1838 0026 F3E7 b .L141 1839 .LVL166: 1840 .L148: 1841 0028 1346 mov r3, r2 1842 002a 0A46 mov r2, r1 1843 .LVL167: 1844 002c 0446 mov r4, r0 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1845 .loc 1 1357 0 is_stmt 0 discriminator 2 1846 002e 0121 movs r1, #1 1847 .LVL168: 1848 0030 80F83810 strb r1, [r0, #56] 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1849 .loc 1 1359 0 is_stmt 1 discriminator 2 1850 0034 8262 str r2, [r0, #40] 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1851 .loc 1 1360 0 discriminator 2 1852 0036 8385 strh r3, [r0, #44] @ movhi 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1853 .loc 1 1362 0 discriminator 2 1854 0038 0025 movs r5, #0 1855 003a C563 str r5, [r0, #60] 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1856 .loc 1 1363 0 discriminator 2 1857 003c 2221 movs r1, #34 1858 003e 80F83A10 strb r1, [r0, #58] 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1859 .loc 1 1366 0 discriminator 2 1860 0042 416B ldr r1, [r0, #52] ARM GAS /tmp/ccD7nRW1.s page 92 1861 0044 1548 ldr r0, .L149 1862 .LVL169: 1863 0046 C863 str r0, [r1, #60] 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1864 .loc 1 1369 0 discriminator 2 1865 0048 616B ldr r1, [r4, #52] 1866 004a 1548 ldr r0, .L149+4 1867 004c 0864 str r0, [r1, #64] 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1868 .loc 1 1372 0 discriminator 2 1869 004e 616B ldr r1, [r4, #52] 1870 0050 1448 ldr r0, .L149+8 1871 0052 C864 str r0, [r1, #76] 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1872 .loc 1 1375 0 discriminator 2 1873 0054 616B ldr r1, [r4, #52] 1874 0056 0D65 str r5, [r1, #80] 1875 .LVL170: 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1876 .loc 1 1379 0 discriminator 2 1877 0058 2168 ldr r1, [r4] 1878 005a 0431 adds r1, r1, #4 1879 005c 606B ldr r0, [r4, #52] 1880 005e FFF7FEFF bl HAL_DMA_Start_IT 1881 .LVL171: 1882 .LBB2: 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1883 .loc 1 1382 0 discriminator 2 1884 0062 0195 str r5, [sp, #4] 1885 0064 2368 ldr r3, [r4] 1886 0066 1A68 ldr r2, [r3] 1887 0068 0192 str r2, [sp, #4] 1888 006a 5A68 ldr r2, [r3, #4] 1889 006c 0192 str r2, [sp, #4] 1890 006e 019A ldr r2, [sp, #4] 1891 .LBE2: 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1892 .loc 1 1385 0 discriminator 2 1893 0070 84F83850 strb r5, [r4, #56] 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1894 .loc 1 1388 0 discriminator 2 1895 0074 DA68 ldr r2, [r3, #12] 1896 0076 42F48072 orr r2, r2, #256 1897 007a DA60 str r2, [r3, #12] 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1898 .loc 1 1391 0 discriminator 2 1899 007c 2268 ldr r2, [r4] 1900 007e 5369 ldr r3, [r2, #20] 1901 0080 43F00103 orr r3, r3, #1 1902 0084 5361 str r3, [r2, #20] 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1903 .loc 1 1395 0 discriminator 2 1904 0086 2268 ldr r2, [r4] 1905 0088 5369 ldr r3, [r2, #20] 1906 008a 43F04003 orr r3, r3, #64 1907 008e 5361 str r3, [r2, #20] 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccD7nRW1.s page 93 1908 .loc 1 1397 0 discriminator 2 1909 0090 2846 mov r0, r5 1910 0092 BDE7 b .L141 1911 .LVL172: 1912 .L143: 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1913 .loc 1 1353 0 1914 0094 0120 movs r0, #1 1915 .LVL173: 1916 0096 BBE7 b .L141 1917 .LVL174: 1918 .L144: 1919 0098 0120 movs r0, #1 1920 .LVL175: 1921 009a B9E7 b .L141 1922 .L150: 1923 .align 2 1924 .L149: 1925 009c 00000000 .word UART_DMAReceiveCplt 1926 00a0 00000000 .word UART_DMARxHalfCplt 1927 00a4 00000000 .word UART_DMAError 1928 .cfi_endproc 1929 .LFE142: 1931 .section .text.HAL_UART_DMAPause,"ax",%progbits 1932 .align 1 1933 .global HAL_UART_DMAPause 1934 .syntax unified 1935 .thumb 1936 .thumb_func 1937 .fpu fpv4-sp-d16 1939 HAL_UART_DMAPause: 1940 .LFB143: 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1941 .loc 1 1412 0 1942 .cfi_startproc 1943 @ args = 0, pretend = 0, frame = 0 1944 @ frame_needed = 0, uses_anonymous_args = 0 1945 @ link register save eliminated. 1946 .LVL176: 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1947 .loc 1 1416 0 1948 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1949 0004 012B cmp r3, #1 1950 0006 31D0 beq .L155 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1951 .loc 1 1416 0 is_stmt 0 discriminator 2 1952 0008 0123 movs r3, #1 1953 000a 80F83830 strb r3, [r0, #56] 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1954 .loc 1 1418 0 is_stmt 1 discriminator 2 1955 000e 0168 ldr r1, [r0] 1956 0010 4A69 ldr r2, [r1, #20] 1957 0012 02F08002 and r2, r2, #128 1958 .LVL177: 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1959 .loc 1 1419 0 discriminator 2 1960 0016 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 ARM GAS /tmp/ccD7nRW1.s page 94 1961 001a DBB2 uxtb r3, r3 1962 001c 212B cmp r3, #33 1963 001e 0DD0 beq .L156 1964 .L153: 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1965 .loc 1 1425 0 1966 0020 0168 ldr r1, [r0] 1967 0022 4A69 ldr r2, [r1, #20] 1968 .LVL178: 1969 0024 02F04002 and r2, r2, #64 1970 .LVL179: 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1971 .loc 1 1426 0 1972 0028 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 1973 002c DBB2 uxtb r3, r3 1974 002e 222B cmp r3, #34 1975 0030 0BD0 beq .L157 1976 .LVL180: 1977 .L154: 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1978 .loc 1 1437 0 1979 0032 0023 movs r3, #0 1980 0034 80F83830 strb r3, [r0, #56] 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1981 .loc 1 1439 0 1982 0038 1846 mov r0, r3 1983 .LVL181: 1984 003a 7047 bx lr 1985 .LVL182: 1986 .L156: 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1987 .loc 1 1419 0 discriminator 1 1988 003c 002A cmp r2, #0 1989 003e EFD0 beq .L153 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1990 .loc 1 1422 0 1991 0040 4B69 ldr r3, [r1, #20] 1992 0042 23F08003 bic r3, r3, #128 1993 0046 4B61 str r3, [r1, #20] 1994 0048 EAE7 b .L153 1995 .L157: 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1996 .loc 1 1426 0 discriminator 1 1997 004a 002A cmp r2, #0 1998 004c F1D0 beq .L154 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1999 .loc 1 1429 0 2000 004e CB68 ldr r3, [r1, #12] 2001 0050 23F48073 bic r3, r3, #256 2002 0054 CB60 str r3, [r1, #12] 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2003 .loc 1 1430 0 2004 0056 0268 ldr r2, [r0] 2005 .LVL183: 2006 0058 5369 ldr r3, [r2, #20] 2007 005a 23F00103 bic r3, r3, #1 2008 005e 5361 str r3, [r2, #20] ARM GAS /tmp/ccD7nRW1.s page 95 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2009 .loc 1 1433 0 2010 0060 0268 ldr r2, [r0] 2011 0062 5369 ldr r3, [r2, #20] 2012 0064 23F04003 bic r3, r3, #64 2013 0068 5361 str r3, [r2, #20] 2014 006a E2E7 b .L154 2015 .LVL184: 2016 .L155: 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2017 .loc 1 1416 0 2018 006c 0220 movs r0, #2 2019 .LVL185: 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2020 .loc 1 1440 0 2021 006e 7047 bx lr 2022 .cfi_endproc 2023 .LFE143: 2025 .section .text.HAL_UART_DMAResume,"ax",%progbits 2026 .align 1 2027 .global HAL_UART_DMAResume 2028 .syntax unified 2029 .thumb 2030 .thumb_func 2031 .fpu fpv4-sp-d16 2033 HAL_UART_DMAResume: 2034 .LFB144: 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2035 .loc 1 1449 0 2036 .cfi_startproc 2037 @ args = 0, pretend = 0, frame = 8 2038 @ frame_needed = 0, uses_anonymous_args = 0 2039 @ link register save eliminated. 2040 .LVL186: 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2041 .loc 1 1451 0 2042 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 2043 0004 012B cmp r3, #1 2044 0006 34D0 beq .L162 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2045 .loc 1 1451 0 is_stmt 0 discriminator 2 2046 0008 0123 movs r3, #1 2047 000a 80F83830 strb r3, [r0, #56] 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2048 .loc 1 1453 0 is_stmt 1 discriminator 2 2049 000e 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 2050 0012 DBB2 uxtb r3, r3 2051 0014 212B cmp r3, #33 2052 0016 09D0 beq .L168 2053 .L160: 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2054 .loc 1 1459 0 2055 0018 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 2056 001c DBB2 uxtb r3, r3 2057 001e 222B cmp r3, #34 2058 0020 0AD0 beq .L169 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 96 2059 .loc 1 1473 0 2060 0022 0023 movs r3, #0 2061 0024 80F83830 strb r3, [r0, #56] 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2062 .loc 1 1475 0 2063 0028 1846 mov r0, r3 2064 .LVL187: 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2065 .loc 1 1476 0 2066 002a 7047 bx lr 2067 .LVL188: 2068 .L168: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2069 .loc 1 1456 0 2070 002c 0268 ldr r2, [r0] 2071 002e 5369 ldr r3, [r2, #20] 2072 0030 43F08003 orr r3, r3, #128 2073 0034 5361 str r3, [r2, #20] 2074 0036 EFE7 b .L160 2075 .L169: 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2076 .loc 1 1449 0 2077 0038 82B0 sub sp, sp, #8 2078 .LCFI25: 2079 .cfi_def_cfa_offset 8 2080 .LBB3: 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2081 .loc 1 1462 0 2082 003a 0023 movs r3, #0 2083 003c 0193 str r3, [sp, #4] 2084 003e 0368 ldr r3, [r0] 2085 0040 1A68 ldr r2, [r3] 2086 0042 0192 str r2, [sp, #4] 2087 0044 5A68 ldr r2, [r3, #4] 2088 0046 0192 str r2, [sp, #4] 2089 0048 019A ldr r2, [sp, #4] 2090 .LBE3: 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 2091 .loc 1 1465 0 2092 004a DA68 ldr r2, [r3, #12] 2093 004c 42F48072 orr r2, r2, #256 2094 0050 DA60 str r2, [r3, #12] 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2095 .loc 1 1466 0 2096 0052 0268 ldr r2, [r0] 2097 0054 5369 ldr r3, [r2, #20] 2098 0056 43F00103 orr r3, r3, #1 2099 005a 5361 str r3, [r2, #20] 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2100 .loc 1 1469 0 2101 005c 0268 ldr r2, [r0] 2102 005e 5369 ldr r3, [r2, #20] 2103 0060 43F04003 orr r3, r3, #64 2104 0064 5361 str r3, [r2, #20] 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2105 .loc 1 1473 0 2106 0066 0023 movs r3, #0 ARM GAS /tmp/ccD7nRW1.s page 97 2107 0068 80F83830 strb r3, [r0, #56] 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2108 .loc 1 1475 0 2109 006c 1846 mov r0, r3 2110 .LVL189: 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2111 .loc 1 1476 0 2112 006e 02B0 add sp, sp, #8 2113 .LCFI26: 2114 .cfi_def_cfa_offset 0 2115 @ sp needed 2116 0070 7047 bx lr 2117 .LVL190: 2118 .L162: 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2119 .loc 1 1451 0 2120 0072 0220 movs r0, #2 2121 .LVL191: 2122 0074 7047 bx lr 2123 .cfi_endproc 2124 .LFE144: 2126 .section .text.HAL_UART_DMAStop,"ax",%progbits 2127 .align 1 2128 .global HAL_UART_DMAStop 2129 .syntax unified 2130 .thumb 2131 .thumb_func 2132 .fpu fpv4-sp-d16 2134 HAL_UART_DMAStop: 2135 .LFB145: 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2136 .loc 1 1485 0 2137 .cfi_startproc 2138 @ args = 0, pretend = 0, frame = 0 2139 @ frame_needed = 0, uses_anonymous_args = 0 2140 .LVL192: 2141 0000 10B5 push {r4, lr} 2142 .LCFI27: 2143 .cfi_def_cfa_offset 8 2144 .cfi_offset 4, -8 2145 .cfi_offset 14, -4 2146 0002 0446 mov r4, r0 2147 .LVL193: 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2148 .loc 1 1494 0 2149 0004 0168 ldr r1, [r0] 2150 0006 4A69 ldr r2, [r1, #20] 2151 .LVL194: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2152 .loc 1 1495 0 2153 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 2154 000c DBB2 uxtb r3, r3 2155 000e 212B cmp r3, #33 2156 0010 0AD0 beq .L176 2157 .LVL195: 2158 .L171: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) ARM GAS /tmp/ccD7nRW1.s page 98 2159 .loc 1 1508 0 2160 0012 2168 ldr r1, [r4] 2161 0014 4A69 ldr r2, [r1, #20] 2162 0016 02F04002 and r2, r2, #64 2163 .LVL196: 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2164 .loc 1 1509 0 2165 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2 2166 001e DBB2 uxtb r3, r3 2167 0020 222B cmp r3, #34 2168 0022 11D0 beq .L177 2169 .LVL197: 2170 .L173: 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2171 .loc 1 1522 0 2172 0024 0020 movs r0, #0 2173 0026 10BD pop {r4, pc} 2174 .LVL198: 2175 .L176: 2176 0028 02F08002 and r2, r2, #128 2177 .LVL199: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2178 .loc 1 1495 0 discriminator 1 2179 002c 002A cmp r2, #0 2180 002e F0D0 beq .L171 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2181 .loc 1 1497 0 2182 0030 4B69 ldr r3, [r1, #20] 2183 0032 23F08003 bic r3, r3, #128 2184 0036 4B61 str r3, [r1, #20] 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2185 .loc 1 1500 0 2186 0038 006B ldr r0, [r0, #48] 2187 .LVL200: 2188 003a 08B1 cbz r0, .L172 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2189 .loc 1 1502 0 2190 003c FFF7FEFF bl HAL_DMA_Abort 2191 .LVL201: 2192 .L172: 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2193 .loc 1 1504 0 2194 0040 2046 mov r0, r4 2195 0042 FFF7FEFF bl UART_EndTxTransfer 2196 .LVL202: 2197 0046 E4E7 b .L171 2198 .LVL203: 2199 .L177: 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2200 .loc 1 1509 0 discriminator 1 2201 0048 002A cmp r2, #0 2202 004a EBD0 beq .L173 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2203 .loc 1 1511 0 2204 004c 4B69 ldr r3, [r1, #20] 2205 004e 23F04003 bic r3, r3, #64 2206 0052 4B61 str r3, [r1, #20] ARM GAS /tmp/ccD7nRW1.s page 99 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2207 .loc 1 1514 0 2208 0054 606B ldr r0, [r4, #52] 2209 0056 08B1 cbz r0, .L174 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2210 .loc 1 1516 0 2211 0058 FFF7FEFF bl HAL_DMA_Abort 2212 .LVL204: 2213 .L174: 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2214 .loc 1 1518 0 2215 005c 2046 mov r0, r4 2216 005e FFF7FEFF bl UART_EndRxTransfer 2217 .LVL205: 2218 0062 DFE7 b .L173 2219 .cfi_endproc 2220 .LFE145: 2222 .section .text.HAL_UART_Abort,"ax",%progbits 2223 .align 1 2224 .global HAL_UART_Abort 2225 .syntax unified 2226 .thumb 2227 .thumb_func 2228 .fpu fpv4-sp-d16 2230 HAL_UART_Abort: 2231 .LFB146: 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2232 .loc 1 1537 0 2233 .cfi_startproc 2234 @ args = 0, pretend = 0, frame = 0 2235 @ frame_needed = 0, uses_anonymous_args = 0 2236 .LVL206: 2237 0000 10B5 push {r4, lr} 2238 .LCFI28: 2239 .cfi_def_cfa_offset 8 2240 .cfi_offset 4, -8 2241 .cfi_offset 14, -4 2242 0002 0446 mov r4, r0 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2243 .loc 1 1539 0 2244 0004 0268 ldr r2, [r0] 2245 0006 D368 ldr r3, [r2, #12] 2246 0008 23F4F073 bic r3, r3, #480 2247 000c D360 str r3, [r2, #12] 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2248 .loc 1 1540 0 2249 000e 0268 ldr r2, [r0] 2250 0010 5369 ldr r3, [r2, #20] 2251 0012 23F00103 bic r3, r3, #1 2252 0016 5361 str r3, [r2, #20] 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2253 .loc 1 1543 0 2254 0018 0368 ldr r3, [r0] 2255 001a 5A69 ldr r2, [r3, #20] 2256 001c 12F0800F tst r2, #128 2257 0020 0BD0 beq .L179 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 100 2258 .loc 1 1545 0 2259 0022 5A69 ldr r2, [r3, #20] 2260 0024 22F08002 bic r2, r2, #128 2261 0028 5A61 str r2, [r3, #20] 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2262 .loc 1 1548 0 2263 002a 036B ldr r3, [r0, #48] 2264 002c 2BB1 cbz r3, .L179 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2265 .loc 1 1552 0 2266 002e 0022 movs r2, #0 2267 0030 1A65 str r2, [r3, #80] 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2268 .loc 1 1554 0 2269 0032 006B ldr r0, [r0, #48] 2270 .LVL207: 2271 0034 FFF7FEFF bl HAL_DMA_Abort 2272 .LVL208: 2273 0038 D0B9 cbnz r0, .L183 2274 .L179: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2275 .loc 1 1568 0 2276 003a 2368 ldr r3, [r4] 2277 003c 5A69 ldr r2, [r3, #20] 2278 003e 12F0400F tst r2, #64 2279 0042 0BD0 beq .L181 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2280 .loc 1 1570 0 2281 0044 5A69 ldr r2, [r3, #20] 2282 0046 22F04002 bic r2, r2, #64 2283 004a 5A61 str r2, [r3, #20] 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2284 .loc 1 1573 0 2285 004c 636B ldr r3, [r4, #52] 2286 004e 2BB1 cbz r3, .L181 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2287 .loc 1 1577 0 2288 0050 0022 movs r2, #0 2289 0052 1A65 str r2, [r3, #80] 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2290 .loc 1 1579 0 2291 0054 606B ldr r0, [r4, #52] 2292 0056 FFF7FEFF bl HAL_DMA_Abort 2293 .LVL209: 2294 005a 90B9 cbnz r0, .L184 2295 .L181: 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2296 .loc 1 1593 0 2297 005c 0020 movs r0, #0 2298 005e E084 strh r0, [r4, #38] @ movhi 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2299 .loc 1 1594 0 2300 0060 E085 strh r0, [r4, #46] @ movhi 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2301 .loc 1 1597 0 2302 0062 E063 str r0, [r4, #60] 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; ARM GAS /tmp/ccD7nRW1.s page 101 2303 .loc 1 1600 0 2304 0064 2023 movs r3, #32 2305 0066 84F83A30 strb r3, [r4, #58] 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2306 .loc 1 1601 0 2307 006a 84F83930 strb r3, [r4, #57] 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2308 .loc 1 1604 0 2309 006e 10BD pop {r4, pc} 2310 .LVL210: 2311 .L183: 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2312 .loc 1 1556 0 2313 0070 206B ldr r0, [r4, #48] 2314 0072 FFF7FEFF bl HAL_DMA_GetError 2315 .LVL211: 2316 0076 2028 cmp r0, #32 2317 0078 DFD1 bne .L179 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2318 .loc 1 1559 0 2319 007a 1023 movs r3, #16 2320 007c E363 str r3, [r4, #60] 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2321 .loc 1 1561 0 2322 007e 0320 movs r0, #3 2323 0080 10BD pop {r4, pc} 2324 .LVL212: 2325 .L184: 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2326 .loc 1 1581 0 2327 0082 606B ldr r0, [r4, #52] 2328 0084 FFF7FEFF bl HAL_DMA_GetError 2329 .LVL213: 2330 0088 2028 cmp r0, #32 2331 008a E7D1 bne .L181 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2332 .loc 1 1584 0 2333 008c 1023 movs r3, #16 2334 008e E363 str r3, [r4, #60] 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2335 .loc 1 1586 0 2336 0090 0320 movs r0, #3 2337 0092 10BD pop {r4, pc} 2338 .cfi_endproc 2339 .LFE146: 2341 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 2342 .align 1 2343 .global HAL_UART_AbortTransmit 2344 .syntax unified 2345 .thumb 2346 .thumb_func 2347 .fpu fpv4-sp-d16 2349 HAL_UART_AbortTransmit: 2350 .LFB147: 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2351 .loc 1 1619 0 2352 .cfi_startproc ARM GAS /tmp/ccD7nRW1.s page 102 2353 @ args = 0, pretend = 0, frame = 0 2354 @ frame_needed = 0, uses_anonymous_args = 0 2355 .LVL214: 2356 0000 10B5 push {r4, lr} 2357 .LCFI29: 2358 .cfi_def_cfa_offset 8 2359 .cfi_offset 4, -8 2360 .cfi_offset 14, -4 2361 0002 0446 mov r4, r0 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2362 .loc 1 1621 0 2363 0004 0268 ldr r2, [r0] 2364 0006 D368 ldr r3, [r2, #12] 2365 0008 23F0C003 bic r3, r3, #192 2366 000c D360 str r3, [r2, #12] 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2367 .loc 1 1624 0 2368 000e 0368 ldr r3, [r0] 2369 0010 5A69 ldr r2, [r3, #20] 2370 0012 12F0800F tst r2, #128 2371 0016 0BD0 beq .L186 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2372 .loc 1 1626 0 2373 0018 5A69 ldr r2, [r3, #20] 2374 001a 22F08002 bic r2, r2, #128 2375 001e 5A61 str r2, [r3, #20] 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2376 .loc 1 1629 0 2377 0020 036B ldr r3, [r0, #48] 2378 0022 2BB1 cbz r3, .L186 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2379 .loc 1 1633 0 2380 0024 0022 movs r2, #0 2381 0026 1A65 str r2, [r3, #80] 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2382 .loc 1 1635 0 2383 0028 006B ldr r0, [r0, #48] 2384 .LVL215: 2385 002a FFF7FEFF bl HAL_DMA_Abort 2386 .LVL216: 2387 002e 28B9 cbnz r0, .L189 2388 .L186: 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2389 .loc 1 1649 0 2390 0030 0020 movs r0, #0 2391 0032 E084 strh r0, [r4, #38] @ movhi 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2392 .loc 1 1652 0 2393 0034 2023 movs r3, #32 2394 0036 84F83930 strb r3, [r4, #57] 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2395 .loc 1 1655 0 2396 003a 10BD pop {r4, pc} 2397 .LVL217: 2398 .L189: 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2399 .loc 1 1637 0 ARM GAS /tmp/ccD7nRW1.s page 103 2400 003c 206B ldr r0, [r4, #48] 2401 003e FFF7FEFF bl HAL_DMA_GetError 2402 .LVL218: 2403 0042 2028 cmp r0, #32 2404 0044 F4D1 bne .L186 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2405 .loc 1 1640 0 2406 0046 1023 movs r3, #16 2407 0048 E363 str r3, [r4, #60] 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2408 .loc 1 1642 0 2409 004a 0320 movs r0, #3 2410 004c 10BD pop {r4, pc} 2411 .cfi_endproc 2412 .LFE147: 2414 .section .text.HAL_UART_AbortReceive,"ax",%progbits 2415 .align 1 2416 .global HAL_UART_AbortReceive 2417 .syntax unified 2418 .thumb 2419 .thumb_func 2420 .fpu fpv4-sp-d16 2422 HAL_UART_AbortReceive: 2423 .LFB148: 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2424 .loc 1 1670 0 2425 .cfi_startproc 2426 @ args = 0, pretend = 0, frame = 0 2427 @ frame_needed = 0, uses_anonymous_args = 0 2428 .LVL219: 2429 0000 10B5 push {r4, lr} 2430 .LCFI30: 2431 .cfi_def_cfa_offset 8 2432 .cfi_offset 4, -8 2433 .cfi_offset 14, -4 2434 0002 0446 mov r4, r0 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2435 .loc 1 1672 0 2436 0004 0268 ldr r2, [r0] 2437 0006 D368 ldr r3, [r2, #12] 2438 0008 23F49073 bic r3, r3, #288 2439 000c D360 str r3, [r2, #12] 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2440 .loc 1 1673 0 2441 000e 0268 ldr r2, [r0] 2442 0010 5369 ldr r3, [r2, #20] 2443 0012 23F00103 bic r3, r3, #1 2444 0016 5361 str r3, [r2, #20] 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2445 .loc 1 1676 0 2446 0018 0368 ldr r3, [r0] 2447 001a 5A69 ldr r2, [r3, #20] 2448 001c 12F0400F tst r2, #64 2449 0020 0BD0 beq .L191 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2450 .loc 1 1678 0 2451 0022 5A69 ldr r2, [r3, #20] ARM GAS /tmp/ccD7nRW1.s page 104 2452 0024 22F04002 bic r2, r2, #64 2453 0028 5A61 str r2, [r3, #20] 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2454 .loc 1 1681 0 2455 002a 436B ldr r3, [r0, #52] 2456 002c 2BB1 cbz r3, .L191 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2457 .loc 1 1685 0 2458 002e 0022 movs r2, #0 2459 0030 1A65 str r2, [r3, #80] 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2460 .loc 1 1687 0 2461 0032 406B ldr r0, [r0, #52] 2462 .LVL220: 2463 0034 FFF7FEFF bl HAL_DMA_Abort 2464 .LVL221: 2465 0038 28B9 cbnz r0, .L194 2466 .L191: 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2467 .loc 1 1701 0 2468 003a 0020 movs r0, #0 2469 003c E085 strh r0, [r4, #46] @ movhi 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2470 .loc 1 1704 0 2471 003e 2023 movs r3, #32 2472 0040 84F83A30 strb r3, [r4, #58] 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2473 .loc 1 1707 0 2474 0044 10BD pop {r4, pc} 2475 .LVL222: 2476 .L194: 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2477 .loc 1 1689 0 2478 0046 606B ldr r0, [r4, #52] 2479 0048 FFF7FEFF bl HAL_DMA_GetError 2480 .LVL223: 2481 004c 2028 cmp r0, #32 2482 004e F4D1 bne .L191 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2483 .loc 1 1692 0 2484 0050 1023 movs r3, #16 2485 0052 E363 str r3, [r4, #60] 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2486 .loc 1 1694 0 2487 0054 0320 movs r0, #3 2488 0056 10BD pop {r4, pc} 2489 .cfi_endproc 2490 .LFE148: 2492 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 2493 .align 1 2494 .weak HAL_UART_TxCpltCallback 2495 .syntax unified 2496 .thumb 2497 .thumb_func 2498 .fpu fpv4-sp-d16 2500 HAL_UART_TxCpltCallback: 2501 .LFB153: ARM GAS /tmp/ccD7nRW1.s page 105 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2502 .loc 1 2145 0 2503 .cfi_startproc 2504 @ args = 0, pretend = 0, frame = 0 2505 @ frame_needed = 0, uses_anonymous_args = 0 2506 @ link register save eliminated. 2507 .LVL224: 2508 0000 7047 bx lr 2509 .cfi_endproc 2510 .LFE153: 2512 .section .text.UART_DMATransmitCplt,"ax",%progbits 2513 .align 1 2514 .syntax unified 2515 .thumb 2516 .thumb_func 2517 .fpu fpv4-sp-d16 2519 UART_DMATransmitCplt: 2520 .LFB168: 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2521 .loc 1 2520 0 2522 .cfi_startproc 2523 @ args = 0, pretend = 0, frame = 0 2524 @ frame_needed = 0, uses_anonymous_args = 0 2525 .LVL225: 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2526 .loc 1 2520 0 2527 0000 08B5 push {r3, lr} 2528 .LCFI31: 2529 .cfi_def_cfa_offset 8 2530 .cfi_offset 3, -8 2531 .cfi_offset 14, -4 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 2532 .loc 1 2521 0 2533 0002 836B ldr r3, [r0, #56] 2534 .LVL226: 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2535 .loc 1 2523 0 2536 0004 0268 ldr r2, [r0] 2537 0006 1268 ldr r2, [r2] 2538 0008 12F4807F tst r2, #256 2539 000c 0CD1 bne .L197 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2540 .loc 1 2525 0 2541 000e 0022 movs r2, #0 2542 0010 DA84 strh r2, [r3, #38] @ movhi 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2543 .loc 1 2529 0 2544 0012 1968 ldr r1, [r3] 2545 0014 4A69 ldr r2, [r1, #20] 2546 0016 22F08002 bic r2, r2, #128 2547 001a 4A61 str r2, [r1, #20] 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2548 .loc 1 2532 0 2549 001c 1A68 ldr r2, [r3] 2550 001e D368 ldr r3, [r2, #12] 2551 .LVL227: 2552 0020 43F04003 orr r3, r3, #64 ARM GAS /tmp/ccD7nRW1.s page 106 2553 0024 D360 str r3, [r2, #12] 2554 0026 08BD pop {r3, pc} 2555 .LVL228: 2556 .L197: 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2557 .loc 1 2543 0 2558 0028 1846 mov r0, r3 2559 .LVL229: 2560 002a FFF7FEFF bl HAL_UART_TxCpltCallback 2561 .LVL230: 2562 002e 08BD pop {r3, pc} 2563 .cfi_endproc 2564 .LFE168: 2566 .section .text.UART_EndTransmit_IT,"ax",%progbits 2567 .align 1 2568 .syntax unified 2569 .thumb 2570 .thumb_func 2571 .fpu fpv4-sp-d16 2573 UART_EndTransmit_IT: 2574 .LFB182: 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 2575 .loc 1 2945 0 2576 .cfi_startproc 2577 @ args = 0, pretend = 0, frame = 0 2578 @ frame_needed = 0, uses_anonymous_args = 0 2579 .LVL231: 2580 0000 08B5 push {r3, lr} 2581 .LCFI32: 2582 .cfi_def_cfa_offset 8 2583 .cfi_offset 3, -8 2584 .cfi_offset 14, -4 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2585 .loc 1 2947 0 2586 0002 0168 ldr r1, [r0] 2587 0004 CB68 ldr r3, [r1, #12] 2588 0006 23F04003 bic r3, r3, #64 2589 000a CB60 str r3, [r1, #12] 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2590 .loc 1 2950 0 2591 000c 2023 movs r3, #32 2592 000e 80F83930 strb r3, [r0, #57] 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2593 .loc 1 2957 0 2594 0012 FFF7FEFF bl HAL_UART_TxCpltCallback 2595 .LVL232: 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2596 .loc 1 2961 0 2597 0016 0020 movs r0, #0 2598 0018 08BD pop {r3, pc} 2599 .cfi_endproc 2600 .LFE182: 2602 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 2603 .align 1 2604 .weak HAL_UART_TxHalfCpltCallback 2605 .syntax unified 2606 .thumb ARM GAS /tmp/ccD7nRW1.s page 107 2607 .thumb_func 2608 .fpu fpv4-sp-d16 2610 HAL_UART_TxHalfCpltCallback: 2611 .LFB154: 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2612 .loc 1 2160 0 2613 .cfi_startproc 2614 @ args = 0, pretend = 0, frame = 0 2615 @ frame_needed = 0, uses_anonymous_args = 0 2616 @ link register save eliminated. 2617 .LVL233: 2618 0000 7047 bx lr 2619 .cfi_endproc 2620 .LFE154: 2622 .section .text.UART_DMATxHalfCplt,"ax",%progbits 2623 .align 1 2624 .syntax unified 2625 .thumb 2626 .thumb_func 2627 .fpu fpv4-sp-d16 2629 UART_DMATxHalfCplt: 2630 .LFB169: 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2631 .loc 1 2555 0 2632 .cfi_startproc 2633 @ args = 0, pretend = 0, frame = 0 2634 @ frame_needed = 0, uses_anonymous_args = 0 2635 .LVL234: 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2636 .loc 1 2555 0 2637 0000 08B5 push {r3, lr} 2638 .LCFI33: 2639 .cfi_def_cfa_offset 8 2640 .cfi_offset 3, -8 2641 .cfi_offset 14, -4 2642 .LVL235: 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2643 .loc 1 2563 0 2644 0002 806B ldr r0, [r0, #56] 2645 .LVL236: 2646 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 2647 .LVL237: 2648 0008 08BD pop {r3, pc} 2649 .cfi_endproc 2650 .LFE169: 2652 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 2653 .align 1 2654 .weak HAL_UART_RxCpltCallback 2655 .syntax unified 2656 .thumb 2657 .thumb_func 2658 .fpu fpv4-sp-d16 2660 HAL_UART_RxCpltCallback: 2661 .LFB155: 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2662 .loc 1 2175 0 2663 .cfi_startproc ARM GAS /tmp/ccD7nRW1.s page 108 2664 @ args = 0, pretend = 0, frame = 0 2665 @ frame_needed = 0, uses_anonymous_args = 0 2666 @ link register save eliminated. 2667 .LVL238: 2668 0000 7047 bx lr 2669 .cfi_endproc 2670 .LFE155: 2672 .section .text.UART_DMAReceiveCplt,"ax",%progbits 2673 .align 1 2674 .syntax unified 2675 .thumb 2676 .thumb_func 2677 .fpu fpv4-sp-d16 2679 UART_DMAReceiveCplt: 2680 .LFB170: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2681 .loc 1 2574 0 2682 .cfi_startproc 2683 @ args = 0, pretend = 0, frame = 0 2684 @ frame_needed = 0, uses_anonymous_args = 0 2685 .LVL239: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2686 .loc 1 2574 0 2687 0000 08B5 push {r3, lr} 2688 .LCFI34: 2689 .cfi_def_cfa_offset 8 2690 .cfi_offset 3, -8 2691 .cfi_offset 14, -4 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 2692 .loc 1 2575 0 2693 0002 836B ldr r3, [r0, #56] 2694 .LVL240: 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2695 .loc 1 2577 0 2696 0004 0268 ldr r2, [r0] 2697 0006 1268 ldr r2, [r2] 2698 0008 12F4807F tst r2, #256 2699 000c 13D1 bne .L207 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2700 .loc 1 2579 0 2701 000e 0022 movs r2, #0 2702 0010 DA85 strh r2, [r3, #46] @ movhi 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2703 .loc 1 2582 0 2704 0012 1968 ldr r1, [r3] 2705 0014 CA68 ldr r2, [r1, #12] 2706 0016 22F48072 bic r2, r2, #256 2707 001a CA60 str r2, [r1, #12] 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2708 .loc 1 2583 0 2709 001c 1968 ldr r1, [r3] 2710 001e 4A69 ldr r2, [r1, #20] 2711 0020 22F00102 bic r2, r2, #1 2712 0024 4A61 str r2, [r1, #20] 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2713 .loc 1 2587 0 2714 0026 1968 ldr r1, [r3] ARM GAS /tmp/ccD7nRW1.s page 109 2715 0028 4A69 ldr r2, [r1, #20] 2716 002a 22F04002 bic r2, r2, #64 2717 002e 4A61 str r2, [r1, #20] 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2718 .loc 1 2590 0 2719 0030 2022 movs r2, #32 2720 0032 83F83A20 strb r2, [r3, #58] 2721 .L207: 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2722 .loc 1 2597 0 2723 0036 1846 mov r0, r3 2724 .LVL241: 2725 0038 FFF7FEFF bl HAL_UART_RxCpltCallback 2726 .LVL242: 2727 003c 08BD pop {r3, pc} 2728 .cfi_endproc 2729 .LFE170: 2731 .section .text.UART_Receive_IT,"ax",%progbits 2732 .align 1 2733 .syntax unified 2734 .thumb 2735 .thumb_func 2736 .fpu fpv4-sp-d16 2738 UART_Receive_IT: 2739 .LFB183: 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 2740 .loc 1 2970 0 2741 .cfi_startproc 2742 @ args = 0, pretend = 0, frame = 0 2743 @ frame_needed = 0, uses_anonymous_args = 0 2744 .LVL243: 2745 0000 08B5 push {r3, lr} 2746 .LCFI35: 2747 .cfi_def_cfa_offset 8 2748 .cfi_offset 3, -8 2749 .cfi_offset 14, -4 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2750 .loc 1 2974 0 2751 0002 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 2752 0006 DBB2 uxtb r3, r3 2753 0008 222B cmp r3, #34 2754 000a 01D0 beq .L218 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2755 .loc 1 3030 0 2756 000c 0220 movs r0, #2 2757 .LVL244: 2758 000e 08BD pop {r3, pc} 2759 .LVL245: 2760 .L218: 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2761 .loc 1 2976 0 2762 0010 8368 ldr r3, [r0, #8] 2763 0012 B3F5805F cmp r3, #4096 2764 0016 0FD0 beq .L219 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2765 .loc 1 2992 0 2766 0018 0369 ldr r3, [r0, #16] ARM GAS /tmp/ccD7nRW1.s page 110 2767 001a 0BBB cbnz r3, .L214 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2768 .loc 1 2994 0 2769 001c 836A ldr r3, [r0, #40] 2770 001e 5A1C adds r2, r3, #1 2771 0020 8262 str r2, [r0, #40] 2772 0022 0268 ldr r2, [r0] 2773 0024 5268 ldr r2, [r2, #4] 2774 0026 1A70 strb r2, [r3] 2775 .L213: 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2776 .loc 1 3002 0 2777 0028 C38D ldrh r3, [r0, #46] 2778 002a 9BB2 uxth r3, r3 2779 002c 013B subs r3, r3, #1 2780 002e 9BB2 uxth r3, r3 2781 0030 C385 strh r3, [r0, #46] @ movhi 2782 0032 F3B1 cbz r3, .L220 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2783 .loc 1 3026 0 2784 0034 0020 movs r0, #0 2785 .LVL246: 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2786 .loc 1 3032 0 2787 0036 08BD pop {r3, pc} 2788 .LVL247: 2789 .L219: 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 2790 .loc 1 2978 0 2791 0038 826A ldr r2, [r0, #40] 2792 .LVL248: 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2793 .loc 1 2979 0 2794 003a 0369 ldr r3, [r0, #16] 2795 003c 43B9 cbnz r3, .L212 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 2796 .loc 1 2981 0 2797 003e 0368 ldr r3, [r0] 2798 0040 5B68 ldr r3, [r3, #4] 2799 0042 C3F30803 ubfx r3, r3, #0, #9 2800 0046 1380 strh r3, [r2] @ movhi 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2801 .loc 1 2982 0 2802 0048 836A ldr r3, [r0, #40] 2803 004a 0233 adds r3, r3, #2 2804 004c 8362 str r3, [r0, #40] 2805 004e EBE7 b .L213 2806 .L212: 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 2807 .loc 1 2986 0 2808 0050 0368 ldr r3, [r0] 2809 0052 5B68 ldr r3, [r3, #4] 2810 0054 DBB2 uxtb r3, r3 2811 0056 1380 strh r3, [r2] @ movhi 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2812 .loc 1 2987 0 2813 0058 836A ldr r3, [r0, #40] ARM GAS /tmp/ccD7nRW1.s page 111 2814 005a 0133 adds r3, r3, #1 2815 005c 8362 str r3, [r0, #40] 2816 005e E3E7 b .L213 2817 .LVL249: 2818 .L214: 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2819 .loc 1 2998 0 2820 0060 826A ldr r2, [r0, #40] 2821 0062 531C adds r3, r2, #1 2822 0064 8362 str r3, [r0, #40] 2823 0066 0368 ldr r3, [r0] 2824 0068 5B68 ldr r3, [r3, #4] 2825 006a 03F07F03 and r3, r3, #127 2826 006e 1370 strb r3, [r2] 2827 0070 DAE7 b .L213 2828 .L220: 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2829 .loc 1 3005 0 2830 0072 0268 ldr r2, [r0] 2831 0074 D368 ldr r3, [r2, #12] 2832 0076 23F02003 bic r3, r3, #32 2833 007a D360 str r3, [r2, #12] 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2834 .loc 1 3008 0 2835 007c 0268 ldr r2, [r0] 2836 007e D368 ldr r3, [r2, #12] 2837 0080 23F48073 bic r3, r3, #256 2838 0084 D360 str r3, [r2, #12] 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2839 .loc 1 3011 0 2840 0086 0268 ldr r2, [r0] 2841 0088 5369 ldr r3, [r2, #20] 2842 008a 23F00103 bic r3, r3, #1 2843 008e 5361 str r3, [r2, #20] 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2844 .loc 1 3014 0 2845 0090 2023 movs r3, #32 2846 0092 80F83A30 strb r3, [r0, #58] 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2847 .loc 1 3021 0 2848 0096 FFF7FEFF bl HAL_UART_RxCpltCallback 2849 .LVL250: 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2850 .loc 1 3024 0 2851 009a 0020 movs r0, #0 2852 009c 08BD pop {r3, pc} 2853 .cfi_endproc 2854 .LFE183: 2856 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits 2857 .align 1 2858 .weak HAL_UART_RxHalfCpltCallback 2859 .syntax unified 2860 .thumb 2861 .thumb_func 2862 .fpu fpv4-sp-d16 2864 HAL_UART_RxHalfCpltCallback: 2865 .LFB156: ARM GAS /tmp/ccD7nRW1.s page 112 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2866 .loc 1 2190 0 2867 .cfi_startproc 2868 @ args = 0, pretend = 0, frame = 0 2869 @ frame_needed = 0, uses_anonymous_args = 0 2870 @ link register save eliminated. 2871 .LVL251: 2872 0000 7047 bx lr 2873 .cfi_endproc 2874 .LFE156: 2876 .section .text.UART_DMARxHalfCplt,"ax",%progbits 2877 .align 1 2878 .syntax unified 2879 .thumb 2880 .thumb_func 2881 .fpu fpv4-sp-d16 2883 UART_DMARxHalfCplt: 2884 .LFB171: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2885 .loc 1 2608 0 2886 .cfi_startproc 2887 @ args = 0, pretend = 0, frame = 0 2888 @ frame_needed = 0, uses_anonymous_args = 0 2889 .LVL252: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2890 .loc 1 2608 0 2891 0000 08B5 push {r3, lr} 2892 .LCFI36: 2893 .cfi_def_cfa_offset 8 2894 .cfi_offset 3, -8 2895 .cfi_offset 14, -4 2896 .LVL253: 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2897 .loc 1 2616 0 2898 0002 806B ldr r0, [r0, #56] 2899 .LVL254: 2900 0004 FFF7FEFF bl HAL_UART_RxHalfCpltCallback 2901 .LVL255: 2902 0008 08BD pop {r3, pc} 2903 .cfi_endproc 2904 .LFE171: 2906 .section .text.HAL_UART_ErrorCallback,"ax",%progbits 2907 .align 1 2908 .weak HAL_UART_ErrorCallback 2909 .syntax unified 2910 .thumb 2911 .thumb_func 2912 .fpu fpv4-sp-d16 2914 HAL_UART_ErrorCallback: 2915 .LFB157: 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2916 .loc 1 2205 0 2917 .cfi_startproc 2918 @ args = 0, pretend = 0, frame = 0 2919 @ frame_needed = 0, uses_anonymous_args = 0 2920 @ link register save eliminated. 2921 .LVL256: ARM GAS /tmp/ccD7nRW1.s page 113 2922 0000 7047 bx lr 2923 .cfi_endproc 2924 .LFE157: 2926 .section .text.UART_DMAError,"ax",%progbits 2927 .align 1 2928 .syntax unified 2929 .thumb 2930 .thumb_func 2931 .fpu fpv4-sp-d16 2933 UART_DMAError: 2934 .LFB172: 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2935 .loc 1 2627 0 2936 .cfi_startproc 2937 @ args = 0, pretend = 0, frame = 0 2938 @ frame_needed = 0, uses_anonymous_args = 0 2939 .LVL257: 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2940 .loc 1 2627 0 2941 0000 10B5 push {r4, lr} 2942 .LCFI37: 2943 .cfi_def_cfa_offset 8 2944 .cfi_offset 4, -8 2945 .cfi_offset 14, -4 2946 .LVL258: 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2947 .loc 1 2629 0 2948 0002 846B ldr r4, [r0, #56] 2949 .LVL259: 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2950 .loc 1 2632 0 2951 0004 2368 ldr r3, [r4] 2952 0006 5A69 ldr r2, [r3, #20] 2953 .LVL260: 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2954 .loc 1 2633 0 2955 0008 94F83930 ldrb r3, [r4, #57] @ zero_extendqisi2 2956 000c DBB2 uxtb r3, r3 2957 000e 212B cmp r3, #33 2958 0010 10D0 beq .L229 2959 .LVL261: 2960 .L226: 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2961 .loc 1 2640 0 2962 0012 2368 ldr r3, [r4] 2963 0014 5A69 ldr r2, [r3, #20] 2964 0016 02F04002 and r2, r2, #64 2965 .LVL262: 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2966 .loc 1 2641 0 2967 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2 2968 001e DBB2 uxtb r3, r3 2969 0020 222B cmp r3, #34 2970 0022 11D0 beq .L230 2971 .LVL263: 2972 .L227: 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccD7nRW1.s page 114 2973 .loc 1 2647 0 2974 0024 E36B ldr r3, [r4, #60] 2975 0026 43F01003 orr r3, r3, #16 2976 002a E363 str r3, [r4, #60] 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2977 .loc 1 2653 0 2978 002c 2046 mov r0, r4 2979 002e FFF7FEFF bl HAL_UART_ErrorCallback 2980 .LVL264: 2981 0032 10BD pop {r4, pc} 2982 .LVL265: 2983 .L229: 2984 0034 02F08002 and r2, r2, #128 2985 .LVL266: 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2986 .loc 1 2633 0 discriminator 1 2987 0038 002A cmp r2, #0 2988 003a EAD0 beq .L226 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 2989 .loc 1 2635 0 2990 003c 0023 movs r3, #0 2991 003e E384 strh r3, [r4, #38] @ movhi 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2992 .loc 1 2636 0 2993 0040 2046 mov r0, r4 2994 .LVL267: 2995 0042 FFF7FEFF bl UART_EndTxTransfer 2996 .LVL268: 2997 0046 E4E7 b .L226 2998 .LVL269: 2999 .L230: 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3000 .loc 1 2641 0 discriminator 1 3001 0048 002A cmp r2, #0 3002 004a EBD0 beq .L227 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3003 .loc 1 2643 0 3004 004c 0023 movs r3, #0 3005 004e E385 strh r3, [r4, #46] @ movhi 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3006 .loc 1 2644 0 3007 0050 2046 mov r0, r4 3008 0052 FFF7FEFF bl UART_EndRxTransfer 3009 .LVL270: 3010 0056 E5E7 b .L227 3011 .cfi_endproc 3012 .LFE172: 3014 .section .text.HAL_UART_IRQHandler,"ax",%progbits 3015 .align 1 3016 .global HAL_UART_IRQHandler 3017 .syntax unified 3018 .thumb 3019 .thumb_func 3020 .fpu fpv4-sp-d16 3022 HAL_UART_IRQHandler: 3023 .LFB152: 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); ARM GAS /tmp/ccD7nRW1.s page 115 3024 .loc 1 1999 0 3025 .cfi_startproc 3026 @ args = 0, pretend = 0, frame = 0 3027 @ frame_needed = 0, uses_anonymous_args = 0 3028 .LVL271: 3029 0000 10B5 push {r4, lr} 3030 .LCFI38: 3031 .cfi_def_cfa_offset 8 3032 .cfi_offset 4, -8 3033 .cfi_offset 14, -4 3034 0002 0446 mov r4, r0 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 3035 .loc 1 2000 0 3036 0004 0268 ldr r2, [r0] 3037 0006 1368 ldr r3, [r2] 3038 .LVL272: 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 3039 .loc 1 2001 0 3040 0008 D168 ldr r1, [r2, #12] 3041 .LVL273: 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 3042 .loc 1 2002 0 3043 000a 5269 ldr r2, [r2, #20] 3044 .LVL274: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3045 .loc 1 2008 0 3046 000c 13F00F00 ands r0, r3, #15 3047 .LVL275: 3048 0010 05D1 bne .L232 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3049 .loc 1 2011 0 3050 0012 13F0200F tst r3, #32 3051 0016 02D0 beq .L232 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3052 .loc 1 2011 0 is_stmt 0 discriminator 1 3053 0018 11F0200F tst r1, #32 3054 001c 53D1 bne .L247 3055 .L232: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3056 .loc 1 2019 0 is_stmt 1 3057 001e 0028 cmp r0, #0 3058 0020 67D0 beq .L234 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3059 .loc 1 2019 0 is_stmt 0 discriminator 1 3060 0022 12F00102 ands r2, r2, #1 3061 .LVL276: 3062 0026 02D1 bne .L235 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3063 .loc 1 2019 0 discriminator 2 3064 0028 11F4907F tst r1, #288 3065 002c 61D0 beq .L234 3066 .L235: 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3067 .loc 1 2022 0 is_stmt 1 3068 002e 13F0010F tst r3, #1 3069 0032 06D0 beq .L236 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccD7nRW1.s page 116 3070 .loc 1 2022 0 is_stmt 0 discriminator 1 3071 0034 11F4807F tst r1, #256 3072 0038 03D0 beq .L236 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3073 .loc 1 2024 0 is_stmt 1 3074 003a E06B ldr r0, [r4, #60] 3075 .LVL277: 3076 003c 40F00100 orr r0, r0, #1 3077 0040 E063 str r0, [r4, #60] 3078 .L236: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3079 .loc 1 2028 0 3080 0042 13F0040F tst r3, #4 3081 0046 04D0 beq .L237 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3082 .loc 1 2028 0 is_stmt 0 discriminator 1 3083 0048 1AB1 cbz r2, .L237 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3084 .loc 1 2030 0 is_stmt 1 3085 004a E06B ldr r0, [r4, #60] 3086 004c 40F00200 orr r0, r0, #2 3087 0050 E063 str r0, [r4, #60] 3088 .L237: 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3089 .loc 1 2034 0 3090 0052 13F0020F tst r3, #2 3091 0056 04D0 beq .L238 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3092 .loc 1 2034 0 is_stmt 0 discriminator 1 3093 0058 1AB1 cbz r2, .L238 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3094 .loc 1 2036 0 is_stmt 1 3095 005a E06B ldr r0, [r4, #60] 3096 005c 40F00400 orr r0, r0, #4 3097 0060 E063 str r0, [r4, #60] 3098 .L238: 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3099 .loc 1 2040 0 3100 0062 13F0080F tst r3, #8 3101 0066 04D0 beq .L239 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3102 .loc 1 2040 0 is_stmt 0 discriminator 1 3103 0068 1AB1 cbz r2, .L239 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3104 .loc 1 2042 0 is_stmt 1 3105 006a E26B ldr r2, [r4, #60] 3106 006c 42F00802 orr r2, r2, #8 3107 0070 E263 str r2, [r4, #60] 3108 .L239: 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3109 .loc 1 2046 0 3110 0072 E26B ldr r2, [r4, #60] 3111 0074 002A cmp r2, #0 3112 0076 48D0 beq .L231 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3113 .loc 1 2049 0 3114 0078 13F0200F tst r3, #32 ARM GAS /tmp/ccD7nRW1.s page 117 3115 007c 02D0 beq .L240 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3116 .loc 1 2049 0 is_stmt 0 discriminator 1 3117 007e 11F0200F tst r1, #32 3118 0082 24D1 bne .L248 3119 .LVL278: 3120 .L240: 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 3121 .loc 1 2056 0 is_stmt 1 3122 0084 2368 ldr r3, [r4] 3123 0086 5B69 ldr r3, [r3, #20] 3124 0088 03F04003 and r3, r3, #64 3125 .LVL279: 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3126 .loc 1 2057 0 3127 008c E26B ldr r2, [r4, #60] 3128 008e 12F0080F tst r2, #8 3129 0092 00D1 bne .L241 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3130 .loc 1 2057 0 is_stmt 0 discriminator 1 3131 0094 3BB3 cbz r3, .L242 3132 .L241: 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3133 .loc 1 2062 0 is_stmt 1 3134 0096 2046 mov r0, r4 3135 0098 FFF7FEFF bl UART_EndRxTransfer 3136 .LVL280: 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3137 .loc 1 2065 0 3138 009c 2368 ldr r3, [r4] 3139 009e 5A69 ldr r2, [r3, #20] 3140 00a0 12F0400F tst r2, #64 3141 00a4 1BD0 beq .L243 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3142 .loc 1 2067 0 3143 00a6 5A69 ldr r2, [r3, #20] 3144 00a8 22F04002 bic r2, r2, #64 3145 00ac 5A61 str r2, [r3, #20] 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3146 .loc 1 2070 0 3147 00ae 636B ldr r3, [r4, #52] 3148 00b0 8BB1 cbz r3, .L244 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 3149 .loc 1 2074 0 3150 00b2 1A4A ldr r2, .L251 3151 00b4 1A65 str r2, [r3, #80] 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3152 .loc 1 2075 0 3153 00b6 606B ldr r0, [r4, #52] 3154 00b8 FFF7FEFF bl HAL_DMA_Abort_IT 3155 .LVL281: 3156 00bc 28B3 cbz r0, .L231 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3157 .loc 1 2078 0 3158 00be 606B ldr r0, [r4, #52] 3159 00c0 036D ldr r3, [r0, #80] 3160 00c2 9847 blx r3 ARM GAS /tmp/ccD7nRW1.s page 118 3161 .LVL282: 3162 00c4 10BD pop {r4, pc} 3163 .LVL283: 3164 .L247: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3165 .loc 1 2013 0 3166 00c6 2046 mov r0, r4 3167 .LVL284: 3168 00c8 FFF7FEFF bl UART_Receive_IT 3169 .LVL285: 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3170 .loc 1 2014 0 3171 00cc 10BD pop {r4, pc} 3172 .LVL286: 3173 .L248: 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3174 .loc 1 2051 0 3175 00ce 2046 mov r0, r4 3176 00d0 FFF7FEFF bl UART_Receive_IT 3177 .LVL287: 3178 00d4 D6E7 b .L240 3179 .LVL288: 3180 .L244: 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3181 .loc 1 2089 0 3182 00d6 2046 mov r0, r4 3183 00d8 FFF7FEFF bl HAL_UART_ErrorCallback 3184 .LVL289: 3185 00dc 10BD pop {r4, pc} 3186 .LVL290: 3187 .L243: 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3188 .loc 1 2101 0 3189 00de 2046 mov r0, r4 3190 00e0 FFF7FEFF bl HAL_UART_ErrorCallback 3191 .LVL291: 3192 00e4 10BD pop {r4, pc} 3193 .LVL292: 3194 .L242: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3195 .loc 1 2114 0 3196 00e6 2046 mov r0, r4 3197 00e8 FFF7FEFF bl HAL_UART_ErrorCallback 3198 .LVL293: 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3199 .loc 1 2117 0 3200 00ec 0023 movs r3, #0 3201 00ee E363 str r3, [r4, #60] 3202 00f0 10BD pop {r4, pc} 3203 .LVL294: 3204 .L234: 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3205 .loc 1 2124 0 3206 00f2 13F0800F tst r3, #128 3207 00f6 02D0 beq .L245 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3208 .loc 1 2124 0 is_stmt 0 discriminator 1 ARM GAS /tmp/ccD7nRW1.s page 119 3209 00f8 11F0800F tst r1, #128 3210 00fc 06D1 bne .L249 3211 .L245: 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3212 .loc 1 2131 0 is_stmt 1 3213 00fe 13F0400F tst r3, #64 3214 0102 02D0 beq .L231 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3215 .loc 1 2131 0 is_stmt 0 discriminator 1 3216 0104 11F0400F tst r1, #64 3217 0108 04D1 bne .L250 3218 .LVL295: 3219 .L231: 3220 010a 10BD pop {r4, pc} 3221 .LVL296: 3222 .L249: 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3223 .loc 1 2126 0 is_stmt 1 3224 010c 2046 mov r0, r4 3225 .LVL297: 3226 010e FFF7FEFF bl UART_Transmit_IT 3227 .LVL298: 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3228 .loc 1 2127 0 3229 0112 10BD pop {r4, pc} 3230 .LVL299: 3231 .L250: 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3232 .loc 1 2133 0 3233 0114 2046 mov r0, r4 3234 .LVL300: 3235 0116 FFF7FEFF bl UART_EndTransmit_IT 3236 .LVL301: 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3237 .loc 1 2134 0 3238 011a F6E7 b .L231 3239 .L252: 3240 .align 2 3241 .L251: 3242 011c 00000000 .word UART_DMAAbortOnError 3243 .cfi_endproc 3244 .LFE152: 3246 .section .text.UART_DMAAbortOnError,"ax",%progbits 3247 .align 1 3248 .syntax unified 3249 .thumb 3250 .thumb_func 3251 .fpu fpv4-sp-d16 3253 UART_DMAAbortOnError: 3254 .LFB176: 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3255 .loc 1 2731 0 3256 .cfi_startproc 3257 @ args = 0, pretend = 0, frame = 0 3258 @ frame_needed = 0, uses_anonymous_args = 0 3259 .LVL302: 3260 0000 08B5 push {r3, lr} ARM GAS /tmp/ccD7nRW1.s page 120 3261 .LCFI39: 3262 .cfi_def_cfa_offset 8 3263 .cfi_offset 3, -8 3264 .cfi_offset 14, -4 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3265 .loc 1 2732 0 3266 0002 806B ldr r0, [r0, #56] 3267 .LVL303: 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3268 .loc 1 2733 0 3269 0004 0023 movs r3, #0 3270 0006 C385 strh r3, [r0, #46] @ movhi 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3271 .loc 1 2734 0 3272 0008 C384 strh r3, [r0, #38] @ movhi 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3273 .loc 1 2741 0 3274 000a FFF7FEFF bl HAL_UART_ErrorCallback 3275 .LVL304: 3276 000e 08BD pop {r3, pc} 3277 .cfi_endproc 3278 .LFE176: 3280 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 3281 .align 1 3282 .weak HAL_UART_AbortCpltCallback 3283 .syntax unified 3284 .thumb 3285 .thumb_func 3286 .fpu fpv4-sp-d16 3288 HAL_UART_AbortCpltCallback: 3289 .LFB158: 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3290 .loc 1 2219 0 3291 .cfi_startproc 3292 @ args = 0, pretend = 0, frame = 0 3293 @ frame_needed = 0, uses_anonymous_args = 0 3294 @ link register save eliminated. 3295 .LVL305: 3296 0000 7047 bx lr 3297 .cfi_endproc 3298 .LFE158: 3300 .section .text.HAL_UART_Abort_IT,"ax",%progbits 3301 .align 1 3302 .global HAL_UART_Abort_IT 3303 .syntax unified 3304 .thumb 3305 .thumb_func 3306 .fpu fpv4-sp-d16 3308 HAL_UART_Abort_IT: 3309 .LFB149: 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 3310 .loc 1 1724 0 3311 .cfi_startproc 3312 @ args = 0, pretend = 0, frame = 0 3313 @ frame_needed = 0, uses_anonymous_args = 0 3314 .LVL306: 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; ARM GAS /tmp/ccD7nRW1.s page 121 3315 .loc 1 1724 0 3316 0000 10B5 push {r4, lr} 3317 .LCFI40: 3318 .cfi_def_cfa_offset 8 3319 .cfi_offset 4, -8 3320 .cfi_offset 14, -4 3321 0002 0446 mov r4, r0 3322 .LVL307: 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3323 .loc 1 1728 0 3324 0004 0268 ldr r2, [r0] 3325 0006 D368 ldr r3, [r2, #12] 3326 0008 23F4F073 bic r3, r3, #480 3327 000c D360 str r3, [r2, #12] 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3328 .loc 1 1729 0 3329 000e 0268 ldr r2, [r0] 3330 0010 5369 ldr r3, [r2, #20] 3331 0012 23F00103 bic r3, r3, #1 3332 0016 5361 str r3, [r2, #20] 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3333 .loc 1 1734 0 3334 0018 036B ldr r3, [r0, #48] 3335 001a 33B1 cbz r3, .L257 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3336 .loc 1 1738 0 3337 001c 0268 ldr r2, [r0] 3338 001e 5269 ldr r2, [r2, #20] 3339 0020 12F0800F tst r2, #128 3340 0024 1DD0 beq .L258 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3341 .loc 1 1740 0 3342 0026 264A ldr r2, .L270 3343 0028 1A65 str r2, [r3, #80] 3344 .L257: 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3345 .loc 1 1748 0 3346 002a 636B ldr r3, [r4, #52] 3347 002c 33B1 cbz r3, .L259 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3348 .loc 1 1752 0 3349 002e 2268 ldr r2, [r4] 3350 0030 5269 ldr r2, [r2, #20] 3351 0032 12F0400F tst r2, #64 3352 0036 17D0 beq .L260 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3353 .loc 1 1754 0 3354 0038 224A ldr r2, .L270+4 3355 003a 1A65 str r2, [r3, #80] 3356 .L259: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3357 .loc 1 1763 0 3358 003c 2368 ldr r3, [r4] 3359 003e 5A69 ldr r2, [r3, #20] 3360 0040 12F0800F tst r2, #128 3361 0044 13D0 beq .L264 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 122 3362 .loc 1 1766 0 3363 0046 5A69 ldr r2, [r3, #20] 3364 0048 22F08002 bic r2, r2, #128 3365 004c 5A61 str r2, [r3, #20] 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3366 .loc 1 1769 0 3367 004e 206B ldr r0, [r4, #48] 3368 .LVL308: 3369 0050 18B3 cbz r0, .L265 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3370 .loc 1 1775 0 3371 0052 FFF7FEFF bl HAL_DMA_Abort_IT 3372 .LVL309: 3373 0056 10B3 cbz r0, .L266 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3374 .loc 1 1777 0 3375 0058 236B ldr r3, [r4, #48] 3376 005a 0022 movs r2, #0 3377 005c 1A65 str r2, [r3, #80] 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3378 .loc 1 1725 0 3379 005e 0122 movs r2, #1 3380 0060 06E0 b .L261 3381 .LVL310: 3382 .L258: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3383 .loc 1 1744 0 3384 0062 0022 movs r2, #0 3385 0064 1A65 str r2, [r3, #80] 3386 0066 E0E7 b .L257 3387 .L260: 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3388 .loc 1 1758 0 3389 0068 0022 movs r2, #0 3390 006a 1A65 str r2, [r3, #80] 3391 006c E6E7 b .L259 3392 .L264: 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3393 .loc 1 1725 0 3394 006e 0122 movs r2, #1 3395 .LVL311: 3396 .L261: 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3397 .loc 1 1787 0 3398 0070 2368 ldr r3, [r4] 3399 0072 5969 ldr r1, [r3, #20] 3400 0074 11F0400F tst r1, #64 3401 0078 0CD0 beq .L262 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3402 .loc 1 1789 0 3403 007a 5969 ldr r1, [r3, #20] 3404 007c 21F04001 bic r1, r1, #64 3405 0080 5961 str r1, [r3, #20] 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3406 .loc 1 1792 0 3407 0082 606B ldr r0, [r4, #52] 3408 0084 30B1 cbz r0, .L262 ARM GAS /tmp/ccD7nRW1.s page 123 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3409 .loc 1 1798 0 3410 0086 FFF7FEFF bl HAL_DMA_Abort_IT 3411 .LVL312: 3412 008a 50B1 cbz r0, .L267 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 3413 .loc 1 1800 0 3414 008c 636B ldr r3, [r4, #52] 3415 008e 0022 movs r2, #0 3416 0090 1A65 str r2, [r3, #80] 3417 .LVL313: 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3418 .loc 1 1801 0 3419 0092 0122 movs r2, #1 3420 .LVL314: 3421 .L262: 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3422 .loc 1 1811 0 3423 0094 3AB9 cbnz r2, .L269 3424 .LVL315: 3425 .L263: 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3426 .loc 1 1835 0 3427 0096 0020 movs r0, #0 3428 0098 10BD pop {r4, pc} 3429 .LVL316: 3430 .L265: 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3431 .loc 1 1725 0 3432 009a 0122 movs r2, #1 3433 009c E8E7 b .L261 3434 .L266: 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3435 .loc 1 1781 0 3436 009e 0022 movs r2, #0 3437 00a0 E6E7 b .L261 3438 .LVL317: 3439 .L267: 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3440 .loc 1 1805 0 3441 00a2 0022 movs r2, #0 3442 00a4 F6E7 b .L262 3443 .LVL318: 3444 .L269: 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3445 .loc 1 1814 0 3446 00a6 0023 movs r3, #0 3447 00a8 E384 strh r3, [r4, #38] @ movhi 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3448 .loc 1 1815 0 3449 00aa E385 strh r3, [r4, #46] @ movhi 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3450 .loc 1 1818 0 3451 00ac E363 str r3, [r4, #60] 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3452 .loc 1 1821 0 3453 00ae 2023 movs r3, #32 ARM GAS /tmp/ccD7nRW1.s page 124 3454 00b0 84F83930 strb r3, [r4, #57] 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3455 .loc 1 1822 0 3456 00b4 84F83A30 strb r3, [r4, #58] 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3457 .loc 1 1830 0 3458 00b8 2046 mov r0, r4 3459 00ba FFF7FEFF bl HAL_UART_AbortCpltCallback 3460 .LVL319: 3461 00be EAE7 b .L263 3462 .L271: 3463 .align 2 3464 .L270: 3465 00c0 00000000 .word UART_DMATxAbortCallback 3466 00c4 00000000 .word UART_DMARxAbortCallback 3467 .cfi_endproc 3468 .LFE149: 3470 .section .text.UART_DMARxAbortCallback,"ax",%progbits 3471 .align 1 3472 .syntax unified 3473 .thumb 3474 .thumb_func 3475 .fpu fpv4-sp-d16 3477 UART_DMARxAbortCallback: 3478 .LFB178: 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3479 .loc 1 2800 0 3480 .cfi_startproc 3481 @ args = 0, pretend = 0, frame = 0 3482 @ frame_needed = 0, uses_anonymous_args = 0 3483 .LVL320: 3484 0000 08B5 push {r3, lr} 3485 .LCFI41: 3486 .cfi_def_cfa_offset 8 3487 .cfi_offset 3, -8 3488 .cfi_offset 14, -4 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3489 .loc 1 2801 0 3490 0002 806B ldr r0, [r0, #56] 3491 .LVL321: 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3492 .loc 1 2803 0 3493 0004 436B ldr r3, [r0, #52] 3494 0006 0022 movs r2, #0 3495 0008 1A65 str r2, [r3, #80] 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3496 .loc 1 2806 0 3497 000a 036B ldr r3, [r0, #48] 3498 000c 13B1 cbz r3, .L273 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3499 .loc 1 2808 0 3500 000e 1B6D ldr r3, [r3, #80] 3501 0010 03B1 cbz r3, .L273 3502 .LVL322: 3503 .L272: 3504 0012 08BD pop {r3, pc} 3505 .LVL323: ARM GAS /tmp/ccD7nRW1.s page 125 3506 .L273: 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3507 .loc 1 2815 0 3508 0014 0023 movs r3, #0 3509 0016 C384 strh r3, [r0, #38] @ movhi 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3510 .loc 1 2816 0 3511 0018 C385 strh r3, [r0, #46] @ movhi 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3512 .loc 1 2819 0 3513 001a C363 str r3, [r0, #60] 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3514 .loc 1 2822 0 3515 001c 2023 movs r3, #32 3516 001e 80F83930 strb r3, [r0, #57] 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3517 .loc 1 2823 0 3518 0022 80F83A30 strb r3, [r0, #58] 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3519 .loc 1 2831 0 3520 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 3521 .LVL324: 3522 002a F2E7 b .L272 3523 .cfi_endproc 3524 .LFE178: 3526 .section .text.UART_DMATxAbortCallback,"ax",%progbits 3527 .align 1 3528 .syntax unified 3529 .thumb 3530 .thumb_func 3531 .fpu fpv4-sp-d16 3533 UART_DMATxAbortCallback: 3534 .LFB177: 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3535 .loc 1 2755 0 3536 .cfi_startproc 3537 @ args = 0, pretend = 0, frame = 0 3538 @ frame_needed = 0, uses_anonymous_args = 0 3539 .LVL325: 3540 0000 08B5 push {r3, lr} 3541 .LCFI42: 3542 .cfi_def_cfa_offset 8 3543 .cfi_offset 3, -8 3544 .cfi_offset 14, -4 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3545 .loc 1 2756 0 3546 0002 806B ldr r0, [r0, #56] 3547 .LVL326: 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3548 .loc 1 2758 0 3549 0004 036B ldr r3, [r0, #48] 3550 0006 0022 movs r2, #0 3551 0008 1A65 str r2, [r3, #80] 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3552 .loc 1 2761 0 3553 000a 436B ldr r3, [r0, #52] 3554 000c 13B1 cbz r3, .L277 ARM GAS /tmp/ccD7nRW1.s page 126 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3555 .loc 1 2763 0 3556 000e 1B6D ldr r3, [r3, #80] 3557 0010 03B1 cbz r3, .L277 3558 .LVL327: 3559 .L276: 3560 0012 08BD pop {r3, pc} 3561 .LVL328: 3562 .L277: 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3563 .loc 1 2770 0 3564 0014 0023 movs r3, #0 3565 0016 C384 strh r3, [r0, #38] @ movhi 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3566 .loc 1 2771 0 3567 0018 C385 strh r3, [r0, #46] @ movhi 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3568 .loc 1 2774 0 3569 001a C363 str r3, [r0, #60] 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3570 .loc 1 2777 0 3571 001c 2023 movs r3, #32 3572 001e 80F83930 strb r3, [r0, #57] 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3573 .loc 1 2778 0 3574 0022 80F83A30 strb r3, [r0, #58] 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3575 .loc 1 2786 0 3576 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 3577 .LVL329: 3578 002a F2E7 b .L276 3579 .cfi_endproc 3580 .LFE177: 3582 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 3583 .align 1 3584 .weak HAL_UART_AbortTransmitCpltCallback 3585 .syntax unified 3586 .thumb 3587 .thumb_func 3588 .fpu fpv4-sp-d16 3590 HAL_UART_AbortTransmitCpltCallback: 3591 .LFB159: 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3592 .loc 1 2234 0 3593 .cfi_startproc 3594 @ args = 0, pretend = 0, frame = 0 3595 @ frame_needed = 0, uses_anonymous_args = 0 3596 @ link register save eliminated. 3597 .LVL330: 3598 0000 7047 bx lr 3599 .cfi_endproc 3600 .LFE159: 3602 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 3603 .align 1 3604 .global HAL_UART_AbortTransmit_IT 3605 .syntax unified 3606 .thumb ARM GAS /tmp/ccD7nRW1.s page 127 3607 .thumb_func 3608 .fpu fpv4-sp-d16 3610 HAL_UART_AbortTransmit_IT: 3611 .LFB150: 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3612 .loc 1 1852 0 3613 .cfi_startproc 3614 @ args = 0, pretend = 0, frame = 0 3615 @ frame_needed = 0, uses_anonymous_args = 0 3616 .LVL331: 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3617 .loc 1 1852 0 3618 0000 10B5 push {r4, lr} 3619 .LCFI43: 3620 .cfi_def_cfa_offset 8 3621 .cfi_offset 4, -8 3622 .cfi_offset 14, -4 3623 0002 0446 mov r4, r0 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3624 .loc 1 1854 0 3625 0004 0268 ldr r2, [r0] 3626 0006 D368 ldr r3, [r2, #12] 3627 0008 23F0C003 bic r3, r3, #192 3628 000c D360 str r3, [r2, #12] 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3629 .loc 1 1857 0 3630 000e 0368 ldr r3, [r0] 3631 0010 5A69 ldr r2, [r3, #20] 3632 0012 12F0800F tst r2, #128 3633 0016 19D0 beq .L282 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3634 .loc 1 1859 0 3635 0018 5A69 ldr r2, [r3, #20] 3636 001a 22F08002 bic r2, r2, #128 3637 001e 5A61 str r2, [r3, #20] 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3638 .loc 1 1862 0 3639 0020 036B ldr r3, [r0, #48] 3640 0022 5BB1 cbz r3, .L283 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3641 .loc 1 1866 0 3642 0024 0D4A ldr r2, .L287 3643 0026 1A65 str r2, [r3, #80] 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3644 .loc 1 1869 0 3645 0028 006B ldr r0, [r0, #48] 3646 .LVL332: 3647 002a FFF7FEFF bl HAL_DMA_Abort_IT 3648 .LVL333: 3649 002e 08B9 cbnz r0, .L286 3650 .L284: 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3651 .loc 1 1912 0 3652 0030 0020 movs r0, #0 3653 0032 10BD pop {r4, pc} 3654 .LVL334: 3655 .L286: ARM GAS /tmp/ccD7nRW1.s page 128 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3656 .loc 1 1872 0 3657 0034 206B ldr r0, [r4, #48] 3658 0036 036D ldr r3, [r0, #80] 3659 0038 9847 blx r3 3660 .LVL335: 3661 003a F9E7 b .L284 3662 .LVL336: 3663 .L283: 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3664 .loc 1 1878 0 3665 003c 0023 movs r3, #0 3666 003e C384 strh r3, [r0, #38] @ movhi 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3667 .loc 1 1881 0 3668 0040 2023 movs r3, #32 3669 0042 80F83930 strb r3, [r0, #57] 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3670 .loc 1 1889 0 3671 0046 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3672 .LVL337: 3673 004a F1E7 b .L284 3674 .LVL338: 3675 .L282: 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3676 .loc 1 1896 0 3677 004c 0023 movs r3, #0 3678 004e C384 strh r3, [r0, #38] @ movhi 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3679 .loc 1 1899 0 3680 0050 2023 movs r3, #32 3681 0052 80F83930 strb r3, [r0, #57] 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3682 .loc 1 1907 0 3683 0056 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3684 .LVL339: 3685 005a E9E7 b .L284 3686 .L288: 3687 .align 2 3688 .L287: 3689 005c 00000000 .word UART_DMATxOnlyAbortCallback 3690 .cfi_endproc 3691 .LFE150: 3693 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 3694 .align 1 3695 .syntax unified 3696 .thumb 3697 .thumb_func 3698 .fpu fpv4-sp-d16 3700 UART_DMATxOnlyAbortCallback: 3701 .LFB179: 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3702 .loc 1 2845 0 3703 .cfi_startproc 3704 @ args = 0, pretend = 0, frame = 0 3705 @ frame_needed = 0, uses_anonymous_args = 0 3706 .LVL340: ARM GAS /tmp/ccD7nRW1.s page 129 3707 0000 08B5 push {r3, lr} 3708 .LCFI44: 3709 .cfi_def_cfa_offset 8 3710 .cfi_offset 3, -8 3711 .cfi_offset 14, -4 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3712 .loc 1 2846 0 3713 0002 806B ldr r0, [r0, #56] 3714 .LVL341: 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3715 .loc 1 2848 0 3716 0004 0023 movs r3, #0 3717 0006 C384 strh r3, [r0, #38] @ movhi 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3718 .loc 1 2851 0 3719 0008 2023 movs r3, #32 3720 000a 80F83930 strb r3, [r0, #57] 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3721 .loc 1 2859 0 3722 000e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 3723 .LVL342: 3724 0012 08BD pop {r3, pc} 3725 .cfi_endproc 3726 .LFE179: 3728 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 3729 .align 1 3730 .weak HAL_UART_AbortReceiveCpltCallback 3731 .syntax unified 3732 .thumb 3733 .thumb_func 3734 .fpu fpv4-sp-d16 3736 HAL_UART_AbortReceiveCpltCallback: 3737 .LFB160: 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3738 .loc 1 2249 0 3739 .cfi_startproc 3740 @ args = 0, pretend = 0, frame = 0 3741 @ frame_needed = 0, uses_anonymous_args = 0 3742 @ link register save eliminated. 3743 .LVL343: 3744 0000 7047 bx lr 3745 .cfi_endproc 3746 .LFE160: 3748 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits 3749 .align 1 3750 .global HAL_UART_AbortReceive_IT 3751 .syntax unified 3752 .thumb 3753 .thumb_func 3754 .fpu fpv4-sp-d16 3756 HAL_UART_AbortReceive_IT: 3757 .LFB151: 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3758 .loc 1 1929 0 3759 .cfi_startproc 3760 @ args = 0, pretend = 0, frame = 0 3761 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccD7nRW1.s page 130 3762 .LVL344: 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3763 .loc 1 1929 0 3764 0000 10B5 push {r4, lr} 3765 .LCFI45: 3766 .cfi_def_cfa_offset 8 3767 .cfi_offset 4, -8 3768 .cfi_offset 14, -4 3769 0002 0446 mov r4, r0 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3770 .loc 1 1931 0 3771 0004 0268 ldr r2, [r0] 3772 0006 D368 ldr r3, [r2, #12] 3773 0008 23F49073 bic r3, r3, #288 3774 000c D360 str r3, [r2, #12] 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3775 .loc 1 1932 0 3776 000e 0268 ldr r2, [r0] 3777 0010 5369 ldr r3, [r2, #20] 3778 0012 23F00103 bic r3, r3, #1 3779 0016 5361 str r3, [r2, #20] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3780 .loc 1 1935 0 3781 0018 0368 ldr r3, [r0] 3782 001a 5A69 ldr r2, [r3, #20] 3783 001c 12F0400F tst r2, #64 3784 0020 19D0 beq .L293 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3785 .loc 1 1937 0 3786 0022 5A69 ldr r2, [r3, #20] 3787 0024 22F04002 bic r2, r2, #64 3788 0028 5A61 str r2, [r3, #20] 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3789 .loc 1 1940 0 3790 002a 436B ldr r3, [r0, #52] 3791 002c 5BB1 cbz r3, .L294 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3792 .loc 1 1944 0 3793 002e 0E4A ldr r2, .L298 3794 0030 1A65 str r2, [r3, #80] 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3795 .loc 1 1947 0 3796 0032 406B ldr r0, [r0, #52] 3797 .LVL345: 3798 0034 FFF7FEFF bl HAL_DMA_Abort_IT 3799 .LVL346: 3800 0038 08B9 cbnz r0, .L297 3801 .L295: 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3802 .loc 1 1990 0 3803 003a 0020 movs r0, #0 3804 003c 10BD pop {r4, pc} 3805 .LVL347: 3806 .L297: 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3807 .loc 1 1950 0 3808 003e 606B ldr r0, [r4, #52] ARM GAS /tmp/ccD7nRW1.s page 131 3809 0040 036D ldr r3, [r0, #80] 3810 0042 9847 blx r3 3811 .LVL348: 3812 0044 F9E7 b .L295 3813 .LVL349: 3814 .L294: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3815 .loc 1 1956 0 3816 0046 0023 movs r3, #0 3817 0048 C385 strh r3, [r0, #46] @ movhi 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3818 .loc 1 1959 0 3819 004a 2023 movs r3, #32 3820 004c 80F83A30 strb r3, [r0, #58] 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3821 .loc 1 1967 0 3822 0050 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3823 .LVL350: 3824 0054 F1E7 b .L295 3825 .LVL351: 3826 .L293: 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3827 .loc 1 1974 0 3828 0056 0023 movs r3, #0 3829 0058 C385 strh r3, [r0, #46] @ movhi 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3830 .loc 1 1977 0 3831 005a 2023 movs r3, #32 3832 005c 80F83A30 strb r3, [r0, #58] 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3833 .loc 1 1985 0 3834 0060 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3835 .LVL352: 3836 0064 E9E7 b .L295 3837 .L299: 3838 0066 00BF .align 2 3839 .L298: 3840 0068 00000000 .word UART_DMARxOnlyAbortCallback 3841 .cfi_endproc 3842 .LFE151: 3844 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 3845 .align 1 3846 .syntax unified 3847 .thumb 3848 .thumb_func 3849 .fpu fpv4-sp-d16 3851 UART_DMARxOnlyAbortCallback: 3852 .LFB180: 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3853 .loc 1 2873 0 3854 .cfi_startproc 3855 @ args = 0, pretend = 0, frame = 0 3856 @ frame_needed = 0, uses_anonymous_args = 0 3857 .LVL353: 3858 0000 08B5 push {r3, lr} 3859 .LCFI46: 3860 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccD7nRW1.s page 132 3861 .cfi_offset 3, -8 3862 .cfi_offset 14, -4 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3863 .loc 1 2874 0 3864 0002 806B ldr r0, [r0, #56] 3865 .LVL354: 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3866 .loc 1 2876 0 3867 0004 0023 movs r3, #0 3868 0006 C385 strh r3, [r0, #46] @ movhi 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3869 .loc 1 2879 0 3870 0008 2023 movs r3, #32 3871 000a 80F83A30 strb r3, [r0, #58] 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3872 .loc 1 2887 0 3873 000e FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 3874 .LVL355: 3875 0012 08BD pop {r3, pc} 3876 .cfi_endproc 3877 .LFE180: 3879 .section .text.HAL_LIN_SendBreak,"ax",%progbits 3880 .align 1 3881 .global HAL_LIN_SendBreak 3882 .syntax unified 3883 .thumb 3884 .thumb_func 3885 .fpu fpv4-sp-d16 3887 HAL_LIN_SendBreak: 3888 .LFB161: 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3889 .loc 1 2288 0 3890 .cfi_startproc 3891 @ args = 0, pretend = 0, frame = 0 3892 @ frame_needed = 0, uses_anonymous_args = 0 3893 @ link register save eliminated. 3894 .LVL356: 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3895 .loc 1 2293 0 3896 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 3897 0004 012B cmp r3, #1 3898 0006 12D0 beq .L304 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3899 .loc 1 2293 0 is_stmt 0 discriminator 2 3900 0008 0123 movs r3, #1 3901 000a 80F83830 strb r3, [r0, #56] 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3902 .loc 1 2295 0 is_stmt 1 discriminator 2 3903 000e 2423 movs r3, #36 3904 0010 80F83930 strb r3, [r0, #57] 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3905 .loc 1 2298 0 discriminator 2 3906 0014 0268 ldr r2, [r0] 3907 0016 D368 ldr r3, [r2, #12] 3908 0018 43F00103 orr r3, r3, #1 3909 001c D360 str r3, [r2, #12] 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 133 3910 .loc 1 2300 0 discriminator 2 3911 001e 2023 movs r3, #32 3912 0020 80F83930 strb r3, [r0, #57] 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3913 .loc 1 2303 0 discriminator 2 3914 0024 0023 movs r3, #0 3915 0026 80F83830 strb r3, [r0, #56] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3916 .loc 1 2305 0 discriminator 2 3917 002a 1846 mov r0, r3 3918 .LVL357: 3919 002c 7047 bx lr 3920 .LVL358: 3921 .L304: 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3922 .loc 1 2293 0 3923 002e 0220 movs r0, #2 3924 .LVL359: 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3925 .loc 1 2306 0 3926 0030 7047 bx lr 3927 .cfi_endproc 3928 .LFE161: 3930 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 3931 .align 1 3932 .global HAL_MultiProcessor_EnterMuteMode 3933 .syntax unified 3934 .thumb 3935 .thumb_func 3936 .fpu fpv4-sp-d16 3938 HAL_MultiProcessor_EnterMuteMode: 3939 .LFB162: 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3940 .loc 1 2315 0 3941 .cfi_startproc 3942 @ args = 0, pretend = 0, frame = 0 3943 @ frame_needed = 0, uses_anonymous_args = 0 3944 @ link register save eliminated. 3945 .LVL360: 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3946 .loc 1 2320 0 3947 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 3948 0004 012B cmp r3, #1 3949 0006 12D0 beq .L307 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3950 .loc 1 2320 0 is_stmt 0 discriminator 2 3951 0008 0123 movs r3, #1 3952 000a 80F83830 strb r3, [r0, #56] 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3953 .loc 1 2322 0 is_stmt 1 discriminator 2 3954 000e 2423 movs r3, #36 3955 0010 80F83930 strb r3, [r0, #57] 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3956 .loc 1 2325 0 discriminator 2 3957 0014 0268 ldr r2, [r0] 3958 0016 D368 ldr r3, [r2, #12] 3959 0018 43F00203 orr r3, r3, #2 ARM GAS /tmp/ccD7nRW1.s page 134 3960 001c D360 str r3, [r2, #12] 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3961 .loc 1 2327 0 discriminator 2 3962 001e 2023 movs r3, #32 3963 0020 80F83930 strb r3, [r0, #57] 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3964 .loc 1 2330 0 discriminator 2 3965 0024 0023 movs r3, #0 3966 0026 80F83830 strb r3, [r0, #56] 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3967 .loc 1 2332 0 discriminator 2 3968 002a 1846 mov r0, r3 3969 .LVL361: 3970 002c 7047 bx lr 3971 .LVL362: 3972 .L307: 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3973 .loc 1 2320 0 3974 002e 0220 movs r0, #2 3975 .LVL363: 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3976 .loc 1 2333 0 3977 0030 7047 bx lr 3978 .cfi_endproc 3979 .LFE162: 3981 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits 3982 .align 1 3983 .global HAL_MultiProcessor_ExitMuteMode 3984 .syntax unified 3985 .thumb 3986 .thumb_func 3987 .fpu fpv4-sp-d16 3989 HAL_MultiProcessor_ExitMuteMode: 3990 .LFB163: 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3991 .loc 1 2342 0 3992 .cfi_startproc 3993 @ args = 0, pretend = 0, frame = 0 3994 @ frame_needed = 0, uses_anonymous_args = 0 3995 @ link register save eliminated. 3996 .LVL364: 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3997 .loc 1 2347 0 3998 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 3999 0004 012B cmp r3, #1 4000 0006 12D0 beq .L310 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4001 .loc 1 2347 0 is_stmt 0 discriminator 2 4002 0008 0123 movs r3, #1 4003 000a 80F83830 strb r3, [r0, #56] 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4004 .loc 1 2349 0 is_stmt 1 discriminator 2 4005 000e 2423 movs r3, #36 4006 0010 80F83930 strb r3, [r0, #57] 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4007 .loc 1 2352 0 discriminator 2 4008 0014 0268 ldr r2, [r0] ARM GAS /tmp/ccD7nRW1.s page 135 4009 0016 D368 ldr r3, [r2, #12] 4010 0018 23F00203 bic r3, r3, #2 4011 001c D360 str r3, [r2, #12] 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4012 .loc 1 2354 0 discriminator 2 4013 001e 2023 movs r3, #32 4014 0020 80F83930 strb r3, [r0, #57] 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4015 .loc 1 2357 0 discriminator 2 4016 0024 0023 movs r3, #0 4017 0026 80F83830 strb r3, [r0, #56] 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4018 .loc 1 2359 0 discriminator 2 4019 002a 1846 mov r0, r3 4020 .LVL365: 4021 002c 7047 bx lr 4022 .LVL366: 4023 .L310: 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4024 .loc 1 2347 0 4025 002e 0220 movs r0, #2 4026 .LVL367: 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4027 .loc 1 2360 0 4028 0030 7047 bx lr 4029 .cfi_endproc 4030 .LFE163: 4032 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 4033 .align 1 4034 .global HAL_HalfDuplex_EnableTransmitter 4035 .syntax unified 4036 .thumb 4037 .thumb_func 4038 .fpu fpv4-sp-d16 4040 HAL_HalfDuplex_EnableTransmitter: 4041 .LFB164: 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 4042 .loc 1 2369 0 4043 .cfi_startproc 4044 @ args = 0, pretend = 0, frame = 0 4045 @ frame_needed = 0, uses_anonymous_args = 0 4046 @ link register save eliminated. 4047 .LVL368: 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4048 .loc 1 2373 0 4049 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4050 0004 012B cmp r3, #1 4051 0006 14D0 beq .L313 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4052 .loc 1 2373 0 is_stmt 0 discriminator 2 4053 0008 0123 movs r3, #1 4054 000a 80F83830 strb r3, [r0, #56] 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4055 .loc 1 2375 0 is_stmt 1 discriminator 2 4056 000e 2423 movs r3, #36 4057 0010 80F83930 strb r3, [r0, #57] 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccD7nRW1.s page 136 4058 .loc 1 2378 0 discriminator 2 4059 0014 0268 ldr r2, [r0] 4060 0016 D368 ldr r3, [r2, #12] 4061 .LVL369: 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4062 .loc 1 2381 0 discriminator 2 4063 0018 23F00C03 bic r3, r3, #12 4064 .LVL370: 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4065 .loc 1 2384 0 discriminator 2 4066 001c 43F00803 orr r3, r3, #8 4067 .LVL371: 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4068 .loc 1 2387 0 discriminator 2 4069 0020 D360 str r3, [r2, #12] 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4070 .loc 1 2389 0 discriminator 2 4071 0022 2023 movs r3, #32 4072 .LVL372: 4073 0024 80F83930 strb r3, [r0, #57] 4074 .LVL373: 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4075 .loc 1 2392 0 discriminator 2 4076 0028 0023 movs r3, #0 4077 002a 80F83830 strb r3, [r0, #56] 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4078 .loc 1 2394 0 discriminator 2 4079 002e 1846 mov r0, r3 4080 .LVL374: 4081 0030 7047 bx lr 4082 .LVL375: 4083 .L313: 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4084 .loc 1 2373 0 4085 0032 0220 movs r0, #2 4086 .LVL376: 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4087 .loc 1 2395 0 4088 0034 7047 bx lr 4089 .cfi_endproc 4090 .LFE164: 4092 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 4093 .align 1 4094 .global HAL_HalfDuplex_EnableReceiver 4095 .syntax unified 4096 .thumb 4097 .thumb_func 4098 .fpu fpv4-sp-d16 4100 HAL_HalfDuplex_EnableReceiver: 4101 .LFB165: 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 4102 .loc 1 2404 0 4103 .cfi_startproc 4104 @ args = 0, pretend = 0, frame = 0 4105 @ frame_needed = 0, uses_anonymous_args = 0 4106 @ link register save eliminated. 4107 .LVL377: ARM GAS /tmp/ccD7nRW1.s page 137 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4108 .loc 1 2408 0 4109 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4110 0004 012B cmp r3, #1 4111 0006 14D0 beq .L316 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4112 .loc 1 2408 0 is_stmt 0 discriminator 2 4113 0008 0123 movs r3, #1 4114 000a 80F83830 strb r3, [r0, #56] 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4115 .loc 1 2410 0 is_stmt 1 discriminator 2 4116 000e 2423 movs r3, #36 4117 0010 80F83930 strb r3, [r0, #57] 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4118 .loc 1 2413 0 discriminator 2 4119 0014 0268 ldr r2, [r0] 4120 0016 D368 ldr r3, [r2, #12] 4121 .LVL378: 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4122 .loc 1 2416 0 discriminator 2 4123 0018 23F00C03 bic r3, r3, #12 4124 .LVL379: 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4125 .loc 1 2419 0 discriminator 2 4126 001c 43F00403 orr r3, r3, #4 4127 .LVL380: 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4128 .loc 1 2422 0 discriminator 2 4129 0020 D360 str r3, [r2, #12] 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4130 .loc 1 2424 0 discriminator 2 4131 0022 2023 movs r3, #32 4132 .LVL381: 4133 0024 80F83930 strb r3, [r0, #57] 4134 .LVL382: 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4135 .loc 1 2427 0 discriminator 2 4136 0028 0023 movs r3, #0 4137 002a 80F83830 strb r3, [r0, #56] 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4138 .loc 1 2429 0 discriminator 2 4139 002e 1846 mov r0, r3 4140 .LVL383: 4141 0030 7047 bx lr 4142 .LVL384: 4143 .L316: 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4144 .loc 1 2408 0 4145 0032 0220 movs r0, #2 4146 .LVL385: 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4147 .loc 1 2430 0 4148 0034 7047 bx lr 4149 .cfi_endproc 4150 .LFE165: 4152 .section .text.HAL_UART_GetState,"ax",%progbits 4153 .align 1 ARM GAS /tmp/ccD7nRW1.s page 138 4154 .global HAL_UART_GetState 4155 .syntax unified 4156 .thumb 4157 .thumb_func 4158 .fpu fpv4-sp-d16 4160 HAL_UART_GetState: 4161 .LFB166: 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 4162 .loc 1 2461 0 4163 .cfi_startproc 4164 @ args = 0, pretend = 0, frame = 0 4165 @ frame_needed = 0, uses_anonymous_args = 0 4166 @ link register save eliminated. 4167 .LVL386: 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 4168 .loc 1 2463 0 4169 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 4170 .LVL387: 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4171 .loc 1 2464 0 4172 0004 90F83A00 ldrb r0, [r0, #58] @ zero_extendqisi2 4173 .LVL388: 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4174 .loc 1 2467 0 4175 0008 1843 orrs r0, r0, r3 4176 .LVL389: 4177 000a 7047 bx lr 4178 .cfi_endproc 4179 .LFE166: 4181 .section .text.HAL_UART_GetError,"ax",%progbits 4182 .align 1 4183 .global HAL_UART_GetError 4184 .syntax unified 4185 .thumb 4186 .thumb_func 4187 .fpu fpv4-sp-d16 4189 HAL_UART_GetError: 4190 .LFB167: 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 4191 .loc 1 2476 0 4192 .cfi_startproc 4193 @ args = 0, pretend = 0, frame = 0 4194 @ frame_needed = 0, uses_anonymous_args = 0 4195 @ link register save eliminated. 4196 .LVL390: 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4197 .loc 1 2477 0 4198 0000 C06B ldr r0, [r0, #60] 4199 .LVL391: 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4200 .loc 1 2478 0 4201 0002 7047 bx lr 4202 .cfi_endproc 4203 .LFE167: 4205 .text 4206 .Letext0: 4207 .file 2 "/usr/include/newlib/machine/_default_types.h" ARM GAS /tmp/ccD7nRW1.s page 139 4208 .file 3 "/usr/include/newlib/sys/_stdint.h" 4209 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 4210 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h" 4211 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h" 4212 .file 7 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 4213 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 4214 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 4215 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h" 4216 .file 11 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h" 4217 .file 12 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" ARM GAS /tmp/ccD7nRW1.s page 140 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_uart.c /tmp/ccD7nRW1.s:18 .text.UART_EndTxTransfer:0000000000000000 $t /tmp/ccD7nRW1.s:24 .text.UART_EndTxTransfer:0000000000000000 UART_EndTxTransfer /tmp/ccD7nRW1.s:46 .text.UART_EndRxTransfer:0000000000000000 $t /tmp/ccD7nRW1.s:52 .text.UART_EndRxTransfer:0000000000000000 UART_EndRxTransfer /tmp/ccD7nRW1.s:78 .text.UART_Transmit_IT:0000000000000000 $t /tmp/ccD7nRW1.s:84 .text.UART_Transmit_IT:0000000000000000 UART_Transmit_IT /tmp/ccD7nRW1.s:172 .text.UART_SetConfig:0000000000000000 $t /tmp/ccD7nRW1.s:178 .text.UART_SetConfig:0000000000000000 UART_SetConfig /tmp/ccD7nRW1.s:504 .text.UART_SetConfig:000000000000033c $d /tmp/ccD7nRW1.s:510 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccD7nRW1.s:516 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout /tmp/ccD7nRW1.s:591 .text.HAL_UART_MspInit:0000000000000000 $t /tmp/ccD7nRW1.s:598 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit /tmp/ccD7nRW1.s:611 .text.HAL_UART_Init:0000000000000000 $t /tmp/ccD7nRW1.s:618 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init /tmp/ccD7nRW1.s:698 .text.HAL_HalfDuplex_Init:0000000000000000 $t /tmp/ccD7nRW1.s:705 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init /tmp/ccD7nRW1.s:791 .text.HAL_LIN_Init:0000000000000000 $t /tmp/ccD7nRW1.s:798 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init /tmp/ccD7nRW1.s:901 .text.HAL_MultiProcessor_Init:0000000000000000 $t /tmp/ccD7nRW1.s:908 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init /tmp/ccD7nRW1.s:1016 .text.HAL_UART_MspDeInit:0000000000000000 $t /tmp/ccD7nRW1.s:1023 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit /tmp/ccD7nRW1.s:1036 .text.HAL_UART_DeInit:0000000000000000 $t /tmp/ccD7nRW1.s:1043 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit /tmp/ccD7nRW1.s:1095 .text.HAL_UART_Transmit:0000000000000000 $t /tmp/ccD7nRW1.s:1102 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit /tmp/ccD7nRW1.s:1288 .text.HAL_UART_Receive:0000000000000000 $t /tmp/ccD7nRW1.s:1295 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive /tmp/ccD7nRW1.s:1485 .text.HAL_UART_Transmit_IT:0000000000000000 $t /tmp/ccD7nRW1.s:1492 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT /tmp/ccD7nRW1.s:1567 .text.HAL_UART_Receive_IT:0000000000000000 $t /tmp/ccD7nRW1.s:1574 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT /tmp/ccD7nRW1.s:1659 .text.HAL_UART_Transmit_DMA:0000000000000000 $t /tmp/ccD7nRW1.s:1666 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA /tmp/ccD7nRW1.s:1776 .text.HAL_UART_Transmit_DMA:0000000000000080 $d /tmp/ccD7nRW1.s:2519 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt /tmp/ccD7nRW1.s:2629 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt /tmp/ccD7nRW1.s:2933 .text.UART_DMAError:0000000000000000 UART_DMAError /tmp/ccD7nRW1.s:1783 .text.HAL_UART_Receive_DMA:0000000000000000 $t /tmp/ccD7nRW1.s:1790 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA /tmp/ccD7nRW1.s:1925 .text.HAL_UART_Receive_DMA:000000000000009c $d /tmp/ccD7nRW1.s:2679 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt /tmp/ccD7nRW1.s:2883 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt /tmp/ccD7nRW1.s:1932 .text.HAL_UART_DMAPause:0000000000000000 $t /tmp/ccD7nRW1.s:1939 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause /tmp/ccD7nRW1.s:2026 .text.HAL_UART_DMAResume:0000000000000000 $t /tmp/ccD7nRW1.s:2033 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume /tmp/ccD7nRW1.s:2127 .text.HAL_UART_DMAStop:0000000000000000 $t /tmp/ccD7nRW1.s:2134 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop /tmp/ccD7nRW1.s:2223 .text.HAL_UART_Abort:0000000000000000 $t /tmp/ccD7nRW1.s:2230 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort /tmp/ccD7nRW1.s:2342 .text.HAL_UART_AbortTransmit:0000000000000000 $t /tmp/ccD7nRW1.s:2349 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit /tmp/ccD7nRW1.s:2415 .text.HAL_UART_AbortReceive:0000000000000000 $t ARM GAS /tmp/ccD7nRW1.s page 141 /tmp/ccD7nRW1.s:2422 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive /tmp/ccD7nRW1.s:2493 .text.HAL_UART_TxCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:2500 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback /tmp/ccD7nRW1.s:2513 .text.UART_DMATransmitCplt:0000000000000000 $t /tmp/ccD7nRW1.s:2567 .text.UART_EndTransmit_IT:0000000000000000 $t /tmp/ccD7nRW1.s:2573 .text.UART_EndTransmit_IT:0000000000000000 UART_EndTransmit_IT /tmp/ccD7nRW1.s:2603 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:2610 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback /tmp/ccD7nRW1.s:2623 .text.UART_DMATxHalfCplt:0000000000000000 $t /tmp/ccD7nRW1.s:2653 .text.HAL_UART_RxCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:2660 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback /tmp/ccD7nRW1.s:2673 .text.UART_DMAReceiveCplt:0000000000000000 $t /tmp/ccD7nRW1.s:2732 .text.UART_Receive_IT:0000000000000000 $t /tmp/ccD7nRW1.s:2738 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT /tmp/ccD7nRW1.s:2857 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:2864 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback /tmp/ccD7nRW1.s:2877 .text.UART_DMARxHalfCplt:0000000000000000 $t /tmp/ccD7nRW1.s:2907 .text.HAL_UART_ErrorCallback:0000000000000000 $t /tmp/ccD7nRW1.s:2914 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback /tmp/ccD7nRW1.s:2927 .text.UART_DMAError:0000000000000000 $t /tmp/ccD7nRW1.s:3015 .text.HAL_UART_IRQHandler:0000000000000000 $t /tmp/ccD7nRW1.s:3022 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler /tmp/ccD7nRW1.s:3242 .text.HAL_UART_IRQHandler:000000000000011c $d /tmp/ccD7nRW1.s:3253 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError /tmp/ccD7nRW1.s:3247 .text.UART_DMAAbortOnError:0000000000000000 $t /tmp/ccD7nRW1.s:3281 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3288 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback /tmp/ccD7nRW1.s:3301 .text.HAL_UART_Abort_IT:0000000000000000 $t /tmp/ccD7nRW1.s:3308 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT /tmp/ccD7nRW1.s:3465 .text.HAL_UART_Abort_IT:00000000000000c0 $d /tmp/ccD7nRW1.s:3533 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback /tmp/ccD7nRW1.s:3477 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback /tmp/ccD7nRW1.s:3471 .text.UART_DMARxAbortCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3527 .text.UART_DMATxAbortCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3583 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3590 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback /tmp/ccD7nRW1.s:3603 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t /tmp/ccD7nRW1.s:3610 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT /tmp/ccD7nRW1.s:3689 .text.HAL_UART_AbortTransmit_IT:000000000000005c $d /tmp/ccD7nRW1.s:3700 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback /tmp/ccD7nRW1.s:3694 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3729 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3736 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback /tmp/ccD7nRW1.s:3749 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t /tmp/ccD7nRW1.s:3756 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT /tmp/ccD7nRW1.s:3840 .text.HAL_UART_AbortReceive_IT:0000000000000068 $d /tmp/ccD7nRW1.s:3851 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback /tmp/ccD7nRW1.s:3845 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t /tmp/ccD7nRW1.s:3880 .text.HAL_LIN_SendBreak:0000000000000000 $t /tmp/ccD7nRW1.s:3887 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak /tmp/ccD7nRW1.s:3931 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t /tmp/ccD7nRW1.s:3938 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode /tmp/ccD7nRW1.s:3982 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 $t /tmp/ccD7nRW1.s:3989 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 HAL_MultiProcessor_ExitMuteMode /tmp/ccD7nRW1.s:4033 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t /tmp/ccD7nRW1.s:4040 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter /tmp/ccD7nRW1.s:4093 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t ARM GAS /tmp/ccD7nRW1.s page 142 /tmp/ccD7nRW1.s:4100 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver /tmp/ccD7nRW1.s:4153 .text.HAL_UART_GetState:0000000000000000 $t /tmp/ccD7nRW1.s:4160 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState /tmp/ccD7nRW1.s:4182 .text.HAL_UART_GetError:0000000000000000 $t /tmp/ccD7nRW1.s:4189 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError .debug_frame:0000000000000010 $d UNDEFINED SYMBOLS HAL_RCC_GetPCLK1Freq HAL_RCC_GetPCLK2Freq HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_GetError HAL_DMA_Abort_IT