ARM GAS /tmp/ccGtkZvD.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f4xx_hal_uart.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.UART_EndTxTransfer,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 UART_EndTxTransfer: 26 .LVL0: 27 .LFB174: 28 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @file stm32f4xx_hal_uart.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + IO operation functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral Control functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral State and Errors functions 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @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): ARM GAS /tmp/ccGtkZvD.s page 2 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. 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 ARM GAS /tmp/ccGtkZvD.s page 3 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 **** 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 ARM GAS /tmp/ccGtkZvD.s page 4 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() 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 **** |---------|-----------|---------------------------------------| ARM GAS /tmp/ccGtkZvD.s page 5 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 **** +-------------------------------------------------------------+ 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); ARM GAS /tmp/ccGtkZvD.s page 6 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); 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 ARM GAS /tmp/ccGtkZvD.s page 7 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) 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)); ARM GAS /tmp/ccGtkZvD.s page 8 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 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); ARM GAS /tmp/ccGtkZvD.s page 9 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 */ 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) ARM GAS /tmp/ccGtkZvD.s page 10 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 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 ARM GAS /tmp/ccGtkZvD.s page 11 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 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); ARM GAS /tmp/ccGtkZvD.s page 12 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 */ 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 **** ARM GAS /tmp/ccGtkZvD.s page 13 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** ARM GAS /tmp/ccGtkZvD.s page 14 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 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; ARM GAS /tmp/ccGtkZvD.s page 15 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 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 ARM GAS /tmp/ccGtkZvD.s page 16 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 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; ARM GAS /tmp/ccGtkZvD.s page 17 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 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 **** ARM GAS /tmp/ccGtkZvD.s page 18 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. 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 ARM GAS /tmp/ccGtkZvD.s page 19 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 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; ARM GAS /tmp/ccGtkZvD.s page 20 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 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 **** ARM GAS /tmp/ccGtkZvD.s page 21 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); 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 */ ARM GAS /tmp/ccGtkZvD.s page 22 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 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 ARM GAS /tmp/ccGtkZvD.s page 23 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 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) ARM GAS /tmp/ccGtkZvD.s page 24 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)) 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. ARM GAS /tmp/ccGtkZvD.s page 25 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 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 **** } ARM GAS /tmp/ccGtkZvD.s page 26 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 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 */ ARM GAS /tmp/ccGtkZvD.s page 27 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 **** } 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 **** ARM GAS /tmp/ccGtkZvD.s page 28 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) 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 **** { ARM GAS /tmp/ccGtkZvD.s page 29 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 **** 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); ARM GAS /tmp/ccGtkZvD.s page 30 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) */ 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. ARM GAS /tmp/ccGtkZvD.s page 31 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; 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; ARM GAS /tmp/ccGtkZvD.s page 32 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 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 */ ARM GAS /tmp/ccGtkZvD.s page 33 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 **** { 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)); ARM GAS /tmp/ccGtkZvD.s page 34 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 */ 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; ARM GAS /tmp/ccGtkZvD.s page 35 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 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 */ ARM GAS /tmp/ccGtkZvD.s page 36 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** } ARM GAS /tmp/ccGtkZvD.s page 37 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 -----------------------------------*/ 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 **** { ARM GAS /tmp/ccGtkZvD.s page 38 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) 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. ARM GAS /tmp/ccGtkZvD.s page 39 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. 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 **** } ARM GAS /tmp/ccGtkZvD.s page 40 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 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, ARM GAS /tmp/ccGtkZvD.s page 41 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 **** */ 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 ARM GAS /tmp/ccGtkZvD.s page 42 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 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 **** */ ARM GAS /tmp/ccGtkZvD.s page 43 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 **** { 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; ARM GAS /tmp/ccGtkZvD.s page 44 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 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 **** * @} ARM GAS /tmp/ccGtkZvD.s page 45 2482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 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) ARM GAS /tmp/ccGtkZvD.s page 46 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); 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 ARM GAS /tmp/ccGtkZvD.s page 47 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); 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*/ ARM GAS /tmp/ccGtkZvD.s page 48 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 */ 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 **** { 29 .loc 1 2700 1 view -0 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 0 32 @ frame_needed = 0, uses_anonymous_args = 0 33 @ link register save eliminated. 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)); 34 .loc 1 2702 3 view .LVU1 35 0000 0268 ldr r2, [r0] ARM GAS /tmp/ccGtkZvD.s page 49 36 0002 D368 ldr r3, [r2, #12] 37 0004 23F0C003 bic r3, r3, #192 38 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; 39 .loc 1 2705 3 view .LVU2 40 .loc 1 2705 17 is_stmt 0 view .LVU3 41 000a 2023 movs r3, #32 42 000c 80F83930 strb r3, [r0, #57] 2706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 43 .loc 1 2706 1 view .LVU4 44 0010 7047 bx lr 45 .cfi_endproc 46 .LFE174: 48 .section .text.UART_EndRxTransfer,"ax",%progbits 49 .align 1 50 .syntax unified 51 .thumb 52 .thumb_func 54 UART_EndRxTransfer: 55 .LVL1: 56 .LFB175: 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 **** { 57 .loc 1 2714 1 is_stmt 1 view -0 58 .cfi_startproc 59 @ args = 0, pretend = 0, frame = 0 60 @ frame_needed = 0, uses_anonymous_args = 0 61 @ link register save eliminated. 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)); 62 .loc 1 2716 3 view .LVU6 63 0000 0268 ldr r2, [r0] 64 0002 D368 ldr r3, [r2, #12] 65 0004 23F49073 bic r3, r3, #288 66 0008 D360 str r3, [r2, #12] 2717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 67 .loc 1 2717 3 view .LVU7 68 000a 0268 ldr r2, [r0] 69 000c 5369 ldr r3, [r2, #20] 70 000e 23F00103 bic r3, r3, #1 71 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; 72 .loc 1 2720 3 view .LVU8 73 .loc 1 2720 18 is_stmt 0 view .LVU9 74 0014 2023 movs r3, #32 75 0016 80F83A30 strb r3, [r0, #58] 2721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccGtkZvD.s page 50 76 .loc 1 2721 1 view .LVU10 77 001a 7047 bx lr 78 .cfi_endproc 79 .LFE175: 81 .section .text.UART_Transmit_IT,"ax",%progbits 82 .align 1 83 .syntax unified 84 .thumb 85 .thumb_func 87 UART_Transmit_IT: 88 .LVL2: 89 .LFB181: 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 **** } ARM GAS /tmp/ccGtkZvD.s page 51 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; 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; ARM GAS /tmp/ccGtkZvD.s page 52 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 */ 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 **** ARM GAS /tmp/ccGtkZvD.s page 53 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); 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 **** { 90 .loc 1 2898 1 is_stmt 1 view -0 91 .cfi_startproc 92 @ args = 0, pretend = 0, frame = 0 93 @ frame_needed = 0, uses_anonymous_args = 0 94 @ link register save eliminated. 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 95 .loc 1 2899 3 view .LVU12 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) 96 .loc 1 2902 3 view .LVU13 97 .loc 1 2902 12 is_stmt 0 view .LVU14 98 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 99 0004 DBB2 uxtb r3, r3 100 .loc 1 2902 6 view .LVU15 101 0006 212B cmp r3, #33 102 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 */ ARM GAS /tmp/ccGtkZvD.s page 54 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; 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; 103 .loc 1 2934 12 view .LVU16 104 000a 0220 movs r0, #2 105 .LVL3: 2935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 106 .loc 1 2936 1 view .LVU17 107 000c 7047 bx lr 108 .LVL4: 109 .L10: 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 110 .loc 1 2904 5 is_stmt 1 view .LVU18 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 111 .loc 1 2904 20 is_stmt 0 view .LVU19 112 000e 8368 ldr r3, [r0, #8] 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 113 .loc 1 2904 8 view .LVU20 114 0010 B3F5805F cmp r3, #4096 115 0014 17D0 beq .L11 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 116 .loc 1 2919 7 is_stmt 1 view .LVU21 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 117 .loc 1 2919 45 is_stmt 0 view .LVU22 118 0016 036A ldr r3, [r0, #32] 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 119 .loc 1 2919 57 view .LVU23 120 0018 5A1C adds r2, r3, #1 121 001a 0262 str r2, [r0, #32] 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 122 .loc 1 2919 39 view .LVU24 123 001c 1A78 ldrb r2, [r3] @ zero_extendqisi2 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 124 .loc 1 2919 12 view .LVU25 125 001e 0368 ldr r3, [r0] 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 126 .loc 1 2919 27 view .LVU26 127 0020 5A60 str r2, [r3, #4] 128 .L7: 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 129 .loc 1 2922 5 is_stmt 1 view .LVU27 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 130 .loc 1 2922 16 is_stmt 0 view .LVU28 131 0022 C38C ldrh r3, [r0, #38] 132 0024 9BB2 uxth r3, r3 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 133 .loc 1 2922 9 view .LVU29 134 0026 013B subs r3, r3, #1 135 0028 9BB2 uxth r3, r3 ARM GAS /tmp/ccGtkZvD.s page 55 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 136 .loc 1 2922 8 view .LVU30 137 002a C384 strh r3, [r0, #38] @ movhi 138 002c 4BB9 cbnz r3, .L8 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 139 .loc 1 2925 7 is_stmt 1 view .LVU31 140 002e 0268 ldr r2, [r0] 141 0030 D368 ldr r3, [r2, #12] 142 0032 23F08003 bic r3, r3, #128 143 0036 D360 str r3, [r2, #12] 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 144 .loc 1 2928 7 view .LVU32 145 0038 0268 ldr r2, [r0] 146 003a D368 ldr r3, [r2, #12] 147 003c 43F04003 orr r3, r3, #64 148 0040 D360 str r3, [r2, #12] 149 .L8: 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 150 .loc 1 2930 5 view .LVU33 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 151 .loc 1 2930 12 is_stmt 0 view .LVU34 152 0042 0020 movs r0, #0 153 .LVL5: 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 154 .loc 1 2930 12 view .LVU35 155 0044 7047 bx lr 156 .LVL6: 157 .L11: 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 158 .loc 1 2906 7 is_stmt 1 view .LVU36 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 159 .loc 1 2906 11 is_stmt 0 view .LVU37 160 0046 036A ldr r3, [r0, #32] 161 .LVL7: 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 162 .loc 1 2907 7 is_stmt 1 view .LVU38 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 163 .loc 1 2907 40 is_stmt 0 view .LVU39 164 0048 1B88 ldrh r3, [r3] 165 .LVL8: 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 166 .loc 1 2907 12 view .LVU40 167 004a 0268 ldr r2, [r0] 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 168 .loc 1 2907 29 view .LVU41 169 004c C3F30803 ubfx r3, r3, #0, #9 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 170 .loc 1 2907 27 view .LVU42 171 0050 5360 str r3, [r2, #4] 172 .LVL9: 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 173 .loc 1 2908 7 is_stmt 1 view .LVU43 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 174 .loc 1 2908 22 is_stmt 0 view .LVU44 175 0052 0369 ldr r3, [r0, #16] 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 176 .loc 1 2908 10 view .LVU45 ARM GAS /tmp/ccGtkZvD.s page 56 177 0054 1BB9 cbnz r3, .L6 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 178 .loc 1 2910 9 is_stmt 1 view .LVU46 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 179 .loc 1 2910 27 is_stmt 0 view .LVU47 180 0056 036A ldr r3, [r0, #32] 181 0058 0233 adds r3, r3, #2 182 005a 0362 str r3, [r0, #32] 183 005c E1E7 b .L7 184 .L6: 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 185 .loc 1 2914 9 is_stmt 1 view .LVU48 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 186 .loc 1 2914 27 is_stmt 0 view .LVU49 187 005e 036A ldr r3, [r0, #32] 188 0060 0133 adds r3, r3, #1 189 0062 0362 str r3, [r0, #32] 190 0064 DDE7 b .L7 191 .cfi_endproc 192 .LFE181: 194 .section .text.UART_SetConfig,"ax",%progbits 195 .align 1 196 .syntax unified 197 .thumb 198 .thumb_func 200 UART_SetConfig: 201 .LVL10: 202 .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 **** 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 ARM GAS /tmp/ccGtkZvD.s page 57 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); 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 */ ARM GAS /tmp/ccGtkZvD.s page 58 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 **** { 203 .loc 1 3041 1 is_stmt 1 view -0 204 .cfi_startproc 205 @ args = 0, pretend = 0, frame = 0 206 @ frame_needed = 0, uses_anonymous_args = 0 207 .loc 1 3041 1 is_stmt 0 view .LVU51 208 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 209 .LCFI0: 210 .cfi_def_cfa_offset 32 211 .cfi_offset 3, -32 212 .cfi_offset 4, -28 213 .cfi_offset 5, -24 214 .cfi_offset 6, -20 215 .cfi_offset 7, -16 216 .cfi_offset 8, -12 217 .cfi_offset 9, -8 218 .cfi_offset 14, -4 219 0004 0446 mov r4, r0 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg; 220 .loc 1 3042 3 is_stmt 1 view .LVU52 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)); 221 .loc 1 3045 3 view .LVU53 3046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 222 .loc 1 3046 3 view .LVU54 3047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 223 .loc 1 3047 3 view .LVU55 3048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); 224 .loc 1 3048 3 view .LVU56 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); 225 .loc 1 3053 3 view .LVU57 226 0006 0268 ldr r2, [r0] 227 0008 1369 ldr r3, [r2, #16] 228 000a 23F44053 bic r3, r3, #12288 ARM GAS /tmp/ccGtkZvD.s page 59 229 000e C168 ldr r1, [r0, #12] 230 0010 0B43 orrs r3, r3, r1 231 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 232 .loc 1 3062 3 view .LVU58 233 .loc 1 3062 33 is_stmt 0 view .LVU59 234 0014 8368 ldr r3, [r0, #8] 235 .loc 1 3062 58 view .LVU60 236 0016 0269 ldr r2, [r0, #16] 237 .loc 1 3062 45 view .LVU61 238 0018 1343 orrs r3, r3, r2 239 .loc 1 3062 79 view .LVU62 240 001a 4269 ldr r2, [r0, #20] 241 .loc 1 3062 66 view .LVU63 242 001c 1343 orrs r3, r3, r2 243 .loc 1 3062 98 view .LVU64 244 001e C269 ldr r2, [r0, #28] 245 .loc 1 3062 10 view .LVU65 246 0020 1A43 orrs r2, r2, r3 247 .LVL11: 3063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, 248 .loc 1 3063 3 is_stmt 1 view .LVU66 249 0022 0168 ldr r1, [r0] 250 0024 CB68 ldr r3, [r1, #12] 251 0026 23F41643 bic r3, r3, #38400 252 002a 23F00C03 bic r3, r3, #12 253 002e 1343 orrs r3, r3, r2 254 0030 CB60 str r3, [r1, #12] 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); 255 .loc 1 3069 3 view .LVU67 256 0032 0268 ldr r2, [r0] 257 .LVL12: 258 .loc 1 3069 3 is_stmt 0 view .LVU68 259 0034 5369 ldr r3, [r2, #20] 260 0036 23F44073 bic r3, r3, #768 261 003a 8169 ldr r1, [r0, #24] 262 003c 0B43 orrs r3, r3, r1 263 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) 264 .loc 1 3072 3 is_stmt 1 view .LVU69 265 .loc 1 3072 18 is_stmt 0 view .LVU70 266 0040 C369 ldr r3, [r0, #28] ARM GAS /tmp/ccGtkZvD.s page 60 267 .loc 1 3072 6 view .LVU71 268 0042 B3F5004F cmp r3, #32768 269 0046 5ED0 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)) 270 .loc 1 3095 5 is_stmt 1 view .LVU72 271 .loc 1 3095 15 is_stmt 0 view .LVU73 272 0048 0368 ldr r3, [r0] 273 .loc 1 3095 8 view .LVU74 274 004a B54A ldr r2, .L21 275 004c 9342 cmp r3, r2 276 004e 00F01081 beq .L17 277 .loc 1 3095 37 discriminator 1 view .LVU75 278 0052 02F58062 add r2, r2, #1024 279 0056 9342 cmp r3, r2 280 0058 00F00B81 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); 281 .loc 1 3107 7 is_stmt 1 view .LVU76 282 .loc 1 3107 30 is_stmt 0 view .LVU77 283 005c FFF7FEFF bl HAL_RCC_GetPCLK1Freq 284 .LVL13: 285 .loc 1 3107 30 view .LVU78 286 0060 00EB8000 add r0, r0, r0, lsl #2 287 0064 00EB8000 add r0, r0, r0, lsl #2 288 0068 6568 ldr r5, [r4, #4] ARM GAS /tmp/ccGtkZvD.s page 61 289 006a AD00 lsls r5, r5, #2 290 006c B0FBF5F5 udiv r5, r0, r5 291 0070 AC4F ldr r7, .L21+4 292 0072 A7FB0535 umull r3, r5, r7, r5 293 0076 6D09 lsrs r5, r5, #5 294 0078 2E01 lsls r6, r5, #4 295 007a FFF7FEFF bl HAL_RCC_GetPCLK1Freq 296 .LVL14: 297 007e 00EB8000 add r0, r0, r0, lsl #2 298 0082 00EB8000 add r0, r0, r0, lsl #2 299 0086 6568 ldr r5, [r4, #4] 300 0088 AD00 lsls r5, r5, #2 301 008a B0FBF5F5 udiv r5, r0, r5 302 008e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 303 .LVL15: 304 0092 00EB8000 add r0, r0, r0, lsl #2 305 0096 00EB8000 add r0, r0, r0, lsl #2 306 009a 6368 ldr r3, [r4, #4] 307 009c 9B00 lsls r3, r3, #2 308 009e B0FBF3F3 udiv r3, r0, r3 309 00a2 A7FB0323 umull r2, r3, r7, r3 310 00a6 5B09 lsrs r3, r3, #5 311 00a8 4FF06408 mov r8, #100 312 00ac 08FB1353 mls r3, r8, r3, r5 313 00b0 1B01 lsls r3, r3, #4 314 00b2 3233 adds r3, r3, #50 315 00b4 A7FB0323 umull r2, r3, r7, r3 316 00b8 5B09 lsrs r3, r3, #5 317 00ba 03F0F003 and r3, r3, #240 318 00be F518 adds r5, r6, r3 319 00c0 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 320 .LVL16: 321 00c4 00EB8000 add r0, r0, r0, lsl #2 322 00c8 00EB8000 add r0, r0, r0, lsl #2 323 00cc 6668 ldr r6, [r4, #4] 324 00ce B600 lsls r6, r6, #2 325 00d0 B0FBF6F6 udiv r6, r0, r6 326 00d4 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 327 .LVL17: 328 00d8 00EB8000 add r0, r0, r0, lsl #2 329 00dc 00EB8000 add r0, r0, r0, lsl #2 330 00e0 6368 ldr r3, [r4, #4] 331 00e2 9B00 lsls r3, r3, #2 332 00e4 B0FBF3F0 udiv r0, r0, r3 333 00e8 A7FB0030 umull r3, r0, r7, r0 334 00ec 4009 lsrs r0, r0, #5 335 00ee 08FB1060 mls r0, r8, r0, r6 336 00f2 0001 lsls r0, r0, #4 337 00f4 3230 adds r0, r0, #50 338 00f6 A7FB0037 umull r3, r7, r7, r0 339 00fa C7F34317 ubfx r7, r7, #5, #4 340 .loc 1 3107 12 view .LVU79 341 00fe 2368 ldr r3, [r4] 342 .loc 1 3107 30 view .LVU80 343 0100 2F44 add r7, r7, r5 344 .loc 1 3107 28 view .LVU81 345 0102 9F60 str r7, [r3, #8] ARM GAS /tmp/ccGtkZvD.s page 62 3108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 346 .loc 1 3110 1 view .LVU82 347 0104 09E1 b .L12 348 .LVL18: 349 .L20: 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 350 .loc 1 3076 5 is_stmt 1 view .LVU83 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 351 .loc 1 3076 15 is_stmt 0 view .LVU84 352 0106 0368 ldr r3, [r0] 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 353 .loc 1 3076 8 view .LVU85 354 0108 854A ldr r2, .L21 355 010a 9342 cmp r3, r2 356 010c 5AD0 beq .L14 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 357 .loc 1 3076 37 discriminator 1 view .LVU86 358 010e 02F58062 add r2, r2, #1024 359 0112 9342 cmp r3, r2 360 0114 56D0 beq .L14 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 361 .loc 1 3088 7 is_stmt 1 view .LVU87 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 362 .loc 1 3088 30 is_stmt 0 view .LVU88 363 0116 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 364 .LVL19: 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 365 .loc 1 3088 30 view .LVU89 366 011a 00EB8000 add r0, r0, r0, lsl #2 367 011e 00EB8000 add r0, r0, r0, lsl #2 368 0122 6568 ldr r5, [r4, #4] 369 0124 6D00 lsls r5, r5, #1 370 0126 B0FBF5F5 udiv r5, r0, r5 371 012a 7E4F ldr r7, .L21+4 372 012c A7FB0535 umull r3, r5, r7, r5 373 0130 6D09 lsrs r5, r5, #5 374 0132 4FEA0519 lsl r9, r5, #4 375 0136 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 376 .LVL20: 377 013a 00EB8000 add r0, r0, r0, lsl #2 378 013e 00EB8000 add r0, r0, r0, lsl #2 379 0142 6668 ldr r6, [r4, #4] 380 0144 7600 lsls r6, r6, #1 381 0146 B0FBF6F6 udiv r6, r0, r6 382 014a FFF7FEFF bl HAL_RCC_GetPCLK1Freq 383 .LVL21: 384 014e 00EB8000 add r0, r0, r0, lsl #2 385 0152 00EB8000 add r0, r0, r0, lsl #2 386 0156 6568 ldr r5, [r4, #4] 387 0158 6D00 lsls r5, r5, #1 388 015a B0FBF5F5 udiv r5, r0, r5 389 015e A7FB0535 umull r3, r5, r7, r5 390 0162 6D09 lsrs r5, r5, #5 391 0164 4FF06408 mov r8, #100 392 0168 08FB1565 mls r5, r8, r5, r6 ARM GAS /tmp/ccGtkZvD.s page 63 393 016c ED00 lsls r5, r5, #3 394 016e 3235 adds r5, r5, #50 395 0170 A7FB0535 umull r3, r5, r7, r5 396 0174 6D09 lsrs r5, r5, #5 397 0176 6D00 lsls r5, r5, #1 398 0178 05F4F875 and r5, r5, #496 399 017c 4D44 add r5, r5, r9 400 017e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 401 .LVL22: 402 0182 00EB8000 add r0, r0, r0, lsl #2 403 0186 00EB8000 add r0, r0, r0, lsl #2 404 018a 6668 ldr r6, [r4, #4] 405 018c 7600 lsls r6, r6, #1 406 018e B0FBF6F6 udiv r6, r0, r6 407 0192 FFF7FEFF bl HAL_RCC_GetPCLK1Freq 408 .LVL23: 409 0196 00EB8000 add r0, r0, r0, lsl #2 410 019a 00EB8000 add r0, r0, r0, lsl #2 411 019e 6368 ldr r3, [r4, #4] 412 01a0 5B00 lsls r3, r3, #1 413 01a2 B0FBF3F3 udiv r3, r0, r3 414 01a6 A7FB0323 umull r2, r3, r7, r3 415 01aa 5B09 lsrs r3, r3, #5 416 01ac 08FB1363 mls r3, r8, r3, r6 417 01b0 DB00 lsls r3, r3, #3 418 01b2 3233 adds r3, r3, #50 419 01b4 A7FB0337 umull r3, r7, r7, r3 420 01b8 C7F34217 ubfx r7, r7, #5, #3 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 421 .loc 1 3088 12 view .LVU90 422 01bc 2368 ldr r3, [r4] 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 423 .loc 1 3088 30 view .LVU91 424 01be 2F44 add r7, r7, r5 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 425 .loc 1 3088 28 view .LVU92 426 01c0 9F60 str r7, [r3, #8] 427 01c2 AAE0 b .L12 428 .LVL24: 429 .L14: 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 430 .loc 1 3078 7 is_stmt 1 view .LVU93 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 431 .loc 1 3078 30 is_stmt 0 view .LVU94 432 01c4 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 433 .LVL25: 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 434 .loc 1 3078 30 view .LVU95 435 01c8 00EB8000 add r0, r0, r0, lsl #2 436 01cc 00EB8000 add r0, r0, r0, lsl #2 437 01d0 6568 ldr r5, [r4, #4] 438 01d2 6D00 lsls r5, r5, #1 439 01d4 B0FBF5F5 udiv r5, r0, r5 440 01d8 524F ldr r7, .L21+4 441 01da A7FB0535 umull r3, r5, r7, r5 442 01de 6D09 lsrs r5, r5, #5 443 01e0 4FEA0519 lsl r9, r5, #4 ARM GAS /tmp/ccGtkZvD.s page 64 444 01e4 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 445 .LVL26: 446 01e8 00EB8000 add r0, r0, r0, lsl #2 447 01ec 00EB8000 add r0, r0, r0, lsl #2 448 01f0 6668 ldr r6, [r4, #4] 449 01f2 7600 lsls r6, r6, #1 450 01f4 B0FBF6F6 udiv r6, r0, r6 451 01f8 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 452 .LVL27: 453 01fc 00EB8000 add r0, r0, r0, lsl #2 454 0200 00EB8000 add r0, r0, r0, lsl #2 455 0204 6568 ldr r5, [r4, #4] 456 0206 6D00 lsls r5, r5, #1 457 0208 B0FBF5F5 udiv r5, r0, r5 458 020c A7FB0535 umull r3, r5, r7, r5 459 0210 6D09 lsrs r5, r5, #5 460 0212 4FF06408 mov r8, #100 461 0216 08FB1565 mls r5, r8, r5, r6 462 021a ED00 lsls r5, r5, #3 463 021c 3235 adds r5, r5, #50 464 021e A7FB0535 umull r3, r5, r7, r5 465 0222 6D09 lsrs r5, r5, #5 466 0224 6D00 lsls r5, r5, #1 467 0226 05F4F875 and r5, r5, #496 468 022a 4D44 add r5, r5, r9 469 022c FFF7FEFF bl HAL_RCC_GetPCLK2Freq 470 .LVL28: 471 0230 00EB8000 add r0, r0, r0, lsl #2 472 0234 00EB8000 add r0, r0, r0, lsl #2 473 0238 6668 ldr r6, [r4, #4] 474 023a 7600 lsls r6, r6, #1 475 023c B0FBF6F6 udiv r6, r0, r6 476 0240 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 477 .LVL29: 478 0244 00EB8000 add r0, r0, r0, lsl #2 479 0248 00EB8000 add r0, r0, r0, lsl #2 480 024c 6368 ldr r3, [r4, #4] 481 024e 5B00 lsls r3, r3, #1 482 0250 B0FBF3F3 udiv r3, r0, r3 483 0254 A7FB0323 umull r2, r3, r7, r3 484 0258 5B09 lsrs r3, r3, #5 485 025a 08FB1363 mls r3, r8, r3, r6 486 025e DB00 lsls r3, r3, #3 487 0260 3233 adds r3, r3, #50 488 0262 A7FB0337 umull r3, r7, r7, r3 489 0266 C7F34217 ubfx r7, r7, #5, #3 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 490 .loc 1 3078 12 view .LVU96 491 026a 2368 ldr r3, [r4] 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 492 .loc 1 3078 30 view .LVU97 493 026c 2F44 add r7, r7, r5 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 494 .loc 1 3078 28 view .LVU98 495 026e 9F60 str r7, [r3, #8] 496 0270 53E0 b .L12 497 .LVL30: ARM GAS /tmp/ccGtkZvD.s page 65 498 .L17: 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 499 .loc 1 3097 7 is_stmt 1 view .LVU99 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 500 .loc 1 3097 30 is_stmt 0 view .LVU100 501 0272 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 502 .LVL31: 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 503 .loc 1 3097 30 view .LVU101 504 0276 00EB8000 add r0, r0, r0, lsl #2 505 027a 00EB8000 add r0, r0, r0, lsl #2 506 027e 6568 ldr r5, [r4, #4] 507 0280 AD00 lsls r5, r5, #2 508 0282 B0FBF5F5 udiv r5, r0, r5 509 0286 274F ldr r7, .L21+4 510 0288 A7FB0535 umull r3, r5, r7, r5 511 028c 6D09 lsrs r5, r5, #5 512 028e 2E01 lsls r6, r5, #4 513 0290 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 514 .LVL32: 515 0294 00EB8000 add r0, r0, r0, lsl #2 516 0298 00EB8000 add r0, r0, r0, lsl #2 517 029c 6568 ldr r5, [r4, #4] 518 029e AD00 lsls r5, r5, #2 519 02a0 B0FBF5F5 udiv r5, r0, r5 520 02a4 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 521 .LVL33: 522 02a8 00EB8000 add r0, r0, r0, lsl #2 523 02ac 00EB8000 add r0, r0, r0, lsl #2 524 02b0 6368 ldr r3, [r4, #4] 525 02b2 9B00 lsls r3, r3, #2 526 02b4 B0FBF3F3 udiv r3, r0, r3 527 02b8 A7FB0323 umull r2, r3, r7, r3 528 02bc 5B09 lsrs r3, r3, #5 529 02be 4FF06408 mov r8, #100 530 02c2 08FB1353 mls r3, r8, r3, r5 531 02c6 1B01 lsls r3, r3, #4 532 02c8 3233 adds r3, r3, #50 533 02ca A7FB0323 umull r2, r3, r7, r3 534 02ce 5B09 lsrs r3, r3, #5 535 02d0 03F0F003 and r3, r3, #240 536 02d4 F518 adds r5, r6, r3 537 02d6 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 538 .LVL34: 539 02da 00EB8000 add r0, r0, r0, lsl #2 540 02de 00EB8000 add r0, r0, r0, lsl #2 541 02e2 6668 ldr r6, [r4, #4] 542 02e4 B600 lsls r6, r6, #2 543 02e6 B0FBF6F6 udiv r6, r0, r6 544 02ea FFF7FEFF bl HAL_RCC_GetPCLK2Freq 545 .LVL35: 546 02ee 00EB8000 add r0, r0, r0, lsl #2 547 02f2 00EB8000 add r0, r0, r0, lsl #2 548 02f6 6368 ldr r3, [r4, #4] 549 02f8 9B00 lsls r3, r3, #2 550 02fa B0FBF3F0 udiv r0, r0, r3 551 02fe A7FB0030 umull r3, r0, r7, r0 ARM GAS /tmp/ccGtkZvD.s page 66 552 0302 4009 lsrs r0, r0, #5 553 0304 08FB1060 mls r0, r8, r0, r6 554 0308 0001 lsls r0, r0, #4 555 030a 3230 adds r0, r0, #50 556 030c A7FB0037 umull r3, r7, r7, r0 557 0310 C7F34317 ubfx r7, r7, #5, #4 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 558 .loc 1 3097 12 view .LVU102 559 0314 2368 ldr r3, [r4] 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 560 .loc 1 3097 30 view .LVU103 561 0316 2F44 add r7, r7, r5 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 562 .loc 1 3097 28 view .LVU104 563 0318 9F60 str r7, [r3, #8] 564 .L12: 565 .loc 1 3110 1 view .LVU105 566 031a BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 567 .LVL36: 568 .L22: 569 .loc 1 3110 1 view .LVU106 570 031e 00BF .align 2 571 .L21: 572 0320 00100140 .word 1073811456 573 0324 1F85EB51 .word 1374389535 574 .cfi_endproc 575 .LFE184: 577 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 578 .align 1 579 .syntax unified 580 .thumb 581 .thumb_func 583 UART_WaitOnFlagUntilTimeout: 584 .LVL37: 585 .LFB173: 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 586 .loc 1 2668 1 is_stmt 1 view -0 587 .cfi_startproc 588 @ args = 4, pretend = 0, frame = 0 589 @ frame_needed = 0, uses_anonymous_args = 0 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 590 .loc 1 2668 1 is_stmt 0 view .LVU108 591 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 592 .LCFI1: 593 .cfi_def_cfa_offset 32 594 .cfi_offset 3, -32 595 .cfi_offset 4, -28 596 .cfi_offset 5, -24 597 .cfi_offset 6, -20 598 .cfi_offset 7, -16 599 .cfi_offset 8, -12 600 .cfi_offset 9, -8 601 .cfi_offset 14, -4 602 0004 0546 mov r5, r0 603 0006 0F46 mov r7, r1 604 0008 1646 mov r6, r2 605 000a 9946 mov r9, r3 ARM GAS /tmp/ccGtkZvD.s page 67 606 000c DDF82080 ldr r8, [sp, #32] 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 607 .loc 1 2670 3 is_stmt 1 view .LVU109 608 .LVL38: 609 .L25: 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 610 .loc 1 2670 9 view .LVU110 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 611 .loc 1 2670 11 is_stmt 0 view .LVU111 612 0010 2C68 ldr r4, [r5] 613 0012 2468 ldr r4, [r4] 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 614 .loc 1 2670 50 view .LVU112 615 0014 37EA0403 bics r3, r7, r4 616 0018 0CBF ite eq 617 001a 4FF0010C moveq ip, #1 618 001e 4FF0000C movne ip, #0 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 619 .loc 1 2670 9 view .LVU113 620 0022 B445 cmp ip, r6 621 0024 1FD1 bne .L30 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 622 .loc 1 2673 5 is_stmt 1 view .LVU114 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 623 .loc 1 2673 8 is_stmt 0 view .LVU115 624 0026 B8F1FF3F cmp r8, #-1 625 002a F1D0 beq .L25 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 626 .loc 1 2675 7 is_stmt 1 view .LVU116 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 627 .loc 1 2675 10 is_stmt 0 view .LVU117 628 002c B8F1000F cmp r8, #0 629 0030 05D0 beq .L26 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 630 .loc 1 2675 32 discriminator 1 view .LVU118 631 0032 FFF7FEFF bl HAL_GetTick 632 .LVL39: 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 633 .loc 1 2675 46 discriminator 1 view .LVU119 634 0036 A0EB0900 sub r0, r0, r9 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 635 .loc 1 2675 27 discriminator 1 view .LVU120 636 003a 4045 cmp r0, r8 637 003c E8D9 bls .L25 638 .L26: 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 639 .loc 1 2678 9 is_stmt 1 view .LVU121 640 003e 2A68 ldr r2, [r5] 641 0040 D368 ldr r3, [r2, #12] 642 0042 23F4D073 bic r3, r3, #416 643 0046 D360 str r3, [r2, #12] 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 644 .loc 1 2679 9 view .LVU122 645 0048 2A68 ldr r2, [r5] 646 004a 5369 ldr r3, [r2, #20] 647 004c 23F00103 bic r3, r3, #1 648 0050 5361 str r3, [r2, #20] ARM GAS /tmp/ccGtkZvD.s page 68 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 649 .loc 1 2681 9 view .LVU123 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 650 .loc 1 2681 24 is_stmt 0 view .LVU124 651 0052 2023 movs r3, #32 652 0054 85F83930 strb r3, [r5, #57] 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 653 .loc 1 2682 9 is_stmt 1 view .LVU125 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 654 .loc 1 2682 24 is_stmt 0 view .LVU126 655 0058 85F83A30 strb r3, [r5, #58] 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 656 .loc 1 2685 9 is_stmt 1 view .LVU127 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 657 .loc 1 2685 9 view .LVU128 658 005c 0023 movs r3, #0 659 005e 85F83830 strb r3, [r5, #56] 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 660 .loc 1 2685 9 view .LVU129 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 661 .loc 1 2687 9 view .LVU130 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 662 .loc 1 2687 16 is_stmt 0 view .LVU131 663 0062 0320 movs r0, #3 664 0064 00E0 b .L27 665 .L30: 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 666 .loc 1 2691 10 view .LVU132 667 0066 0020 movs r0, #0 668 .L27: 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 669 .loc 1 2692 1 view .LVU133 670 0068 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 671 .loc 1 2692 1 view .LVU134 672 .cfi_endproc 673 .LFE173: 675 .section .text.HAL_UART_MspInit,"ax",%progbits 676 .align 1 677 .weak HAL_UART_MspInit 678 .syntax unified 679 .thumb 680 .thumb_func 682 HAL_UART_MspInit: 683 .LVL40: 684 .LFB135: 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 685 .loc 1 668 1 is_stmt 1 view -0 686 .cfi_startproc 687 @ args = 0, pretend = 0, frame = 0 688 @ frame_needed = 0, uses_anonymous_args = 0 689 @ link register save eliminated. 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 690 .loc 1 670 3 view .LVU136 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 691 .loc 1 674 1 is_stmt 0 view .LVU137 692 0000 7047 bx lr ARM GAS /tmp/ccGtkZvD.s page 69 693 .cfi_endproc 694 .LFE135: 696 .section .text.HAL_UART_Init,"ax",%progbits 697 .align 1 698 .global HAL_UART_Init 699 .syntax unified 700 .thumb 701 .thumb_func 703 HAL_UART_Init: 704 .LVL41: 705 .LFB130: 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 706 .loc 1 318 1 is_stmt 1 view -0 707 .cfi_startproc 708 @ args = 0, pretend = 0, frame = 0 709 @ frame_needed = 0, uses_anonymous_args = 0 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 710 .loc 1 320 3 view .LVU139 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 711 .loc 1 320 6 is_stmt 0 view .LVU140 712 0000 58B3 cbz r0, .L35 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 713 .loc 1 318 1 view .LVU141 714 0002 10B5 push {r4, lr} 715 .LCFI2: 716 .cfi_def_cfa_offset 8 717 .cfi_offset 4, -8 718 .cfi_offset 14, -4 719 0004 0446 mov r4, r0 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 720 .loc 1 326 3 is_stmt 1 view .LVU142 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 721 .loc 1 334 5 view .LVU143 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 722 .loc 1 336 3 view .LVU144 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 723 .loc 1 337 3 view .LVU145 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 724 .loc 1 339 3 view .LVU146 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 725 .loc 1 339 12 is_stmt 0 view .LVU147 726 0006 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 727 .loc 1 339 6 view .LVU148 728 000a 0BB3 cbz r3, .L40 729 .LVL42: 730 .L34: 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 731 .loc 1 360 3 is_stmt 1 view .LVU149 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 732 .loc 1 360 17 is_stmt 0 view .LVU150 733 000c 2423 movs r3, #36 734 000e 84F83930 strb r3, [r4, #57] 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 735 .loc 1 363 3 is_stmt 1 view .LVU151 736 0012 2268 ldr r2, [r4] 737 0014 D368 ldr r3, [r2, #12] ARM GAS /tmp/ccGtkZvD.s page 70 738 0016 23F40053 bic r3, r3, #8192 739 001a D360 str r3, [r2, #12] 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 740 .loc 1 366 3 view .LVU152 741 001c 2046 mov r0, r4 742 001e FFF7FEFF bl UART_SetConfig 743 .LVL43: 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 744 .loc 1 371 3 view .LVU153 745 0022 2268 ldr r2, [r4] 746 0024 1369 ldr r3, [r2, #16] 747 0026 23F49043 bic r3, r3, #18432 748 002a 1361 str r3, [r2, #16] 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 749 .loc 1 372 3 view .LVU154 750 002c 2268 ldr r2, [r4] 751 002e 5369 ldr r3, [r2, #20] 752 0030 23F02A03 bic r3, r3, #42 753 0034 5361 str r3, [r2, #20] 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 754 .loc 1 375 3 view .LVU155 755 0036 2268 ldr r2, [r4] 756 0038 D368 ldr r3, [r2, #12] 757 003a 43F40053 orr r3, r3, #8192 758 003e D360 str r3, [r2, #12] 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 759 .loc 1 378 3 view .LVU156 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 760 .loc 1 378 20 is_stmt 0 view .LVU157 761 0040 0020 movs r0, #0 762 0042 E063 str r0, [r4, #60] 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 763 .loc 1 379 3 is_stmt 1 view .LVU158 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 764 .loc 1 379 17 is_stmt 0 view .LVU159 765 0044 2023 movs r3, #32 766 0046 84F83930 strb r3, [r4, #57] 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 767 .loc 1 380 3 is_stmt 1 view .LVU160 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 768 .loc 1 380 18 is_stmt 0 view .LVU161 769 004a 84F83A30 strb r3, [r4, #58] 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 770 .loc 1 382 3 is_stmt 1 view .LVU162 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 771 .loc 1 383 1 is_stmt 0 view .LVU163 772 004e 10BD pop {r4, pc} 773 .LVL44: 774 .L40: 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 775 .loc 1 342 5 is_stmt 1 view .LVU164 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 776 .loc 1 342 17 is_stmt 0 view .LVU165 777 0050 80F83830 strb r3, [r0, #56] 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 778 .loc 1 356 5 is_stmt 1 view .LVU166 779 0054 FFF7FEFF bl HAL_UART_MspInit ARM GAS /tmp/ccGtkZvD.s page 71 780 .LVL45: 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 781 .loc 1 356 5 is_stmt 0 view .LVU167 782 0058 D8E7 b .L34 783 .LVL46: 784 .L35: 785 .LCFI3: 786 .cfi_def_cfa_offset 0 787 .cfi_restore 4 788 .cfi_restore 14 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 789 .loc 1 322 12 view .LVU168 790 005a 0120 movs r0, #1 791 .LVL47: 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 792 .loc 1 383 1 view .LVU169 793 005c 7047 bx lr 794 .cfi_endproc 795 .LFE130: 797 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 798 .align 1 799 .global HAL_HalfDuplex_Init 800 .syntax unified 801 .thumb 802 .thumb_func 804 HAL_HalfDuplex_Init: 805 .LVL48: 806 .LFB131: 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 807 .loc 1 393 1 is_stmt 1 view -0 808 .cfi_startproc 809 @ args = 0, pretend = 0, frame = 0 810 @ frame_needed = 0, uses_anonymous_args = 0 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 811 .loc 1 395 3 view .LVU171 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 812 .loc 1 395 6 is_stmt 0 view .LVU172 813 0000 0028 cmp r0, #0 814 0002 30D0 beq .L44 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 815 .loc 1 393 1 view .LVU173 816 0004 10B5 push {r4, lr} 817 .LCFI4: 818 .cfi_def_cfa_offset 8 819 .cfi_offset 4, -8 820 .cfi_offset 14, -4 821 0006 0446 mov r4, r0 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 822 .loc 1 401 3 is_stmt 1 view .LVU174 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 823 .loc 1 402 3 view .LVU175 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 824 .loc 1 403 3 view .LVU176 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 825 .loc 1 405 3 view .LVU177 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 826 .loc 1 405 12 is_stmt 0 view .LVU178 ARM GAS /tmp/ccGtkZvD.s page 72 827 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 828 .loc 1 405 6 view .LVU179 829 000c 33B3 cbz r3, .L49 830 .LVL49: 831 .L43: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 832 .loc 1 426 3 is_stmt 1 view .LVU180 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 833 .loc 1 426 17 is_stmt 0 view .LVU181 834 000e 2423 movs r3, #36 835 0010 84F83930 strb r3, [r4, #57] 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 836 .loc 1 429 3 is_stmt 1 view .LVU182 837 0014 2268 ldr r2, [r4] 838 0016 D368 ldr r3, [r2, #12] 839 0018 23F40053 bic r3, r3, #8192 840 001c D360 str r3, [r2, #12] 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 841 .loc 1 432 3 view .LVU183 842 001e 2046 mov r0, r4 843 0020 FFF7FEFF bl UART_SetConfig 844 .LVL50: 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 845 .loc 1 437 3 view .LVU184 846 0024 2268 ldr r2, [r4] 847 0026 1369 ldr r3, [r2, #16] 848 0028 23F49043 bic r3, r3, #18432 849 002c 1361 str r3, [r2, #16] 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 850 .loc 1 438 3 view .LVU185 851 002e 2268 ldr r2, [r4] 852 0030 5369 ldr r3, [r2, #20] 853 0032 23F02203 bic r3, r3, #34 854 0036 5361 str r3, [r2, #20] 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 855 .loc 1 441 3 view .LVU186 856 0038 2268 ldr r2, [r4] 857 003a 5369 ldr r3, [r2, #20] 858 003c 43F00803 orr r3, r3, #8 859 0040 5361 str r3, [r2, #20] 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 860 .loc 1 444 3 view .LVU187 861 0042 2268 ldr r2, [r4] 862 0044 D368 ldr r3, [r2, #12] 863 0046 43F40053 orr r3, r3, #8192 864 004a D360 str r3, [r2, #12] 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 865 .loc 1 447 3 view .LVU188 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 866 .loc 1 447 20 is_stmt 0 view .LVU189 867 004c 0020 movs r0, #0 868 004e E063 str r0, [r4, #60] 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 869 .loc 1 448 3 is_stmt 1 view .LVU190 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 870 .loc 1 448 17 is_stmt 0 view .LVU191 ARM GAS /tmp/ccGtkZvD.s page 73 871 0050 2023 movs r3, #32 872 0052 84F83930 strb r3, [r4, #57] 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 873 .loc 1 449 3 is_stmt 1 view .LVU192 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 874 .loc 1 449 18 is_stmt 0 view .LVU193 875 0056 84F83A30 strb r3, [r4, #58] 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 876 .loc 1 451 3 is_stmt 1 view .LVU194 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 877 .loc 1 452 1 is_stmt 0 view .LVU195 878 005a 10BD pop {r4, pc} 879 .LVL51: 880 .L49: 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 881 .loc 1 408 5 is_stmt 1 view .LVU196 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 882 .loc 1 408 17 is_stmt 0 view .LVU197 883 005c 80F83830 strb r3, [r0, #56] 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 884 .loc 1 422 5 is_stmt 1 view .LVU198 885 0060 FFF7FEFF bl HAL_UART_MspInit 886 .LVL52: 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 887 .loc 1 422 5 is_stmt 0 view .LVU199 888 0064 D3E7 b .L43 889 .LVL53: 890 .L44: 891 .LCFI5: 892 .cfi_def_cfa_offset 0 893 .cfi_restore 4 894 .cfi_restore 14 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 895 .loc 1 397 12 view .LVU200 896 0066 0120 movs r0, #1 897 .LVL54: 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 898 .loc 1 452 1 view .LVU201 899 0068 7047 bx lr 900 .cfi_endproc 901 .LFE131: 903 .section .text.HAL_LIN_Init,"ax",%progbits 904 .align 1 905 .global HAL_LIN_Init 906 .syntax unified 907 .thumb 908 .thumb_func 910 HAL_LIN_Init: 911 .LVL55: 912 .LFB132: 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 913 .loc 1 466 1 is_stmt 1 view -0 914 .cfi_startproc 915 @ args = 0, pretend = 0, frame = 0 916 @ frame_needed = 0, uses_anonymous_args = 0 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 917 .loc 1 468 3 view .LVU203 ARM GAS /tmp/ccGtkZvD.s page 74 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 918 .loc 1 468 6 is_stmt 0 view .LVU204 919 0000 0028 cmp r0, #0 920 0002 3BD0 beq .L53 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 921 .loc 1 466 1 view .LVU205 922 0004 38B5 push {r3, r4, r5, lr} 923 .LCFI6: 924 .cfi_def_cfa_offset 16 925 .cfi_offset 3, -16 926 .cfi_offset 4, -12 927 .cfi_offset 5, -8 928 .cfi_offset 14, -4 929 0006 0D46 mov r5, r1 930 0008 0446 mov r4, r0 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 931 .loc 1 474 3 is_stmt 1 view .LVU206 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); 932 .loc 1 477 3 view .LVU207 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); 933 .loc 1 478 3 view .LVU208 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 934 .loc 1 479 3 view .LVU209 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 935 .loc 1 481 3 view .LVU210 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 936 .loc 1 481 12 is_stmt 0 view .LVU211 937 000a 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 938 .loc 1 481 6 view .LVU212 939 000e 002B cmp r3, #0 940 0010 2FD0 beq .L58 941 .LVL56: 942 .L52: 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 943 .loc 1 502 3 is_stmt 1 view .LVU213 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 944 .loc 1 502 17 is_stmt 0 view .LVU214 945 0012 2423 movs r3, #36 946 0014 84F83930 strb r3, [r4, #57] 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 947 .loc 1 505 3 is_stmt 1 view .LVU215 948 0018 2268 ldr r2, [r4] 949 001a D368 ldr r3, [r2, #12] 950 001c 23F40053 bic r3, r3, #8192 951 0020 D360 str r3, [r2, #12] 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 952 .loc 1 508 3 view .LVU216 953 0022 2046 mov r0, r4 954 0024 FFF7FEFF bl UART_SetConfig 955 .LVL57: 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 956 .loc 1 513 3 view .LVU217 957 0028 2268 ldr r2, [r4] 958 002a 1369 ldr r3, [r2, #16] 959 002c 23F40063 bic r3, r3, #2048 960 0030 1361 str r3, [r2, #16] ARM GAS /tmp/ccGtkZvD.s page 75 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 961 .loc 1 514 3 view .LVU218 962 0032 2268 ldr r2, [r4] 963 0034 5369 ldr r3, [r2, #20] 964 0036 23F02A03 bic r3, r3, #42 965 003a 5361 str r3, [r2, #20] 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 966 .loc 1 517 3 view .LVU219 967 003c 2268 ldr r2, [r4] 968 003e 1369 ldr r3, [r2, #16] 969 0040 43F48043 orr r3, r3, #16384 970 0044 1361 str r3, [r2, #16] 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 971 .loc 1 520 3 view .LVU220 972 0046 2268 ldr r2, [r4] 973 0048 1369 ldr r3, [r2, #16] 974 004a 23F02003 bic r3, r3, #32 975 004e 1361 str r3, [r2, #16] 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 976 .loc 1 521 3 view .LVU221 977 0050 2368 ldr r3, [r4] 978 0052 1969 ldr r1, [r3, #16] 979 0054 0D43 orrs r5, r5, r1 980 .LVL58: 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 981 .loc 1 521 3 is_stmt 0 view .LVU222 982 0056 1D61 str r5, [r3, #16] 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 983 .loc 1 524 3 is_stmt 1 view .LVU223 984 0058 2268 ldr r2, [r4] 985 005a D368 ldr r3, [r2, #12] 986 005c 43F40053 orr r3, r3, #8192 987 0060 D360 str r3, [r2, #12] 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 988 .loc 1 527 3 view .LVU224 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 989 .loc 1 527 20 is_stmt 0 view .LVU225 990 0062 0020 movs r0, #0 991 0064 E063 str r0, [r4, #60] 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 992 .loc 1 528 3 is_stmt 1 view .LVU226 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 993 .loc 1 528 17 is_stmt 0 view .LVU227 994 0066 2023 movs r3, #32 995 0068 84F83930 strb r3, [r4, #57] 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 996 .loc 1 529 3 is_stmt 1 view .LVU228 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 997 .loc 1 529 18 is_stmt 0 view .LVU229 998 006c 84F83A30 strb r3, [r4, #58] 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 999 .loc 1 531 3 is_stmt 1 view .LVU230 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1000 .loc 1 532 1 is_stmt 0 view .LVU231 1001 0070 38BD pop {r3, r4, r5, pc} 1002 .LVL59: 1003 .L58: ARM GAS /tmp/ccGtkZvD.s page 76 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1004 .loc 1 484 5 is_stmt 1 view .LVU232 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1005 .loc 1 484 17 is_stmt 0 view .LVU233 1006 0072 80F83830 strb r3, [r0, #56] 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1007 .loc 1 498 5 is_stmt 1 view .LVU234 1008 0076 FFF7FEFF bl HAL_UART_MspInit 1009 .LVL60: 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1010 .loc 1 498 5 is_stmt 0 view .LVU235 1011 007a CAE7 b .L52 1012 .LVL61: 1013 .L53: 1014 .LCFI7: 1015 .cfi_def_cfa_offset 0 1016 .cfi_restore 3 1017 .cfi_restore 4 1018 .cfi_restore 5 1019 .cfi_restore 14 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1020 .loc 1 470 12 view .LVU236 1021 007c 0120 movs r0, #1 1022 .LVL62: 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1023 .loc 1 532 1 view .LVU237 1024 007e 7047 bx lr 1025 .cfi_endproc 1026 .LFE132: 1028 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 1029 .align 1 1030 .global HAL_MultiProcessor_Init 1031 .syntax unified 1032 .thumb 1033 .thumb_func 1035 HAL_MultiProcessor_Init: 1036 .LVL63: 1037 .LFB133: 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1038 .loc 1 547 1 is_stmt 1 view -0 1039 .cfi_startproc 1040 @ args = 0, pretend = 0, frame = 0 1041 @ frame_needed = 0, uses_anonymous_args = 0 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1042 .loc 1 549 3 view .LVU239 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1043 .loc 1 549 6 is_stmt 0 view .LVU240 1044 0000 0028 cmp r0, #0 1045 0002 40D0 beq .L62 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1046 .loc 1 547 1 view .LVU241 1047 0004 70B5 push {r4, r5, r6, lr} 1048 .LCFI8: 1049 .cfi_def_cfa_offset 16 1050 .cfi_offset 4, -16 1051 .cfi_offset 5, -12 1052 .cfi_offset 6, -8 ARM GAS /tmp/ccGtkZvD.s page 77 1053 .cfi_offset 14, -4 1054 0006 0D46 mov r5, r1 1055 0008 1646 mov r6, r2 1056 000a 0446 mov r4, r0 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1057 .loc 1 555 3 is_stmt 1 view .LVU242 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address)); 1058 .loc 1 558 3 view .LVU243 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 1059 .loc 1 559 3 view .LVU244 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 1060 .loc 1 560 3 view .LVU245 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1061 .loc 1 561 3 view .LVU246 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1062 .loc 1 563 3 view .LVU247 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1063 .loc 1 563 12 is_stmt 0 view .LVU248 1064 000c 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1065 .loc 1 563 6 view .LVU249 1066 0010 002B cmp r3, #0 1067 0012 33D0 beq .L67 1068 .LVL64: 1069 .L61: 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1070 .loc 1 584 3 is_stmt 1 view .LVU250 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1071 .loc 1 584 17 is_stmt 0 view .LVU251 1072 0014 2423 movs r3, #36 1073 0016 84F83930 strb r3, [r4, #57] 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1074 .loc 1 587 3 is_stmt 1 view .LVU252 1075 001a 2268 ldr r2, [r4] 1076 001c D368 ldr r3, [r2, #12] 1077 001e 23F40053 bic r3, r3, #8192 1078 0022 D360 str r3, [r2, #12] 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1079 .loc 1 590 3 view .LVU253 1080 0024 2046 mov r0, r4 1081 0026 FFF7FEFF bl UART_SetConfig 1082 .LVL65: 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 1083 .loc 1 595 3 view .LVU254 1084 002a 2268 ldr r2, [r4] 1085 002c 1369 ldr r3, [r2, #16] 1086 002e 23F49043 bic r3, r3, #18432 1087 0032 1361 str r3, [r2, #16] 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1088 .loc 1 596 3 view .LVU255 1089 0034 2268 ldr r2, [r4] 1090 0036 5369 ldr r3, [r2, #20] 1091 0038 23F02A03 bic r3, r3, #42 1092 003c 5361 str r3, [r2, #20] 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 1093 .loc 1 599 3 view .LVU256 1094 003e 2268 ldr r2, [r4] ARM GAS /tmp/ccGtkZvD.s page 78 1095 0040 1369 ldr r3, [r2, #16] 1096 0042 23F00F03 bic r3, r3, #15 1097 0046 1361 str r3, [r2, #16] 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1098 .loc 1 600 3 view .LVU257 1099 0048 2368 ldr r3, [r4] 1100 004a 1969 ldr r1, [r3, #16] 1101 004c 0D43 orrs r5, r5, r1 1102 004e 1D61 str r5, [r3, #16] 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 1103 .loc 1 603 3 view .LVU258 1104 0050 2268 ldr r2, [r4] 1105 0052 D368 ldr r3, [r2, #12] 1106 0054 23F40063 bic r3, r3, #2048 1107 0058 D360 str r3, [r2, #12] 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1108 .loc 1 604 3 view .LVU259 1109 005a 2368 ldr r3, [r4] 1110 005c DA68 ldr r2, [r3, #12] 1111 005e 1643 orrs r6, r6, r2 1112 .LVL66: 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1113 .loc 1 604 3 is_stmt 0 view .LVU260 1114 0060 DE60 str r6, [r3, #12] 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1115 .loc 1 607 3 is_stmt 1 view .LVU261 1116 0062 2268 ldr r2, [r4] 1117 0064 D368 ldr r3, [r2, #12] 1118 0066 43F40053 orr r3, r3, #8192 1119 006a D360 str r3, [r2, #12] 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1120 .loc 1 610 3 view .LVU262 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1121 .loc 1 610 20 is_stmt 0 view .LVU263 1122 006c 0020 movs r0, #0 1123 006e E063 str r0, [r4, #60] 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1124 .loc 1 611 3 is_stmt 1 view .LVU264 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1125 .loc 1 611 17 is_stmt 0 view .LVU265 1126 0070 2023 movs r3, #32 1127 0072 84F83930 strb r3, [r4, #57] 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1128 .loc 1 612 3 is_stmt 1 view .LVU266 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1129 .loc 1 612 18 is_stmt 0 view .LVU267 1130 0076 84F83A30 strb r3, [r4, #58] 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1131 .loc 1 614 3 is_stmt 1 view .LVU268 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1132 .loc 1 615 1 is_stmt 0 view .LVU269 1133 007a 70BD pop {r4, r5, r6, pc} 1134 .LVL67: 1135 .L67: 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1136 .loc 1 566 5 is_stmt 1 view .LVU270 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 79 1137 .loc 1 566 17 is_stmt 0 view .LVU271 1138 007c 80F83830 strb r3, [r0, #56] 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1139 .loc 1 580 5 is_stmt 1 view .LVU272 1140 0080 FFF7FEFF bl HAL_UART_MspInit 1141 .LVL68: 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1142 .loc 1 580 5 is_stmt 0 view .LVU273 1143 0084 C6E7 b .L61 1144 .LVL69: 1145 .L62: 1146 .LCFI9: 1147 .cfi_def_cfa_offset 0 1148 .cfi_restore 4 1149 .cfi_restore 5 1150 .cfi_restore 6 1151 .cfi_restore 14 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1152 .loc 1 551 12 view .LVU274 1153 0086 0120 movs r0, #1 1154 .LVL70: 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1155 .loc 1 615 1 view .LVU275 1156 0088 7047 bx lr 1157 .cfi_endproc 1158 .LFE133: 1160 .section .text.HAL_UART_MspDeInit,"ax",%progbits 1161 .align 1 1162 .weak HAL_UART_MspDeInit 1163 .syntax unified 1164 .thumb 1165 .thumb_func 1167 HAL_UART_MspDeInit: 1168 .LVL71: 1169 .LFB136: 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 1170 .loc 1 683 1 is_stmt 1 view -0 1171 .cfi_startproc 1172 @ args = 0, pretend = 0, frame = 0 1173 @ frame_needed = 0, uses_anonymous_args = 0 1174 @ link register save eliminated. 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 1175 .loc 1 685 3 view .LVU277 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1176 .loc 1 689 1 is_stmt 0 view .LVU278 1177 0000 7047 bx lr 1178 .cfi_endproc 1179 .LFE136: 1181 .section .text.HAL_UART_DeInit,"ax",%progbits 1182 .align 1 1183 .global HAL_UART_DeInit 1184 .syntax unified 1185 .thumb 1186 .thumb_func 1188 HAL_UART_DeInit: 1189 .LVL72: 1190 .LFB134: ARM GAS /tmp/ccGtkZvD.s page 80 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1191 .loc 1 624 1 is_stmt 1 view -0 1192 .cfi_startproc 1193 @ args = 0, pretend = 0, frame = 0 1194 @ frame_needed = 0, uses_anonymous_args = 0 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1195 .loc 1 626 3 view .LVU280 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1196 .loc 1 626 6 is_stmt 0 view .LVU281 1197 0000 A0B1 cbz r0, .L71 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1198 .loc 1 624 1 view .LVU282 1199 0002 10B5 push {r4, lr} 1200 .LCFI10: 1201 .cfi_def_cfa_offset 8 1202 .cfi_offset 4, -8 1203 .cfi_offset 14, -4 1204 0004 0446 mov r4, r0 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1205 .loc 1 632 3 is_stmt 1 view .LVU283 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1206 .loc 1 634 3 view .LVU284 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1207 .loc 1 634 17 is_stmt 0 view .LVU285 1208 0006 2423 movs r3, #36 1209 0008 80F83930 strb r3, [r0, #57] 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1210 .loc 1 637 3 is_stmt 1 view .LVU286 1211 000c 0268 ldr r2, [r0] 1212 000e D368 ldr r3, [r2, #12] 1213 0010 23F40053 bic r3, r3, #8192 1214 0014 D360 str r3, [r2, #12] 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1215 .loc 1 648 3 view .LVU287 1216 0016 FFF7FEFF bl HAL_UART_MspDeInit 1217 .LVL73: 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1218 .loc 1 651 3 view .LVU288 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1219 .loc 1 651 20 is_stmt 0 view .LVU289 1220 001a 0020 movs r0, #0 1221 001c E063 str r0, [r4, #60] 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1222 .loc 1 652 3 is_stmt 1 view .LVU290 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1223 .loc 1 652 17 is_stmt 0 view .LVU291 1224 001e 84F83900 strb r0, [r4, #57] 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1225 .loc 1 653 3 is_stmt 1 view .LVU292 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1226 .loc 1 653 18 is_stmt 0 view .LVU293 1227 0022 84F83A00 strb r0, [r4, #58] 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1228 .loc 1 656 3 is_stmt 1 view .LVU294 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1229 .loc 1 656 3 view .LVU295 1230 0026 84F83800 strb r0, [r4, #56] ARM GAS /tmp/ccGtkZvD.s page 81 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1231 .loc 1 656 3 view .LVU296 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1232 .loc 1 658 3 view .LVU297 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1233 .loc 1 659 1 is_stmt 0 view .LVU298 1234 002a 10BD pop {r4, pc} 1235 .LVL74: 1236 .L71: 1237 .LCFI11: 1238 .cfi_def_cfa_offset 0 1239 .cfi_restore 4 1240 .cfi_restore 14 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1241 .loc 1 628 12 view .LVU299 1242 002c 0120 movs r0, #1 1243 .LVL75: 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1244 .loc 1 659 1 view .LVU300 1245 002e 7047 bx lr 1246 .cfi_endproc 1247 .LFE134: 1249 .section .text.HAL_UART_Transmit,"ax",%progbits 1250 .align 1 1251 .global HAL_UART_Transmit 1252 .syntax unified 1253 .thumb 1254 .thumb_func 1256 HAL_UART_Transmit: 1257 .LVL76: 1258 .LFB137: 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1259 .loc 1 1020 1 is_stmt 1 view -0 1260 .cfi_startproc 1261 @ args = 0, pretend = 0, frame = 0 1262 @ frame_needed = 0, uses_anonymous_args = 0 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1263 .loc 1 1020 1 is_stmt 0 view .LVU302 1264 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1265 .LCFI12: 1266 .cfi_def_cfa_offset 24 1267 .cfi_offset 4, -24 1268 .cfi_offset 5, -20 1269 .cfi_offset 6, -16 1270 .cfi_offset 7, -12 1271 .cfi_offset 8, -8 1272 .cfi_offset 14, -4 1273 0004 82B0 sub sp, sp, #8 1274 .LCFI13: 1275 .cfi_def_cfa_offset 32 1276 0006 1E46 mov r6, r3 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1277 .loc 1 1021 3 is_stmt 1 view .LVU303 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1278 .loc 1 1022 3 view .LVU304 1279 .LVL77: 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccGtkZvD.s page 82 1280 .loc 1 1025 3 view .LVU305 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1281 .loc 1 1025 12 is_stmt 0 view .LVU306 1282 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 1283 .LVL78: 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1284 .loc 1 1025 12 view .LVU307 1285 000c DBB2 uxtb r3, r3 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1286 .loc 1 1025 6 view .LVU308 1287 000e 202B cmp r3, #32 1288 0010 55D1 bne .L83 1289 0012 0446 mov r4, r0 1290 0014 0D46 mov r5, r1 1291 0016 9046 mov r8, r2 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1292 .loc 1 1027 5 is_stmt 1 view .LVU309 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1293 .loc 1 1027 8 is_stmt 0 view .LVU310 1294 0018 0029 cmp r1, #0 1295 001a 54D0 beq .L84 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1296 .loc 1 1027 25 discriminator 1 view .LVU311 1297 001c 002A cmp r2, #0 1298 001e 54D0 beq .L85 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1299 .loc 1 1033 5 is_stmt 1 view .LVU312 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1300 .loc 1 1033 5 view .LVU313 1301 0020 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1302 0024 012B cmp r3, #1 1303 0026 52D0 beq .L86 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1304 .loc 1 1033 5 discriminator 2 view .LVU314 1305 0028 0123 movs r3, #1 1306 002a 80F83830 strb r3, [r0, #56] 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1307 .loc 1 1033 5 discriminator 2 view .LVU315 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1308 .loc 1 1035 5 discriminator 2 view .LVU316 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1309 .loc 1 1035 22 is_stmt 0 discriminator 2 view .LVU317 1310 002e 0023 movs r3, #0 1311 0030 C363 str r3, [r0, #60] 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1312 .loc 1 1036 5 is_stmt 1 discriminator 2 view .LVU318 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1313 .loc 1 1036 19 is_stmt 0 discriminator 2 view .LVU319 1314 0032 2123 movs r3, #33 1315 0034 80F83930 strb r3, [r0, #57] 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1316 .loc 1 1039 5 is_stmt 1 discriminator 2 view .LVU320 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1317 .loc 1 1039 17 is_stmt 0 discriminator 2 view .LVU321 1318 0038 FFF7FEFF bl HAL_GetTick 1319 .LVL79: 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 83 1320 .loc 1 1039 17 discriminator 2 view .LVU322 1321 003c 0746 mov r7, r0 1322 .LVL80: 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1323 .loc 1 1041 5 is_stmt 1 discriminator 2 view .LVU323 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1324 .loc 1 1041 23 is_stmt 0 discriminator 2 view .LVU324 1325 003e A4F82480 strh r8, [r4, #36] @ movhi 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1326 .loc 1 1042 5 is_stmt 1 discriminator 2 view .LVU325 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1327 .loc 1 1042 24 is_stmt 0 discriminator 2 view .LVU326 1328 0042 A4F82680 strh r8, [r4, #38] @ movhi 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1329 .loc 1 1043 5 is_stmt 1 discriminator 2 view .LVU327 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1330 .loc 1 1043 11 is_stmt 0 discriminator 2 view .LVU328 1331 0046 10E0 b .L78 1332 .LVL81: 1333 .L92: 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1334 .loc 1 1048 9 is_stmt 1 view .LVU329 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1335 .loc 1 1048 13 is_stmt 0 view .LVU330 1336 0048 0096 str r6, [sp] 1337 004a 3B46 mov r3, r7 1338 004c 0022 movs r2, #0 1339 004e 8021 movs r1, #128 1340 0050 2046 mov r0, r4 1341 0052 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1342 .LVL82: 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1343 .loc 1 1048 12 view .LVU331 1344 0056 0028 cmp r0, #0 1345 0058 3BD1 bne .L87 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (*tmp & (uint16_t)0x01FF); 1346 .loc 1 1052 9 is_stmt 1 view .LVU332 1347 .LVL83: 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1348 .loc 1 1053 9 view .LVU333 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1349 .loc 1 1053 32 is_stmt 0 view .LVU334 1350 005a 2B88 ldrh r3, [r5] 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1351 .loc 1 1053 14 view .LVU335 1352 005c 2268 ldr r2, [r4] 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1353 .loc 1 1053 37 view .LVU336 1354 005e C3F30803 ubfx r3, r3, #0, #9 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1355 .loc 1 1053 29 view .LVU337 1356 0062 5360 str r3, [r2, #4] 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1357 .loc 1 1054 9 is_stmt 1 view .LVU338 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1358 .loc 1 1054 24 is_stmt 0 view .LVU339 1359 0064 2369 ldr r3, [r4, #16] ARM GAS /tmp/ccGtkZvD.s page 84 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1360 .loc 1 1054 12 view .LVU340 1361 0066 CBB9 cbnz r3, .L80 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1362 .loc 1 1056 11 is_stmt 1 view .LVU341 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1363 .loc 1 1056 17 is_stmt 0 view .LVU342 1364 0068 0235 adds r5, r5, #2 1365 .LVL84: 1366 .L78: 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1367 .loc 1 1043 11 is_stmt 1 view .LVU343 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1368 .loc 1 1043 17 is_stmt 0 view .LVU344 1369 006a E38C ldrh r3, [r4, #38] 1370 006c 9BB2 uxth r3, r3 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1371 .loc 1 1043 11 view .LVU345 1372 006e BBB1 cbz r3, .L91 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1373 .loc 1 1045 7 is_stmt 1 view .LVU346 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1374 .loc 1 1045 12 is_stmt 0 view .LVU347 1375 0070 E28C ldrh r2, [r4, #38] 1376 0072 92B2 uxth r2, r2 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1377 .loc 1 1045 25 view .LVU348 1378 0074 013A subs r2, r2, #1 1379 0076 92B2 uxth r2, r2 1380 0078 E284 strh r2, [r4, #38] @ movhi 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1381 .loc 1 1046 7 is_stmt 1 view .LVU349 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1382 .loc 1 1046 22 is_stmt 0 view .LVU350 1383 007a A368 ldr r3, [r4, #8] 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1384 .loc 1 1046 10 view .LVU351 1385 007c B3F5805F cmp r3, #4096 1386 0080 E2D0 beq .L92 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1387 .loc 1 1065 9 is_stmt 1 view .LVU352 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1388 .loc 1 1065 13 is_stmt 0 view .LVU353 1389 0082 0096 str r6, [sp] 1390 0084 3B46 mov r3, r7 1391 0086 0022 movs r2, #0 1392 0088 8021 movs r1, #128 1393 008a 2046 mov r0, r4 1394 008c FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1395 .LVL85: 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1396 .loc 1 1065 12 view .LVU354 1397 0090 08BB cbnz r0, .L88 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1398 .loc 1 1069 9 is_stmt 1 view .LVU355 1399 .LVL86: 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccGtkZvD.s page 85 1400 .loc 1 1069 32 is_stmt 0 view .LVU356 1401 0092 15F8012B ldrb r2, [r5], #1 @ zero_extendqisi2 1402 .LVL87: 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1403 .loc 1 1069 14 view .LVU357 1404 0096 2368 ldr r3, [r4] 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1405 .loc 1 1069 29 view .LVU358 1406 0098 5A60 str r2, [r3, #4] 1407 009a E6E7 b .L78 1408 .LVL88: 1409 .L80: 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1410 .loc 1 1060 11 is_stmt 1 view .LVU359 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1411 .loc 1 1060 17 is_stmt 0 view .LVU360 1412 009c 0135 adds r5, r5, #1 1413 .LVL89: 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1414 .loc 1 1060 17 view .LVU361 1415 009e E4E7 b .L78 1416 .LVL90: 1417 .L91: 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1418 .loc 1 1073 5 is_stmt 1 view .LVU362 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1419 .loc 1 1073 9 is_stmt 0 view .LVU363 1420 00a0 0096 str r6, [sp] 1421 00a2 3B46 mov r3, r7 1422 00a4 0022 movs r2, #0 1423 00a6 4021 movs r1, #64 1424 00a8 2046 mov r0, r4 1425 00aa FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1426 .LVL91: 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1427 .loc 1 1073 8 view .LVU364 1428 00ae A0B9 cbnz r0, .L89 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1429 .loc 1 1079 5 is_stmt 1 view .LVU365 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1430 .loc 1 1079 19 is_stmt 0 view .LVU366 1431 00b0 2023 movs r3, #32 1432 00b2 84F83930 strb r3, [r4, #57] 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1433 .loc 1 1082 5 is_stmt 1 view .LVU367 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1434 .loc 1 1082 5 view .LVU368 1435 00b6 0023 movs r3, #0 1436 00b8 84F83830 strb r3, [r4, #56] 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1437 .loc 1 1082 5 view .LVU369 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1438 .loc 1 1084 5 view .LVU370 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1439 .loc 1 1084 12 is_stmt 0 view .LVU371 1440 00bc 00E0 b .L77 1441 .LVL92: ARM GAS /tmp/ccGtkZvD.s page 86 1442 .L83: 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1443 .loc 1 1088 12 view .LVU372 1444 00be 0220 movs r0, #2 1445 .LVL93: 1446 .L77: 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1447 .loc 1 1090 1 view .LVU373 1448 00c0 02B0 add sp, sp, #8 1449 .LCFI14: 1450 .cfi_remember_state 1451 .cfi_def_cfa_offset 24 1452 @ sp needed 1453 00c2 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1454 .LVL94: 1455 .L84: 1456 .LCFI15: 1457 .cfi_restore_state 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1458 .loc 1 1029 15 view .LVU374 1459 00c6 0120 movs r0, #1 1460 .LVL95: 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1461 .loc 1 1029 15 view .LVU375 1462 00c8 FAE7 b .L77 1463 .LVL96: 1464 .L85: 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1465 .loc 1 1029 15 view .LVU376 1466 00ca 0120 movs r0, #1 1467 .LVL97: 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1468 .loc 1 1029 15 view .LVU377 1469 00cc F8E7 b .L77 1470 .LVL98: 1471 .L86: 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1472 .loc 1 1033 5 view .LVU378 1473 00ce 0220 movs r0, #2 1474 .LVL99: 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1475 .loc 1 1033 5 view .LVU379 1476 00d0 F6E7 b .L77 1477 .LVL100: 1478 .L87: 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1479 .loc 1 1050 18 view .LVU380 1480 00d2 0320 movs r0, #3 1481 00d4 F4E7 b .L77 1482 .L88: 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1483 .loc 1 1067 18 view .LVU381 1484 00d6 0320 movs r0, #3 1485 00d8 F2E7 b .L77 1486 .L89: 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1487 .loc 1 1075 14 view .LVU382 ARM GAS /tmp/ccGtkZvD.s page 87 1488 00da 0320 movs r0, #3 1489 00dc F0E7 b .L77 1490 .cfi_endproc 1491 .LFE137: 1493 .section .text.HAL_UART_Receive,"ax",%progbits 1494 .align 1 1495 .global HAL_UART_Receive 1496 .syntax unified 1497 .thumb 1498 .thumb_func 1500 HAL_UART_Receive: 1501 .LVL101: 1502 .LFB138: 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1503 .loc 1 1102 1 is_stmt 1 view -0 1504 .cfi_startproc 1505 @ args = 0, pretend = 0, frame = 0 1506 @ frame_needed = 0, uses_anonymous_args = 0 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 1507 .loc 1 1102 1 is_stmt 0 view .LVU384 1508 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1509 .LCFI16: 1510 .cfi_def_cfa_offset 24 1511 .cfi_offset 4, -24 1512 .cfi_offset 5, -20 1513 .cfi_offset 6, -16 1514 .cfi_offset 7, -12 1515 .cfi_offset 8, -8 1516 .cfi_offset 14, -4 1517 0004 82B0 sub sp, sp, #8 1518 .LCFI17: 1519 .cfi_def_cfa_offset 32 1520 0006 1E46 mov r6, r3 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1521 .loc 1 1103 3 is_stmt 1 view .LVU385 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1522 .loc 1 1104 3 view .LVU386 1523 .LVL102: 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1524 .loc 1 1107 3 view .LVU387 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1525 .loc 1 1107 12 is_stmt 0 view .LVU388 1526 0008 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 1527 .LVL103: 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1528 .loc 1 1107 12 view .LVU389 1529 000c DBB2 uxtb r3, r3 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1530 .loc 1 1107 6 view .LVU390 1531 000e 202B cmp r3, #32 1532 0010 5BD1 bne .L101 1533 0012 0446 mov r4, r0 1534 0014 0D46 mov r5, r1 1535 0016 9046 mov r8, r2 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1536 .loc 1 1109 5 is_stmt 1 view .LVU391 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccGtkZvD.s page 88 1537 .loc 1 1109 8 is_stmt 0 view .LVU392 1538 0018 0029 cmp r1, #0 1539 001a 5AD0 beq .L102 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1540 .loc 1 1109 25 discriminator 1 view .LVU393 1541 001c 002A cmp r2, #0 1542 001e 5AD0 beq .L103 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1543 .loc 1 1115 5 is_stmt 1 view .LVU394 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1544 .loc 1 1115 5 view .LVU395 1545 0020 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1546 0024 012B cmp r3, #1 1547 0026 58D0 beq .L104 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1548 .loc 1 1115 5 discriminator 2 view .LVU396 1549 0028 0123 movs r3, #1 1550 002a 80F83830 strb r3, [r0, #56] 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1551 .loc 1 1115 5 discriminator 2 view .LVU397 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1552 .loc 1 1117 5 discriminator 2 view .LVU398 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1553 .loc 1 1117 22 is_stmt 0 discriminator 2 view .LVU399 1554 002e 0023 movs r3, #0 1555 0030 C363 str r3, [r0, #60] 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1556 .loc 1 1118 5 is_stmt 1 discriminator 2 view .LVU400 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1557 .loc 1 1118 20 is_stmt 0 discriminator 2 view .LVU401 1558 0032 2223 movs r3, #34 1559 0034 80F83A30 strb r3, [r0, #58] 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1560 .loc 1 1121 5 is_stmt 1 discriminator 2 view .LVU402 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1561 .loc 1 1121 17 is_stmt 0 discriminator 2 view .LVU403 1562 0038 FFF7FEFF bl HAL_GetTick 1563 .LVL104: 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1564 .loc 1 1121 17 discriminator 2 view .LVU404 1565 003c 0746 mov r7, r0 1566 .LVL105: 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1567 .loc 1 1123 5 is_stmt 1 discriminator 2 view .LVU405 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1568 .loc 1 1123 23 is_stmt 0 discriminator 2 view .LVU406 1569 003e A4F82C80 strh r8, [r4, #44] @ movhi 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1570 .loc 1 1124 5 is_stmt 1 discriminator 2 view .LVU407 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1571 .loc 1 1124 24 is_stmt 0 discriminator 2 view .LVU408 1572 0042 A4F82E80 strh r8, [r4, #46] @ movhi 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1573 .loc 1 1127 5 is_stmt 1 discriminator 2 view .LVU409 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1574 .loc 1 1127 11 is_stmt 0 discriminator 2 view .LVU410 1575 0046 1DE0 b .L95 ARM GAS /tmp/ccGtkZvD.s page 89 1576 .LVL106: 1577 .L109: 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1578 .loc 1 1132 9 is_stmt 1 view .LVU411 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1579 .loc 1 1132 13 is_stmt 0 view .LVU412 1580 0048 0096 str r6, [sp] 1581 004a 3B46 mov r3, r7 1582 004c 0022 movs r2, #0 1583 004e 2021 movs r1, #32 1584 0050 2046 mov r0, r4 1585 0052 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1586 .LVL107: 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1587 .loc 1 1132 12 view .LVU413 1588 0056 0028 cmp r0, #0 1589 0058 41D1 bne .L105 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 1590 .loc 1 1136 9 is_stmt 1 view .LVU414 1591 .LVL108: 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1592 .loc 1 1137 9 view .LVU415 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1593 .loc 1 1137 24 is_stmt 0 view .LVU416 1594 005a 2369 ldr r3, [r4, #16] 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1595 .loc 1 1137 12 view .LVU417 1596 005c 33B9 cbnz r3, .L97 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1597 .loc 1 1139 11 is_stmt 1 view .LVU418 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1598 .loc 1 1139 34 is_stmt 0 view .LVU419 1599 005e 2368 ldr r3, [r4] 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1600 .loc 1 1139 44 view .LVU420 1601 0060 5B68 ldr r3, [r3, #4] 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1602 .loc 1 1139 18 view .LVU421 1603 0062 C3F30803 ubfx r3, r3, #0, #9 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 2U; 1604 .loc 1 1139 16 view .LVU422 1605 0066 25F8023B strh r3, [r5], #2 @ movhi 1606 .LVL109: 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1607 .loc 1 1140 11 is_stmt 1 view .LVU423 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1608 .loc 1 1140 11 is_stmt 0 view .LVU424 1609 006a 0BE0 b .L95 1610 .LVL110: 1611 .L97: 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1612 .loc 1 1144 11 is_stmt 1 view .LVU425 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1613 .loc 1 1144 34 is_stmt 0 view .LVU426 1614 006c 2368 ldr r3, [r4] 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1615 .loc 1 1144 44 view .LVU427 ARM GAS /tmp/ccGtkZvD.s page 90 1616 006e 5B68 ldr r3, [r3, #4] 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1617 .loc 1 1144 18 view .LVU428 1618 0070 DBB2 uxtb r3, r3 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pData += 1U; 1619 .loc 1 1144 16 view .LVU429 1620 0072 25F8013B strh r3, [r5], #1 @ movhi 1621 .LVL111: 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1622 .loc 1 1145 11 is_stmt 1 view .LVU430 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1623 .loc 1 1145 11 is_stmt 0 view .LVU431 1624 0076 05E0 b .L95 1625 .LVL112: 1626 .L99: 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1627 .loc 1 1161 11 is_stmt 1 view .LVU432 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1628 .loc 1 1161 37 is_stmt 0 view .LVU433 1629 0078 2368 ldr r3, [r4] 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1630 .loc 1 1161 47 view .LVU434 1631 007a 5B68 ldr r3, [r3, #4] 1632 .LVL113: 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1633 .loc 1 1161 22 view .LVU435 1634 007c 03F07F03 and r3, r3, #127 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1635 .loc 1 1161 20 view .LVU436 1636 0080 05F8013B strb r3, [r5], #1 1637 .LVL114: 1638 .L95: 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1639 .loc 1 1127 11 is_stmt 1 view .LVU437 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1640 .loc 1 1127 17 is_stmt 0 view .LVU438 1641 0084 E38D ldrh r3, [r4, #46] 1642 0086 9BB2 uxth r3, r3 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1643 .loc 1 1127 11 view .LVU439 1644 0088 C3B1 cbz r3, .L108 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1645 .loc 1 1129 7 is_stmt 1 view .LVU440 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1646 .loc 1 1129 12 is_stmt 0 view .LVU441 1647 008a E28D ldrh r2, [r4, #46] 1648 008c 92B2 uxth r2, r2 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.WordLength == UART_WORDLENGTH_9B) 1649 .loc 1 1129 25 view .LVU442 1650 008e 013A subs r2, r2, #1 1651 0090 92B2 uxth r2, r2 1652 0092 E285 strh r2, [r4, #46] @ movhi 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1653 .loc 1 1130 7 is_stmt 1 view .LVU443 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1654 .loc 1 1130 22 is_stmt 0 view .LVU444 1655 0094 A368 ldr r3, [r4, #8] ARM GAS /tmp/ccGtkZvD.s page 91 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1656 .loc 1 1130 10 view .LVU445 1657 0096 B3F5805F cmp r3, #4096 1658 009a D5D0 beq .L109 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1659 .loc 1 1151 9 is_stmt 1 view .LVU446 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1660 .loc 1 1151 13 is_stmt 0 view .LVU447 1661 009c 0096 str r6, [sp] 1662 009e 3B46 mov r3, r7 1663 00a0 0022 movs r2, #0 1664 00a2 2021 movs r1, #32 1665 00a4 2046 mov r0, r4 1666 00a6 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1667 .LVL115: 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1668 .loc 1 1151 12 view .LVU448 1669 00aa D0B9 cbnz r0, .L106 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1670 .loc 1 1155 9 is_stmt 1 view .LVU449 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1671 .loc 1 1155 24 is_stmt 0 view .LVU450 1672 00ac 2369 ldr r3, [r4, #16] 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1673 .loc 1 1155 12 view .LVU451 1674 00ae 002B cmp r3, #0 1675 00b0 E2D1 bne .L99 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1676 .loc 1 1157 11 is_stmt 1 view .LVU452 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1677 .loc 1 1157 37 is_stmt 0 view .LVU453 1678 00b2 2368 ldr r3, [r4] 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1679 .loc 1 1157 47 view .LVU454 1680 00b4 5B68 ldr r3, [r3, #4] 1681 .LVL116: 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1682 .loc 1 1157 20 view .LVU455 1683 00b6 05F8013B strb r3, [r5], #1 1684 .LVL117: 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1685 .loc 1 1157 20 view .LVU456 1686 00ba E3E7 b .L95 1687 .L108: 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1688 .loc 1 1168 5 is_stmt 1 view .LVU457 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1689 .loc 1 1168 20 is_stmt 0 view .LVU458 1690 00bc 2023 movs r3, #32 1691 00be 84F83A30 strb r3, [r4, #58] 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1692 .loc 1 1171 5 is_stmt 1 view .LVU459 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1693 .loc 1 1171 5 view .LVU460 1694 00c2 0020 movs r0, #0 1695 00c4 84F83800 strb r0, [r4, #56] 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 92 1696 .loc 1 1171 5 view .LVU461 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1697 .loc 1 1173 5 view .LVU462 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1698 .loc 1 1173 12 is_stmt 0 view .LVU463 1699 00c8 00E0 b .L94 1700 .LVL118: 1701 .L101: 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1702 .loc 1 1177 12 view .LVU464 1703 00ca 0220 movs r0, #2 1704 .LVL119: 1705 .L94: 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1706 .loc 1 1179 1 view .LVU465 1707 00cc 02B0 add sp, sp, #8 1708 .LCFI18: 1709 .cfi_remember_state 1710 .cfi_def_cfa_offset 24 1711 @ sp needed 1712 00ce BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1713 .LVL120: 1714 .L102: 1715 .LCFI19: 1716 .cfi_restore_state 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1717 .loc 1 1111 15 view .LVU466 1718 00d2 0120 movs r0, #1 1719 .LVL121: 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1720 .loc 1 1111 15 view .LVU467 1721 00d4 FAE7 b .L94 1722 .LVL122: 1723 .L103: 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1724 .loc 1 1111 15 view .LVU468 1725 00d6 0120 movs r0, #1 1726 .LVL123: 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1727 .loc 1 1111 15 view .LVU469 1728 00d8 F8E7 b .L94 1729 .LVL124: 1730 .L104: 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1731 .loc 1 1115 5 view .LVU470 1732 00da 0220 movs r0, #2 1733 .LVL125: 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1734 .loc 1 1115 5 view .LVU471 1735 00dc F6E7 b .L94 1736 .LVL126: 1737 .L105: 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1738 .loc 1 1134 18 view .LVU472 1739 00de 0320 movs r0, #3 1740 00e0 F4E7 b .L94 1741 .L106: ARM GAS /tmp/ccGtkZvD.s page 93 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1742 .loc 1 1153 18 view .LVU473 1743 00e2 0320 movs r0, #3 1744 00e4 F2E7 b .L94 1745 .cfi_endproc 1746 .LFE138: 1748 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1749 .align 1 1750 .global HAL_UART_Transmit_IT 1751 .syntax unified 1752 .thumb 1753 .thumb_func 1755 HAL_UART_Transmit_IT: 1756 .LVL127: 1757 .LFB139: 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1758 .loc 1 1190 1 is_stmt 1 view -0 1759 .cfi_startproc 1760 @ args = 0, pretend = 0, frame = 0 1761 @ frame_needed = 0, uses_anonymous_args = 0 1762 @ link register save eliminated. 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1763 .loc 1 1192 3 view .LVU475 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1764 .loc 1 1192 12 is_stmt 0 view .LVU476 1765 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 1766 0004 DBB2 uxtb r3, r3 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1767 .loc 1 1192 6 view .LVU477 1768 0006 202B cmp r3, #32 1769 0008 19D1 bne .L112 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1770 .loc 1 1194 5 is_stmt 1 view .LVU478 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1771 .loc 1 1194 8 is_stmt 0 view .LVU479 1772 000a D1B1 cbz r1, .L113 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1773 .loc 1 1194 25 discriminator 1 view .LVU480 1774 000c DAB1 cbz r2, .L114 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1775 .loc 1 1200 5 is_stmt 1 view .LVU481 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1776 .loc 1 1200 5 view .LVU482 1777 000e 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1778 0012 012B cmp r3, #1 1779 0014 19D0 beq .L115 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1780 .loc 1 1200 5 discriminator 2 view .LVU483 1781 0016 0123 movs r3, #1 1782 0018 80F83830 strb r3, [r0, #56] 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1783 .loc 1 1200 5 discriminator 2 view .LVU484 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1784 .loc 1 1202 5 discriminator 2 view .LVU485 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1785 .loc 1 1202 23 is_stmt 0 discriminator 2 view .LVU486 1786 001c 0162 str r1, [r0, #32] ARM GAS /tmp/ccGtkZvD.s page 94 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1787 .loc 1 1203 5 is_stmt 1 discriminator 2 view .LVU487 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1788 .loc 1 1203 23 is_stmt 0 discriminator 2 view .LVU488 1789 001e 8284 strh r2, [r0, #36] @ movhi 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1790 .loc 1 1204 5 is_stmt 1 discriminator 2 view .LVU489 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1791 .loc 1 1204 24 is_stmt 0 discriminator 2 view .LVU490 1792 0020 C284 strh r2, [r0, #38] @ movhi 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1793 .loc 1 1206 5 is_stmt 1 discriminator 2 view .LVU491 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1794 .loc 1 1206 22 is_stmt 0 discriminator 2 view .LVU492 1795 0022 0023 movs r3, #0 1796 0024 C363 str r3, [r0, #60] 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1797 .loc 1 1207 5 is_stmt 1 discriminator 2 view .LVU493 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1798 .loc 1 1207 19 is_stmt 0 discriminator 2 view .LVU494 1799 0026 2122 movs r2, #33 1800 .LVL128: 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1801 .loc 1 1207 19 discriminator 2 view .LVU495 1802 0028 80F83920 strb r2, [r0, #57] 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1803 .loc 1 1210 5 is_stmt 1 discriminator 2 view .LVU496 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1804 .loc 1 1210 5 discriminator 2 view .LVU497 1805 002c 80F83830 strb r3, [r0, #56] 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1806 .loc 1 1210 5 discriminator 2 view .LVU498 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1807 .loc 1 1213 5 discriminator 2 view .LVU499 1808 0030 0168 ldr r1, [r0] 1809 .LVL129: 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1810 .loc 1 1213 5 is_stmt 0 discriminator 2 view .LVU500 1811 0032 CA68 ldr r2, [r1, #12] 1812 0034 42F08002 orr r2, r2, #128 1813 0038 CA60 str r2, [r1, #12] 1814 .LVL130: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1815 .loc 1 1215 5 is_stmt 1 discriminator 2 view .LVU501 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1816 .loc 1 1215 12 is_stmt 0 discriminator 2 view .LVU502 1817 003a 1846 mov r0, r3 1818 .LVL131: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1819 .loc 1 1215 12 discriminator 2 view .LVU503 1820 003c 7047 bx lr 1821 .LVL132: 1822 .L112: 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1823 .loc 1 1219 12 view .LVU504 1824 003e 0220 movs r0, #2 1825 .LVL133: ARM GAS /tmp/ccGtkZvD.s page 95 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1826 .loc 1 1219 12 view .LVU505 1827 0040 7047 bx lr 1828 .LVL134: 1829 .L113: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1830 .loc 1 1196 14 view .LVU506 1831 0042 0120 movs r0, #1 1832 .LVL135: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1833 .loc 1 1196 14 view .LVU507 1834 0044 7047 bx lr 1835 .LVL136: 1836 .L114: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1837 .loc 1 1196 14 view .LVU508 1838 0046 0120 movs r0, #1 1839 .LVL137: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1840 .loc 1 1196 14 view .LVU509 1841 0048 7047 bx lr 1842 .LVL138: 1843 .L115: 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1844 .loc 1 1200 5 view .LVU510 1845 004a 0220 movs r0, #2 1846 .LVL139: 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1847 .loc 1 1221 1 view .LVU511 1848 004c 7047 bx lr 1849 .cfi_endproc 1850 .LFE139: 1852 .section .text.HAL_UART_Receive_IT,"ax",%progbits 1853 .align 1 1854 .global HAL_UART_Receive_IT 1855 .syntax unified 1856 .thumb 1857 .thumb_func 1859 HAL_UART_Receive_IT: 1860 .LVL140: 1861 .LFB140: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1862 .loc 1 1232 1 is_stmt 1 view -0 1863 .cfi_startproc 1864 @ args = 0, pretend = 0, frame = 0 1865 @ frame_needed = 0, uses_anonymous_args = 0 1866 @ link register save eliminated. 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1867 .loc 1 1234 3 view .LVU513 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1868 .loc 1 1234 12 is_stmt 0 view .LVU514 1869 0000 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 1870 0004 DBB2 uxtb r3, r3 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1871 .loc 1 1234 6 view .LVU515 1872 0006 202B cmp r3, #32 1873 0008 23D1 bne .L118 ARM GAS /tmp/ccGtkZvD.s page 96 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1874 .loc 1 1236 5 is_stmt 1 view .LVU516 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1875 .loc 1 1236 8 is_stmt 0 view .LVU517 1876 000a 21B3 cbz r1, .L119 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1877 .loc 1 1236 25 discriminator 1 view .LVU518 1878 000c 2AB3 cbz r2, .L120 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1879 .loc 1 1242 5 is_stmt 1 view .LVU519 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1880 .loc 1 1242 5 view .LVU520 1881 000e 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 1882 0012 012B cmp r3, #1 1883 0014 23D0 beq .L121 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1884 .loc 1 1242 5 discriminator 2 view .LVU521 1885 0016 0123 movs r3, #1 1886 0018 80F83830 strb r3, [r0, #56] 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1887 .loc 1 1242 5 discriminator 2 view .LVU522 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1888 .loc 1 1244 5 discriminator 2 view .LVU523 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1889 .loc 1 1244 23 is_stmt 0 discriminator 2 view .LVU524 1890 001c 8162 str r1, [r0, #40] 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1891 .loc 1 1245 5 is_stmt 1 discriminator 2 view .LVU525 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1892 .loc 1 1245 23 is_stmt 0 discriminator 2 view .LVU526 1893 001e 8285 strh r2, [r0, #44] @ movhi 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1894 .loc 1 1246 5 is_stmt 1 discriminator 2 view .LVU527 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1895 .loc 1 1246 24 is_stmt 0 discriminator 2 view .LVU528 1896 0020 C285 strh r2, [r0, #46] @ movhi 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1897 .loc 1 1248 5 is_stmt 1 discriminator 2 view .LVU529 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1898 .loc 1 1248 22 is_stmt 0 discriminator 2 view .LVU530 1899 0022 0023 movs r3, #0 1900 0024 C363 str r3, [r0, #60] 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1901 .loc 1 1249 5 is_stmt 1 discriminator 2 view .LVU531 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1902 .loc 1 1249 20 is_stmt 0 discriminator 2 view .LVU532 1903 0026 2222 movs r2, #34 1904 .LVL141: 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1905 .loc 1 1249 20 discriminator 2 view .LVU533 1906 0028 80F83A20 strb r2, [r0, #58] 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1907 .loc 1 1252 5 is_stmt 1 discriminator 2 view .LVU534 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1908 .loc 1 1252 5 discriminator 2 view .LVU535 1909 002c 80F83830 strb r3, [r0, #56] 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 97 1910 .loc 1 1252 5 discriminator 2 view .LVU536 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1911 .loc 1 1255 5 discriminator 2 view .LVU537 1912 0030 0168 ldr r1, [r0] 1913 .LVL142: 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1914 .loc 1 1255 5 is_stmt 0 discriminator 2 view .LVU538 1915 0032 CA68 ldr r2, [r1, #12] 1916 0034 42F48072 orr r2, r2, #256 1917 0038 CA60 str r2, [r1, #12] 1918 .LVL143: 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1919 .loc 1 1258 5 is_stmt 1 discriminator 2 view .LVU539 1920 003a 0168 ldr r1, [r0] 1921 003c 4A69 ldr r2, [r1, #20] 1922 003e 42F00102 orr r2, r2, #1 1923 0042 4A61 str r2, [r1, #20] 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1924 .loc 1 1261 5 discriminator 2 view .LVU540 1925 0044 0168 ldr r1, [r0] 1926 0046 CA68 ldr r2, [r1, #12] 1927 0048 42F02002 orr r2, r2, #32 1928 004c CA60 str r2, [r1, #12] 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1929 .loc 1 1263 5 discriminator 2 view .LVU541 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1930 .loc 1 1263 12 is_stmt 0 discriminator 2 view .LVU542 1931 004e 1846 mov r0, r3 1932 .LVL144: 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1933 .loc 1 1263 12 discriminator 2 view .LVU543 1934 0050 7047 bx lr 1935 .LVL145: 1936 .L118: 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1937 .loc 1 1267 12 view .LVU544 1938 0052 0220 movs r0, #2 1939 .LVL146: 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1940 .loc 1 1267 12 view .LVU545 1941 0054 7047 bx lr 1942 .LVL147: 1943 .L119: 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1944 .loc 1 1238 14 view .LVU546 1945 0056 0120 movs r0, #1 1946 .LVL148: 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1947 .loc 1 1238 14 view .LVU547 1948 0058 7047 bx lr 1949 .LVL149: 1950 .L120: 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1951 .loc 1 1238 14 view .LVU548 1952 005a 0120 movs r0, #1 1953 .LVL150: 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccGtkZvD.s page 98 1954 .loc 1 1238 14 view .LVU549 1955 005c 7047 bx lr 1956 .LVL151: 1957 .L121: 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1958 .loc 1 1242 5 view .LVU550 1959 005e 0220 movs r0, #2 1960 .LVL152: 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1961 .loc 1 1269 1 view .LVU551 1962 0060 7047 bx lr 1963 .cfi_endproc 1964 .LFE140: 1966 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1967 .align 1 1968 .global HAL_UART_Transmit_DMA 1969 .syntax unified 1970 .thumb 1971 .thumb_func 1973 HAL_UART_Transmit_DMA: 1974 .LVL153: 1975 .LFB141: 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1976 .loc 1 1280 1 is_stmt 1 view -0 1977 .cfi_startproc 1978 @ args = 0, pretend = 0, frame = 0 1979 @ frame_needed = 0, uses_anonymous_args = 0 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 1980 .loc 1 1280 1 is_stmt 0 view .LVU553 1981 0000 38B5 push {r3, r4, r5, lr} 1982 .LCFI20: 1983 .cfi_def_cfa_offset 16 1984 .cfi_offset 3, -16 1985 .cfi_offset 4, -12 1986 .cfi_offset 5, -8 1987 .cfi_offset 14, -4 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1988 .loc 1 1281 3 is_stmt 1 view .LVU554 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1989 .loc 1 1284 3 view .LVU555 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1990 .loc 1 1284 12 is_stmt 0 view .LVU556 1991 0002 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 1992 0006 DBB2 uxtb r3, r3 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1993 .loc 1 1284 6 view .LVU557 1994 0008 202B cmp r3, #32 1995 000a 31D1 bne .L124 1996 000c 0446 mov r4, r0 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1997 .loc 1 1286 5 is_stmt 1 view .LVU558 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1998 .loc 1 1286 8 is_stmt 0 view .LVU559 1999 000e 0029 cmp r1, #0 2000 0010 30D0 beq .L125 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2001 .loc 1 1286 25 discriminator 1 view .LVU560 ARM GAS /tmp/ccGtkZvD.s page 99 2002 0012 002A cmp r2, #0 2003 0014 30D0 beq .L126 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2004 .loc 1 1292 5 is_stmt 1 view .LVU561 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2005 .loc 1 1292 5 view .LVU562 2006 0016 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 2007 001a 012B cmp r3, #1 2008 001c 2ED0 beq .L127 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2009 .loc 1 1292 5 discriminator 2 view .LVU563 2010 001e 0123 movs r3, #1 2011 0020 80F83830 strb r3, [r0, #56] 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2012 .loc 1 1292 5 discriminator 2 view .LVU564 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 2013 .loc 1 1294 5 discriminator 2 view .LVU565 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 2014 .loc 1 1294 23 is_stmt 0 discriminator 2 view .LVU566 2015 0024 0162 str r1, [r0, #32] 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 2016 .loc 1 1295 5 is_stmt 1 discriminator 2 view .LVU567 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 2017 .loc 1 1295 23 is_stmt 0 discriminator 2 view .LVU568 2018 0026 8284 strh r2, [r0, #36] @ movhi 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2019 .loc 1 1296 5 is_stmt 1 discriminator 2 view .LVU569 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2020 .loc 1 1296 24 is_stmt 0 discriminator 2 view .LVU570 2021 0028 C284 strh r2, [r0, #38] @ movhi 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 2022 .loc 1 1298 5 is_stmt 1 discriminator 2 view .LVU571 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 2023 .loc 1 1298 22 is_stmt 0 discriminator 2 view .LVU572 2024 002a 0025 movs r5, #0 2025 002c C563 str r5, [r0, #60] 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2026 .loc 1 1299 5 is_stmt 1 discriminator 2 view .LVU573 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2027 .loc 1 1299 19 is_stmt 0 discriminator 2 view .LVU574 2028 002e 2123 movs r3, #33 2029 0030 80F83930 strb r3, [r0, #57] 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2030 .loc 1 1302 5 is_stmt 1 discriminator 2 view .LVU575 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2031 .loc 1 1302 10 is_stmt 0 discriminator 2 view .LVU576 2032 0034 036B ldr r3, [r0, #48] 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2033 .loc 1 1302 37 discriminator 2 view .LVU577 2034 0036 1248 ldr r0, .L129 2035 .LVL154: 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2036 .loc 1 1302 37 discriminator 2 view .LVU578 2037 0038 D863 str r0, [r3, #60] 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2038 .loc 1 1305 5 is_stmt 1 discriminator 2 view .LVU579 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 100 2039 .loc 1 1305 10 is_stmt 0 discriminator 2 view .LVU580 2040 003a 236B ldr r3, [r4, #48] 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2041 .loc 1 1305 41 discriminator 2 view .LVU581 2042 003c 1148 ldr r0, .L129+4 2043 003e 1864 str r0, [r3, #64] 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2044 .loc 1 1308 5 is_stmt 1 discriminator 2 view .LVU582 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2045 .loc 1 1308 10 is_stmt 0 discriminator 2 view .LVU583 2046 0040 236B ldr r3, [r4, #48] 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2047 .loc 1 1308 38 discriminator 2 view .LVU584 2048 0042 1148 ldr r0, .L129+8 2049 0044 D864 str r0, [r3, #76] 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2050 .loc 1 1311 5 is_stmt 1 discriminator 2 view .LVU585 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2051 .loc 1 1311 10 is_stmt 0 discriminator 2 view .LVU586 2052 0046 236B ldr r3, [r4, #48] 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2053 .loc 1 1311 38 discriminator 2 view .LVU587 2054 0048 1D65 str r5, [r3, #80] 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmatx, *(uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Size); 2055 .loc 1 1314 5 is_stmt 1 discriminator 2 view .LVU588 2056 .LVL155: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2057 .loc 1 1315 5 discriminator 2 view .LVU589 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2058 .loc 1 1315 71 is_stmt 0 discriminator 2 view .LVU590 2059 004a 2068 ldr r0, [r4] 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2060 .loc 1 1315 5 discriminator 2 view .LVU591 2061 004c 1346 mov r3, r2 2062 004e 021D adds r2, r0, #4 2063 .LVL156: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2064 .loc 1 1315 5 discriminator 2 view .LVU592 2065 0050 206B ldr r0, [r4, #48] 2066 0052 FFF7FEFF bl HAL_DMA_Start_IT 2067 .LVL157: 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2068 .loc 1 1318 5 is_stmt 1 discriminator 2 view .LVU593 2069 0056 2368 ldr r3, [r4] 2070 0058 6FF04002 mvn r2, #64 2071 005c 1A60 str r2, [r3] 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2072 .loc 1 1321 5 discriminator 2 view .LVU594 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2073 .loc 1 1321 5 discriminator 2 view .LVU595 2074 005e 84F83850 strb r5, [r4, #56] 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2075 .loc 1 1321 5 discriminator 2 view .LVU596 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2076 .loc 1 1325 5 discriminator 2 view .LVU597 2077 0062 2268 ldr r2, [r4] 2078 0064 5369 ldr r3, [r2, #20] ARM GAS /tmp/ccGtkZvD.s page 101 2079 0066 43F08003 orr r3, r3, #128 2080 006a 5361 str r3, [r2, #20] 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2081 .loc 1 1327 5 discriminator 2 view .LVU598 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2082 .loc 1 1327 12 is_stmt 0 discriminator 2 view .LVU599 2083 006c 2846 mov r0, r5 2084 006e 00E0 b .L123 2085 .LVL158: 2086 .L124: 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2087 .loc 1 1331 12 view .LVU600 2088 0070 0220 movs r0, #2 2089 .LVL159: 2090 .L123: 1333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2091 .loc 1 1333 1 view .LVU601 2092 0072 38BD pop {r3, r4, r5, pc} 2093 .LVL160: 2094 .L125: 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2095 .loc 1 1288 14 view .LVU602 2096 0074 0120 movs r0, #1 2097 .LVL161: 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2098 .loc 1 1288 14 view .LVU603 2099 0076 FCE7 b .L123 2100 .LVL162: 2101 .L126: 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2102 .loc 1 1288 14 view .LVU604 2103 0078 0120 movs r0, #1 2104 .LVL163: 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2105 .loc 1 1288 14 view .LVU605 2106 007a FAE7 b .L123 2107 .LVL164: 2108 .L127: 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2109 .loc 1 1292 5 view .LVU606 2110 007c 0220 movs r0, #2 2111 .LVL165: 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2112 .loc 1 1292 5 view .LVU607 2113 007e F8E7 b .L123 2114 .L130: 2115 .align 2 2116 .L129: 2117 0080 00000000 .word UART_DMATransmitCplt 2118 0084 00000000 .word UART_DMATxHalfCplt 2119 0088 00000000 .word UART_DMAError 2120 .cfi_endproc 2121 .LFE141: 2123 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 2124 .align 1 2125 .global HAL_UART_Receive_DMA 2126 .syntax unified ARM GAS /tmp/ccGtkZvD.s page 102 2127 .thumb 2128 .thumb_func 2130 HAL_UART_Receive_DMA: 2131 .LVL166: 2132 .LFB142: 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 2133 .loc 1 1345 1 is_stmt 1 view -0 2134 .cfi_startproc 2135 @ args = 0, pretend = 0, frame = 8 2136 @ frame_needed = 0, uses_anonymous_args = 0 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 2137 .loc 1 1345 1 is_stmt 0 view .LVU609 2138 0000 30B5 push {r4, r5, lr} 2139 .LCFI21: 2140 .cfi_def_cfa_offset 12 2141 .cfi_offset 4, -12 2142 .cfi_offset 5, -8 2143 .cfi_offset 14, -4 2144 0002 83B0 sub sp, sp, #12 2145 .LCFI22: 2146 .cfi_def_cfa_offset 24 2147 0004 0446 mov r4, r0 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2148 .loc 1 1346 3 is_stmt 1 view .LVU610 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2149 .loc 1 1349 3 view .LVU611 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2150 .loc 1 1349 12 is_stmt 0 view .LVU612 2151 0006 90F83A00 ldrb r0, [r0, #58] @ zero_extendqisi2 2152 .LVL167: 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2153 .loc 1 1349 12 view .LVU613 2154 000a C0B2 uxtb r0, r0 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2155 .loc 1 1349 6 view .LVU614 2156 000c 2028 cmp r0, #32 2157 000e 3CD1 bne .L133 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2158 .loc 1 1351 5 is_stmt 1 view .LVU615 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2159 .loc 1 1351 8 is_stmt 0 view .LVU616 2160 0010 0029 cmp r1, #0 2161 0012 3DD0 beq .L134 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2162 .loc 1 1351 25 discriminator 1 view .LVU617 2163 0014 002A cmp r2, #0 2164 0016 3DD0 beq .L135 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2165 .loc 1 1357 5 is_stmt 1 view .LVU618 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2166 .loc 1 1357 5 view .LVU619 2167 0018 94F83830 ldrb r3, [r4, #56] @ zero_extendqisi2 2168 001c 012B cmp r3, #1 2169 001e 3BD0 beq .L136 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2170 .loc 1 1357 5 discriminator 2 view .LVU620 2171 0020 0123 movs r3, #1 ARM GAS /tmp/ccGtkZvD.s page 103 2172 0022 84F83830 strb r3, [r4, #56] 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2173 .loc 1 1357 5 discriminator 2 view .LVU621 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 2174 .loc 1 1359 5 discriminator 2 view .LVU622 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 2175 .loc 1 1359 23 is_stmt 0 discriminator 2 view .LVU623 2176 0026 A162 str r1, [r4, #40] 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2177 .loc 1 1360 5 is_stmt 1 discriminator 2 view .LVU624 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2178 .loc 1 1360 23 is_stmt 0 discriminator 2 view .LVU625 2179 0028 A285 strh r2, [r4, #44] @ movhi 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 2180 .loc 1 1362 5 is_stmt 1 discriminator 2 view .LVU626 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 2181 .loc 1 1362 22 is_stmt 0 discriminator 2 view .LVU627 2182 002a 0025 movs r5, #0 2183 002c E563 str r5, [r4, #60] 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2184 .loc 1 1363 5 is_stmt 1 discriminator 2 view .LVU628 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2185 .loc 1 1363 20 is_stmt 0 discriminator 2 view .LVU629 2186 002e 2223 movs r3, #34 2187 0030 84F83A30 strb r3, [r4, #58] 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2188 .loc 1 1366 5 is_stmt 1 discriminator 2 view .LVU630 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2189 .loc 1 1366 10 is_stmt 0 discriminator 2 view .LVU631 2190 0034 636B ldr r3, [r4, #52] 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2191 .loc 1 1366 37 discriminator 2 view .LVU632 2192 0036 1948 ldr r0, .L138 2193 0038 D863 str r0, [r3, #60] 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2194 .loc 1 1369 5 is_stmt 1 discriminator 2 view .LVU633 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2195 .loc 1 1369 10 is_stmt 0 discriminator 2 view .LVU634 2196 003a 636B ldr r3, [r4, #52] 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2197 .loc 1 1369 41 discriminator 2 view .LVU635 2198 003c 1848 ldr r0, .L138+4 2199 003e 1864 str r0, [r3, #64] 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2200 .loc 1 1372 5 is_stmt 1 discriminator 2 view .LVU636 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2201 .loc 1 1372 10 is_stmt 0 discriminator 2 view .LVU637 2202 0040 636B ldr r3, [r4, #52] 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2203 .loc 1 1372 38 discriminator 2 view .LVU638 2204 0042 1848 ldr r0, .L138+8 2205 0044 D864 str r0, [r3, #76] 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2206 .loc 1 1375 5 is_stmt 1 discriminator 2 view .LVU639 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2207 .loc 1 1375 10 is_stmt 0 discriminator 2 view .LVU640 2208 0046 636B ldr r3, [r4, #52] ARM GAS /tmp/ccGtkZvD.s page 104 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2209 .loc 1 1375 38 discriminator 2 view .LVU641 2210 0048 1D65 str r5, [r3, #80] 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size); 2211 .loc 1 1378 5 is_stmt 1 discriminator 2 view .LVU642 2212 .LVL168: 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2213 .loc 1 1379 5 discriminator 2 view .LVU643 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2214 .loc 1 1379 53 is_stmt 0 discriminator 2 view .LVU644 2215 004a 2068 ldr r0, [r4] 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2216 .loc 1 1379 5 discriminator 2 view .LVU645 2217 004c 1346 mov r3, r2 2218 004e 0A46 mov r2, r1 2219 .LVL169: 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2220 .loc 1 1379 5 discriminator 2 view .LVU646 2221 0050 011D adds r1, r0, #4 2222 .LVL170: 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2223 .loc 1 1379 5 discriminator 2 view .LVU647 2224 0052 606B ldr r0, [r4, #52] 2225 0054 FFF7FEFF bl HAL_DMA_Start_IT 2226 .LVL171: 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2227 .loc 1 1382 5 is_stmt 1 discriminator 2 view .LVU648 2228 .LBB2: 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2229 .loc 1 1382 5 discriminator 2 view .LVU649 2230 0058 0195 str r5, [sp, #4] 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2231 .loc 1 1382 5 discriminator 2 view .LVU650 2232 005a 2368 ldr r3, [r4] 2233 005c 1A68 ldr r2, [r3] 2234 005e 0192 str r2, [sp, #4] 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2235 .loc 1 1382 5 discriminator 2 view .LVU651 2236 0060 5A68 ldr r2, [r3, #4] 2237 0062 0192 str r2, [sp, #4] 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2238 .loc 1 1382 5 discriminator 2 view .LVU652 2239 0064 019A ldr r2, [sp, #4] 2240 .LBE2: 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2241 .loc 1 1382 5 discriminator 2 view .LVU653 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2242 .loc 1 1385 5 discriminator 2 view .LVU654 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2243 .loc 1 1385 5 discriminator 2 view .LVU655 2244 0066 84F83850 strb r5, [r4, #56] 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2245 .loc 1 1385 5 discriminator 2 view .LVU656 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2246 .loc 1 1388 5 discriminator 2 view .LVU657 2247 006a DA68 ldr r2, [r3, #12] 2248 006c 42F48072 orr r2, r2, #256 ARM GAS /tmp/ccGtkZvD.s page 105 2249 0070 DA60 str r2, [r3, #12] 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2250 .loc 1 1391 5 discriminator 2 view .LVU658 2251 0072 2268 ldr r2, [r4] 2252 0074 5369 ldr r3, [r2, #20] 2253 0076 43F00103 orr r3, r3, #1 2254 007a 5361 str r3, [r2, #20] 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2255 .loc 1 1395 5 discriminator 2 view .LVU659 2256 007c 2268 ldr r2, [r4] 2257 007e 5369 ldr r3, [r2, #20] 2258 0080 43F04003 orr r3, r3, #64 2259 0084 5361 str r3, [r2, #20] 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2260 .loc 1 1397 5 discriminator 2 view .LVU660 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2261 .loc 1 1397 12 is_stmt 0 discriminator 2 view .LVU661 2262 0086 2846 mov r0, r5 2263 0088 00E0 b .L132 2264 .LVL172: 2265 .L133: 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2266 .loc 1 1401 12 view .LVU662 2267 008a 0220 movs r0, #2 2268 .LVL173: 2269 .L132: 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2270 .loc 1 1403 1 view .LVU663 2271 008c 03B0 add sp, sp, #12 2272 .LCFI23: 2273 .cfi_remember_state 2274 .cfi_def_cfa_offset 12 2275 @ sp needed 2276 008e 30BD pop {r4, r5, pc} 2277 .LVL174: 2278 .L134: 2279 .LCFI24: 2280 .cfi_restore_state 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2281 .loc 1 1353 14 view .LVU664 2282 0090 0120 movs r0, #1 2283 0092 FBE7 b .L132 2284 .L135: 2285 0094 0120 movs r0, #1 2286 0096 F9E7 b .L132 2287 .L136: 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2288 .loc 1 1357 5 view .LVU665 2289 0098 0220 movs r0, #2 2290 009a F7E7 b .L132 2291 .L139: 2292 .align 2 2293 .L138: 2294 009c 00000000 .word UART_DMAReceiveCplt 2295 00a0 00000000 .word UART_DMARxHalfCplt 2296 00a4 00000000 .word UART_DMAError 2297 .cfi_endproc ARM GAS /tmp/ccGtkZvD.s page 106 2298 .LFE142: 2300 .section .text.HAL_UART_DMAPause,"ax",%progbits 2301 .align 1 2302 .global HAL_UART_DMAPause 2303 .syntax unified 2304 .thumb 2305 .thumb_func 2307 HAL_UART_DMAPause: 2308 .LVL175: 2309 .LFB143: 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2310 .loc 1 1412 1 is_stmt 1 view -0 2311 .cfi_startproc 2312 @ args = 0, pretend = 0, frame = 0 2313 @ frame_needed = 0, uses_anonymous_args = 0 2314 @ link register save eliminated. 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2315 .loc 1 1413 3 view .LVU667 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2316 .loc 1 1416 3 view .LVU668 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2317 .loc 1 1416 3 view .LVU669 2318 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 2319 0004 012B cmp r3, #1 2320 0006 31D0 beq .L144 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2321 .loc 1 1416 3 discriminator 2 view .LVU670 2322 0008 0123 movs r3, #1 2323 000a 80F83830 strb r3, [r0, #56] 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2324 .loc 1 1416 3 discriminator 2 view .LVU671 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2325 .loc 1 1418 3 discriminator 2 view .LVU672 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2326 .loc 1 1418 16 is_stmt 0 discriminator 2 view .LVU673 2327 000e 0168 ldr r1, [r0] 2328 0010 4A69 ldr r2, [r1, #20] 2329 0012 02F08002 and r2, r2, #128 2330 .LVL176: 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2331 .loc 1 1419 3 is_stmt 1 discriminator 2 view .LVU674 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2332 .loc 1 1419 13 is_stmt 0 discriminator 2 view .LVU675 2333 0016 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 2334 001a DBB2 uxtb r3, r3 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2335 .loc 1 1419 6 discriminator 2 view .LVU676 2336 001c 212B cmp r3, #33 2337 001e 0DD0 beq .L145 2338 .L142: 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2339 .loc 1 1425 3 is_stmt 1 view .LVU677 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2340 .loc 1 1425 16 is_stmt 0 view .LVU678 2341 0020 0168 ldr r1, [r0] 2342 0022 4A69 ldr r2, [r1, #20] 2343 .LVL177: ARM GAS /tmp/ccGtkZvD.s page 107 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2344 .loc 1 1425 16 view .LVU679 2345 0024 02F04002 and r2, r2, #64 2346 .LVL178: 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2347 .loc 1 1426 3 is_stmt 1 view .LVU680 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2348 .loc 1 1426 13 is_stmt 0 view .LVU681 2349 0028 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 2350 002c DBB2 uxtb r3, r3 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2351 .loc 1 1426 6 view .LVU682 2352 002e 222B cmp r3, #34 2353 0030 0BD0 beq .L146 2354 .LVL179: 2355 .L143: 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2356 .loc 1 1437 3 is_stmt 1 view .LVU683 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2357 .loc 1 1437 3 view .LVU684 2358 0032 0023 movs r3, #0 2359 0034 80F83830 strb r3, [r0, #56] 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2360 .loc 1 1437 3 view .LVU685 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2361 .loc 1 1439 3 view .LVU686 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2362 .loc 1 1439 10 is_stmt 0 view .LVU687 2363 0038 1846 mov r0, r3 2364 .LVL180: 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2365 .loc 1 1439 10 view .LVU688 2366 003a 7047 bx lr 2367 .LVL181: 2368 .L145: 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2369 .loc 1 1419 49 discriminator 1 view .LVU689 2370 003c 002A cmp r2, #0 2371 003e EFD0 beq .L142 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2372 .loc 1 1422 5 is_stmt 1 view .LVU690 2373 0040 4B69 ldr r3, [r1, #20] 2374 0042 23F08003 bic r3, r3, #128 2375 0046 4B61 str r3, [r1, #20] 2376 0048 EAE7 b .L142 2377 .L146: 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2378 .loc 1 1426 50 is_stmt 0 discriminator 1 view .LVU691 2379 004a 002A cmp r2, #0 2380 004c F1D0 beq .L143 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2381 .loc 1 1429 5 is_stmt 1 view .LVU692 2382 004e CB68 ldr r3, [r1, #12] 2383 0050 23F48073 bic r3, r3, #256 2384 0054 CB60 str r3, [r1, #12] 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2385 .loc 1 1430 5 view .LVU693 ARM GAS /tmp/ccGtkZvD.s page 108 2386 0056 0268 ldr r2, [r0] 2387 .LVL182: 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2388 .loc 1 1430 5 is_stmt 0 view .LVU694 2389 0058 5369 ldr r3, [r2, #20] 2390 005a 23F00103 bic r3, r3, #1 2391 005e 5361 str r3, [r2, #20] 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2392 .loc 1 1433 5 is_stmt 1 view .LVU695 2393 0060 0268 ldr r2, [r0] 2394 0062 5369 ldr r3, [r2, #20] 2395 0064 23F04003 bic r3, r3, #64 2396 0068 5361 str r3, [r2, #20] 2397 006a E2E7 b .L143 2398 .LVL183: 2399 .L144: 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2400 .loc 1 1416 3 is_stmt 0 view .LVU696 2401 006c 0220 movs r0, #2 2402 .LVL184: 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2403 .loc 1 1440 1 view .LVU697 2404 006e 7047 bx lr 2405 .cfi_endproc 2406 .LFE143: 2408 .section .text.HAL_UART_DMAResume,"ax",%progbits 2409 .align 1 2410 .global HAL_UART_DMAResume 2411 .syntax unified 2412 .thumb 2413 .thumb_func 2415 HAL_UART_DMAResume: 2416 .LVL185: 2417 .LFB144: 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2418 .loc 1 1449 1 is_stmt 1 view -0 2419 .cfi_startproc 2420 @ args = 0, pretend = 0, frame = 8 2421 @ frame_needed = 0, uses_anonymous_args = 0 2422 @ link register save eliminated. 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2423 .loc 1 1451 3 view .LVU699 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2424 .loc 1 1451 3 view .LVU700 2425 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 2426 0004 012B cmp r3, #1 2427 0006 34D0 beq .L151 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2428 .loc 1 1451 3 discriminator 2 view .LVU701 2429 0008 0123 movs r3, #1 2430 000a 80F83830 strb r3, [r0, #56] 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2431 .loc 1 1451 3 discriminator 2 view .LVU702 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2432 .loc 1 1453 3 discriminator 2 view .LVU703 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2433 .loc 1 1453 12 is_stmt 0 discriminator 2 view .LVU704 ARM GAS /tmp/ccGtkZvD.s page 109 2434 000e 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 2435 0012 DBB2 uxtb r3, r3 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2436 .loc 1 1453 6 discriminator 2 view .LVU705 2437 0014 212B cmp r3, #33 2438 0016 09D0 beq .L157 2439 .L149: 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2440 .loc 1 1459 3 is_stmt 1 view .LVU706 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2441 .loc 1 1459 12 is_stmt 0 view .LVU707 2442 0018 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 2443 001c DBB2 uxtb r3, r3 1459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2444 .loc 1 1459 6 view .LVU708 2445 001e 222B cmp r3, #34 2446 0020 0AD0 beq .L158 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2447 .loc 1 1473 3 is_stmt 1 view .LVU709 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2448 .loc 1 1473 3 view .LVU710 2449 0022 0023 movs r3, #0 2450 0024 80F83830 strb r3, [r0, #56] 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2451 .loc 1 1473 3 view .LVU711 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2452 .loc 1 1475 3 view .LVU712 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2453 .loc 1 1475 10 is_stmt 0 view .LVU713 2454 0028 1846 mov r0, r3 2455 .LVL186: 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2456 .loc 1 1476 1 view .LVU714 2457 002a 7047 bx lr 2458 .LVL187: 2459 .L157: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2460 .loc 1 1456 5 is_stmt 1 view .LVU715 2461 002c 0268 ldr r2, [r0] 2462 002e 5369 ldr r3, [r2, #20] 2463 0030 43F08003 orr r3, r3, #128 2464 0034 5361 str r3, [r2, #20] 2465 0036 EFE7 b .L149 2466 .L158: 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2467 .loc 1 1449 1 is_stmt 0 view .LVU716 2468 0038 82B0 sub sp, sp, #8 2469 .LCFI25: 2470 .cfi_def_cfa_offset 8 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2471 .loc 1 1462 5 is_stmt 1 view .LVU717 2472 .LBB3: 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2473 .loc 1 1462 5 view .LVU718 2474 003a 0023 movs r3, #0 2475 003c 0193 str r3, [sp, #4] 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 110 2476 .loc 1 1462 5 view .LVU719 2477 003e 0368 ldr r3, [r0] 2478 0040 1A68 ldr r2, [r3] 2479 0042 0192 str r2, [sp, #4] 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2480 .loc 1 1462 5 view .LVU720 2481 0044 5A68 ldr r2, [r3, #4] 2482 0046 0192 str r2, [sp, #4] 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2483 .loc 1 1462 5 view .LVU721 2484 0048 019A ldr r2, [sp, #4] 2485 .LBE3: 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2486 .loc 1 1462 5 view .LVU722 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 2487 .loc 1 1465 5 view .LVU723 2488 004a DA68 ldr r2, [r3, #12] 2489 004c 42F48072 orr r2, r2, #256 2490 0050 DA60 str r2, [r3, #12] 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2491 .loc 1 1466 5 view .LVU724 2492 0052 0268 ldr r2, [r0] 2493 0054 5369 ldr r3, [r2, #20] 2494 0056 43F00103 orr r3, r3, #1 2495 005a 5361 str r3, [r2, #20] 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2496 .loc 1 1469 5 view .LVU725 2497 005c 0268 ldr r2, [r0] 2498 005e 5369 ldr r3, [r2, #20] 2499 0060 43F04003 orr r3, r3, #64 2500 0064 5361 str r3, [r2, #20] 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2501 .loc 1 1473 3 view .LVU726 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2502 .loc 1 1473 3 view .LVU727 2503 0066 0023 movs r3, #0 2504 0068 80F83830 strb r3, [r0, #56] 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2505 .loc 1 1473 3 view .LVU728 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2506 .loc 1 1475 3 view .LVU729 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2507 .loc 1 1475 10 is_stmt 0 view .LVU730 2508 006c 1846 mov r0, r3 2509 .LVL188: 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2510 .loc 1 1476 1 view .LVU731 2511 006e 02B0 add sp, sp, #8 2512 .LCFI26: 2513 .cfi_def_cfa_offset 0 2514 @ sp needed 2515 0070 7047 bx lr 2516 .LVL189: 2517 .L151: 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2518 .loc 1 1451 3 view .LVU732 2519 0072 0220 movs r0, #2 ARM GAS /tmp/ccGtkZvD.s page 111 2520 .LVL190: 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2521 .loc 1 1451 3 view .LVU733 2522 0074 7047 bx lr 2523 .cfi_endproc 2524 .LFE144: 2526 .section .text.HAL_UART_DMAStop,"ax",%progbits 2527 .align 1 2528 .global HAL_UART_DMAStop 2529 .syntax unified 2530 .thumb 2531 .thumb_func 2533 HAL_UART_DMAStop: 2534 .LVL191: 2535 .LFB145: 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2536 .loc 1 1485 1 is_stmt 1 view -0 2537 .cfi_startproc 2538 @ args = 0, pretend = 0, frame = 0 2539 @ frame_needed = 0, uses_anonymous_args = 0 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2540 .loc 1 1485 1 is_stmt 0 view .LVU735 2541 0000 10B5 push {r4, lr} 2542 .LCFI27: 2543 .cfi_def_cfa_offset 8 2544 .cfi_offset 4, -8 2545 .cfi_offset 14, -4 2546 0002 0446 mov r4, r0 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 2547 .loc 1 1486 3 is_stmt 1 view .LVU736 2548 .LVL192: 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2549 .loc 1 1494 3 view .LVU737 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2550 .loc 1 1494 16 is_stmt 0 view .LVU738 2551 0004 0168 ldr r1, [r0] 2552 0006 4A69 ldr r2, [r1, #20] 2553 .LVL193: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2554 .loc 1 1495 3 is_stmt 1 view .LVU739 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2555 .loc 1 1495 13 is_stmt 0 view .LVU740 2556 0008 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 2557 000c DBB2 uxtb r3, r3 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2558 .loc 1 1495 6 view .LVU741 2559 000e 212B cmp r3, #33 2560 0010 0AD0 beq .L165 2561 .LVL194: 2562 .L160: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2563 .loc 1 1508 3 is_stmt 1 view .LVU742 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2564 .loc 1 1508 16 is_stmt 0 view .LVU743 2565 0012 2168 ldr r1, [r4] 2566 0014 4A69 ldr r2, [r1, #20] 2567 0016 02F04002 and r2, r2, #64 ARM GAS /tmp/ccGtkZvD.s page 112 2568 .LVL195: 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2569 .loc 1 1509 3 is_stmt 1 view .LVU744 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2570 .loc 1 1509 13 is_stmt 0 view .LVU745 2571 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2 2572 001e DBB2 uxtb r3, r3 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2573 .loc 1 1509 6 view .LVU746 2574 0020 222B cmp r3, #34 2575 0022 11D0 beq .L166 2576 .LVL196: 2577 .L162: 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2578 .loc 1 1521 3 is_stmt 1 view .LVU747 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2579 .loc 1 1522 1 is_stmt 0 view .LVU748 2580 0024 0020 movs r0, #0 2581 0026 10BD pop {r4, pc} 2582 .LVL197: 2583 .L165: 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2584 .loc 1 1522 1 view .LVU749 2585 0028 02F08002 and r2, r2, #128 2586 .LVL198: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2587 .loc 1 1495 49 discriminator 1 view .LVU750 2588 002c 002A cmp r2, #0 2589 002e F0D0 beq .L160 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2590 .loc 1 1497 5 is_stmt 1 view .LVU751 2591 0030 4B69 ldr r3, [r1, #20] 2592 0032 23F08003 bic r3, r3, #128 2593 0036 4B61 str r3, [r1, #20] 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2594 .loc 1 1500 5 view .LVU752 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2595 .loc 1 1500 14 is_stmt 0 view .LVU753 2596 0038 006B ldr r0, [r0, #48] 2597 .LVL199: 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2598 .loc 1 1500 8 view .LVU754 2599 003a 08B1 cbz r0, .L161 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2600 .loc 1 1502 7 is_stmt 1 view .LVU755 2601 003c FFF7FEFF bl HAL_DMA_Abort 2602 .LVL200: 2603 .L161: 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2604 .loc 1 1504 5 view .LVU756 2605 0040 2046 mov r0, r4 2606 0042 FFF7FEFF bl UART_EndTxTransfer 2607 .LVL201: 2608 0046 E4E7 b .L160 2609 .LVL202: 2610 .L166: 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccGtkZvD.s page 113 2611 .loc 1 1509 50 is_stmt 0 discriminator 1 view .LVU757 2612 0048 002A cmp r2, #0 2613 004a EBD0 beq .L162 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2614 .loc 1 1511 5 is_stmt 1 view .LVU758 2615 004c 4B69 ldr r3, [r1, #20] 2616 004e 23F04003 bic r3, r3, #64 2617 0052 4B61 str r3, [r1, #20] 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2618 .loc 1 1514 5 view .LVU759 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2619 .loc 1 1514 14 is_stmt 0 view .LVU760 2620 0054 606B ldr r0, [r4, #52] 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2621 .loc 1 1514 8 view .LVU761 2622 0056 08B1 cbz r0, .L163 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2623 .loc 1 1516 7 is_stmt 1 view .LVU762 2624 0058 FFF7FEFF bl HAL_DMA_Abort 2625 .LVL203: 2626 .L163: 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2627 .loc 1 1518 5 view .LVU763 2628 005c 2046 mov r0, r4 2629 005e FFF7FEFF bl UART_EndRxTransfer 2630 .LVL204: 2631 0062 DFE7 b .L162 2632 .cfi_endproc 2633 .LFE145: 2635 .section .text.HAL_UART_Abort,"ax",%progbits 2636 .align 1 2637 .global HAL_UART_Abort 2638 .syntax unified 2639 .thumb 2640 .thumb_func 2642 HAL_UART_Abort: 2643 .LVL205: 2644 .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 */ 2645 .loc 1 1537 1 view -0 2646 .cfi_startproc 2647 @ args = 0, pretend = 0, frame = 0 2648 @ frame_needed = 0, uses_anonymous_args = 0 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2649 .loc 1 1537 1 is_stmt 0 view .LVU765 2650 0000 10B5 push {r4, lr} 2651 .LCFI28: 2652 .cfi_def_cfa_offset 8 2653 .cfi_offset 4, -8 2654 .cfi_offset 14, -4 2655 0002 0446 mov r4, r0 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2656 .loc 1 1539 3 is_stmt 1 view .LVU766 2657 0004 0268 ldr r2, [r0] 2658 0006 D368 ldr r3, [r2, #12] 2659 0008 23F4F073 bic r3, r3, #480 2660 000c D360 str r3, [r2, #12] ARM GAS /tmp/ccGtkZvD.s page 114 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2661 .loc 1 1540 3 view .LVU767 2662 000e 0268 ldr r2, [r0] 2663 0010 5369 ldr r3, [r2, #20] 2664 0012 23F00103 bic r3, r3, #1 2665 0016 5361 str r3, [r2, #20] 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2666 .loc 1 1543 3 view .LVU768 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2667 .loc 1 1543 7 is_stmt 0 view .LVU769 2668 0018 0368 ldr r3, [r0] 2669 001a 5A69 ldr r2, [r3, #20] 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2670 .loc 1 1543 6 view .LVU770 2671 001c 12F0800F tst r2, #128 2672 0020 0BD0 beq .L168 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2673 .loc 1 1545 5 is_stmt 1 view .LVU771 2674 0022 5A69 ldr r2, [r3, #20] 2675 0024 22F08002 bic r2, r2, #128 2676 0028 5A61 str r2, [r3, #20] 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2677 .loc 1 1548 5 view .LVU772 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2678 .loc 1 1548 14 is_stmt 0 view .LVU773 2679 002a 036B ldr r3, [r0, #48] 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2680 .loc 1 1548 8 view .LVU774 2681 002c 2BB1 cbz r3, .L168 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2682 .loc 1 1552 7 is_stmt 1 view .LVU775 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2683 .loc 1 1552 40 is_stmt 0 view .LVU776 2684 002e 0022 movs r2, #0 2685 0030 1A65 str r2, [r3, #80] 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2686 .loc 1 1554 7 is_stmt 1 view .LVU777 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2687 .loc 1 1554 11 is_stmt 0 view .LVU778 2688 0032 006B ldr r0, [r0, #48] 2689 .LVL206: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2690 .loc 1 1554 11 view .LVU779 2691 0034 FFF7FEFF bl HAL_DMA_Abort 2692 .LVL207: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2693 .loc 1 1554 10 view .LVU780 2694 0038 D0B9 cbnz r0, .L172 2695 .L168: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2696 .loc 1 1568 3 is_stmt 1 view .LVU781 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2697 .loc 1 1568 7 is_stmt 0 view .LVU782 2698 003a 2368 ldr r3, [r4] 2699 003c 5A69 ldr r2, [r3, #20] 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2700 .loc 1 1568 6 view .LVU783 ARM GAS /tmp/ccGtkZvD.s page 115 2701 003e 12F0400F tst r2, #64 2702 0042 0BD0 beq .L170 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2703 .loc 1 1570 5 is_stmt 1 view .LVU784 2704 0044 5A69 ldr r2, [r3, #20] 2705 0046 22F04002 bic r2, r2, #64 2706 004a 5A61 str r2, [r3, #20] 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2707 .loc 1 1573 5 view .LVU785 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2708 .loc 1 1573 14 is_stmt 0 view .LVU786 2709 004c 636B ldr r3, [r4, #52] 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2710 .loc 1 1573 8 view .LVU787 2711 004e 2BB1 cbz r3, .L170 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2712 .loc 1 1577 7 is_stmt 1 view .LVU788 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2713 .loc 1 1577 40 is_stmt 0 view .LVU789 2714 0050 0022 movs r2, #0 2715 0052 1A65 str r2, [r3, #80] 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2716 .loc 1 1579 7 is_stmt 1 view .LVU790 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2717 .loc 1 1579 11 is_stmt 0 view .LVU791 2718 0054 606B ldr r0, [r4, #52] 2719 0056 FFF7FEFF bl HAL_DMA_Abort 2720 .LVL208: 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2721 .loc 1 1579 10 view .LVU792 2722 005a 90B9 cbnz r0, .L173 2723 .L170: 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2724 .loc 1 1593 3 is_stmt 1 view .LVU793 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2725 .loc 1 1593 22 is_stmt 0 view .LVU794 2726 005c 0020 movs r0, #0 2727 005e E084 strh r0, [r4, #38] @ movhi 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2728 .loc 1 1594 3 is_stmt 1 view .LVU795 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2729 .loc 1 1594 22 is_stmt 0 view .LVU796 2730 0060 E085 strh r0, [r4, #46] @ movhi 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2731 .loc 1 1597 3 is_stmt 1 view .LVU797 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2732 .loc 1 1597 20 is_stmt 0 view .LVU798 2733 0062 E063 str r0, [r4, #60] 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2734 .loc 1 1600 3 is_stmt 1 view .LVU799 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2735 .loc 1 1600 18 is_stmt 0 view .LVU800 2736 0064 2023 movs r3, #32 2737 0066 84F83A30 strb r3, [r4, #58] 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2738 .loc 1 1601 3 is_stmt 1 view .LVU801 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 116 2739 .loc 1 1601 17 is_stmt 0 view .LVU802 2740 006a 84F83930 strb r3, [r4, #57] 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2741 .loc 1 1603 3 is_stmt 1 view .LVU803 2742 .L169: 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2743 .loc 1 1604 1 is_stmt 0 view .LVU804 2744 006e 10BD pop {r4, pc} 2745 .LVL209: 2746 .L172: 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2747 .loc 1 1556 9 is_stmt 1 view .LVU805 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2748 .loc 1 1556 13 is_stmt 0 view .LVU806 2749 0070 206B ldr r0, [r4, #48] 2750 0072 FFF7FEFF bl HAL_DMA_GetError 2751 .LVL210: 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2752 .loc 1 1556 12 view .LVU807 2753 0076 2028 cmp r0, #32 2754 0078 DFD1 bne .L168 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2755 .loc 1 1559 11 is_stmt 1 view .LVU808 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2756 .loc 1 1559 28 is_stmt 0 view .LVU809 2757 007a 1023 movs r3, #16 2758 007c E363 str r3, [r4, #60] 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2759 .loc 1 1561 11 is_stmt 1 view .LVU810 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2760 .loc 1 1561 18 is_stmt 0 view .LVU811 2761 007e 0320 movs r0, #3 2762 0080 F5E7 b .L169 2763 .L173: 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2764 .loc 1 1581 9 is_stmt 1 view .LVU812 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2765 .loc 1 1581 13 is_stmt 0 view .LVU813 2766 0082 606B ldr r0, [r4, #52] 2767 0084 FFF7FEFF bl HAL_DMA_GetError 2768 .LVL211: 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2769 .loc 1 1581 12 view .LVU814 2770 0088 2028 cmp r0, #32 2771 008a E7D1 bne .L170 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2772 .loc 1 1584 11 is_stmt 1 view .LVU815 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2773 .loc 1 1584 28 is_stmt 0 view .LVU816 2774 008c 1023 movs r3, #16 2775 008e E363 str r3, [r4, #60] 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2776 .loc 1 1586 11 is_stmt 1 view .LVU817 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2777 .loc 1 1586 18 is_stmt 0 view .LVU818 2778 0090 0320 movs r0, #3 2779 0092 ECE7 b .L169 ARM GAS /tmp/ccGtkZvD.s page 117 2780 .cfi_endproc 2781 .LFE146: 2783 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 2784 .align 1 2785 .global HAL_UART_AbortTransmit 2786 .syntax unified 2787 .thumb 2788 .thumb_func 2790 HAL_UART_AbortTransmit: 2791 .LVL212: 2792 .LFB147: 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2793 .loc 1 1619 1 is_stmt 1 view -0 2794 .cfi_startproc 2795 @ args = 0, pretend = 0, frame = 0 2796 @ frame_needed = 0, uses_anonymous_args = 0 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2797 .loc 1 1619 1 is_stmt 0 view .LVU820 2798 0000 10B5 push {r4, lr} 2799 .LCFI29: 2800 .cfi_def_cfa_offset 8 2801 .cfi_offset 4, -8 2802 .cfi_offset 14, -4 2803 0002 0446 mov r4, r0 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2804 .loc 1 1621 3 is_stmt 1 view .LVU821 2805 0004 0268 ldr r2, [r0] 2806 0006 D368 ldr r3, [r2, #12] 2807 0008 23F0C003 bic r3, r3, #192 2808 000c D360 str r3, [r2, #12] 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2809 .loc 1 1624 3 view .LVU822 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2810 .loc 1 1624 7 is_stmt 0 view .LVU823 2811 000e 0368 ldr r3, [r0] 2812 0010 5A69 ldr r2, [r3, #20] 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2813 .loc 1 1624 6 view .LVU824 2814 0012 12F0800F tst r2, #128 2815 0016 0BD0 beq .L175 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2816 .loc 1 1626 5 is_stmt 1 view .LVU825 2817 0018 5A69 ldr r2, [r3, #20] 2818 001a 22F08002 bic r2, r2, #128 2819 001e 5A61 str r2, [r3, #20] 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2820 .loc 1 1629 5 view .LVU826 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2821 .loc 1 1629 14 is_stmt 0 view .LVU827 2822 0020 036B ldr r3, [r0, #48] 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2823 .loc 1 1629 8 view .LVU828 2824 0022 2BB1 cbz r3, .L175 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2825 .loc 1 1633 7 is_stmt 1 view .LVU829 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2826 .loc 1 1633 40 is_stmt 0 view .LVU830 ARM GAS /tmp/ccGtkZvD.s page 118 2827 0024 0022 movs r2, #0 2828 0026 1A65 str r2, [r3, #80] 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2829 .loc 1 1635 7 is_stmt 1 view .LVU831 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2830 .loc 1 1635 11 is_stmt 0 view .LVU832 2831 0028 006B ldr r0, [r0, #48] 2832 .LVL213: 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2833 .loc 1 1635 11 view .LVU833 2834 002a FFF7FEFF bl HAL_DMA_Abort 2835 .LVL214: 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2836 .loc 1 1635 10 view .LVU834 2837 002e 28B9 cbnz r0, .L178 2838 .L175: 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2839 .loc 1 1649 3 is_stmt 1 view .LVU835 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2840 .loc 1 1649 22 is_stmt 0 view .LVU836 2841 0030 0020 movs r0, #0 2842 0032 E084 strh r0, [r4, #38] @ movhi 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2843 .loc 1 1652 3 is_stmt 1 view .LVU837 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2844 .loc 1 1652 17 is_stmt 0 view .LVU838 2845 0034 2023 movs r3, #32 2846 0036 84F83930 strb r3, [r4, #57] 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2847 .loc 1 1654 3 is_stmt 1 view .LVU839 2848 .L176: 1655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2849 .loc 1 1655 1 is_stmt 0 view .LVU840 2850 003a 10BD pop {r4, pc} 2851 .LVL215: 2852 .L178: 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2853 .loc 1 1637 9 is_stmt 1 view .LVU841 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2854 .loc 1 1637 13 is_stmt 0 view .LVU842 2855 003c 206B ldr r0, [r4, #48] 2856 003e FFF7FEFF bl HAL_DMA_GetError 2857 .LVL216: 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2858 .loc 1 1637 12 view .LVU843 2859 0042 2028 cmp r0, #32 2860 0044 F4D1 bne .L175 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2861 .loc 1 1640 11 is_stmt 1 view .LVU844 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2862 .loc 1 1640 28 is_stmt 0 view .LVU845 2863 0046 1023 movs r3, #16 2864 0048 E363 str r3, [r4, #60] 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2865 .loc 1 1642 11 is_stmt 1 view .LVU846 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2866 .loc 1 1642 18 is_stmt 0 view .LVU847 ARM GAS /tmp/ccGtkZvD.s page 119 2867 004a 0320 movs r0, #3 2868 004c F5E7 b .L176 2869 .cfi_endproc 2870 .LFE147: 2872 .section .text.HAL_UART_AbortReceive,"ax",%progbits 2873 .align 1 2874 .global HAL_UART_AbortReceive 2875 .syntax unified 2876 .thumb 2877 .thumb_func 2879 HAL_UART_AbortReceive: 2880 .LVL217: 2881 .LFB148: 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2882 .loc 1 1670 1 is_stmt 1 view -0 2883 .cfi_startproc 2884 @ args = 0, pretend = 0, frame = 0 2885 @ frame_needed = 0, uses_anonymous_args = 0 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2886 .loc 1 1670 1 is_stmt 0 view .LVU849 2887 0000 10B5 push {r4, lr} 2888 .LCFI30: 2889 .cfi_def_cfa_offset 8 2890 .cfi_offset 4, -8 2891 .cfi_offset 14, -4 2892 0002 0446 mov r4, r0 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2893 .loc 1 1672 3 is_stmt 1 view .LVU850 2894 0004 0268 ldr r2, [r0] 2895 0006 D368 ldr r3, [r2, #12] 2896 0008 23F49073 bic r3, r3, #288 2897 000c D360 str r3, [r2, #12] 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2898 .loc 1 1673 3 view .LVU851 2899 000e 0268 ldr r2, [r0] 2900 0010 5369 ldr r3, [r2, #20] 2901 0012 23F00103 bic r3, r3, #1 2902 0016 5361 str r3, [r2, #20] 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2903 .loc 1 1676 3 view .LVU852 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2904 .loc 1 1676 7 is_stmt 0 view .LVU853 2905 0018 0368 ldr r3, [r0] 2906 001a 5A69 ldr r2, [r3, #20] 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2907 .loc 1 1676 6 view .LVU854 2908 001c 12F0400F tst r2, #64 2909 0020 0BD0 beq .L180 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2910 .loc 1 1678 5 is_stmt 1 view .LVU855 2911 0022 5A69 ldr r2, [r3, #20] 2912 0024 22F04002 bic r2, r2, #64 2913 0028 5A61 str r2, [r3, #20] 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2914 .loc 1 1681 5 view .LVU856 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2915 .loc 1 1681 14 is_stmt 0 view .LVU857 ARM GAS /tmp/ccGtkZvD.s page 120 2916 002a 436B ldr r3, [r0, #52] 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2917 .loc 1 1681 8 view .LVU858 2918 002c 2BB1 cbz r3, .L180 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2919 .loc 1 1685 7 is_stmt 1 view .LVU859 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2920 .loc 1 1685 40 is_stmt 0 view .LVU860 2921 002e 0022 movs r2, #0 2922 0030 1A65 str r2, [r3, #80] 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2923 .loc 1 1687 7 is_stmt 1 view .LVU861 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2924 .loc 1 1687 11 is_stmt 0 view .LVU862 2925 0032 406B ldr r0, [r0, #52] 2926 .LVL218: 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2927 .loc 1 1687 11 view .LVU863 2928 0034 FFF7FEFF bl HAL_DMA_Abort 2929 .LVL219: 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2930 .loc 1 1687 10 view .LVU864 2931 0038 28B9 cbnz r0, .L183 2932 .L180: 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2933 .loc 1 1701 3 is_stmt 1 view .LVU865 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2934 .loc 1 1701 22 is_stmt 0 view .LVU866 2935 003a 0020 movs r0, #0 2936 003c E085 strh r0, [r4, #46] @ movhi 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2937 .loc 1 1704 3 is_stmt 1 view .LVU867 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2938 .loc 1 1704 18 is_stmt 0 view .LVU868 2939 003e 2023 movs r3, #32 2940 0040 84F83A30 strb r3, [r4, #58] 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2941 .loc 1 1706 3 is_stmt 1 view .LVU869 2942 .L181: 1707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2943 .loc 1 1707 1 is_stmt 0 view .LVU870 2944 0044 10BD pop {r4, pc} 2945 .LVL220: 2946 .L183: 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2947 .loc 1 1689 9 is_stmt 1 view .LVU871 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2948 .loc 1 1689 13 is_stmt 0 view .LVU872 2949 0046 606B ldr r0, [r4, #52] 2950 0048 FFF7FEFF bl HAL_DMA_GetError 2951 .LVL221: 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2952 .loc 1 1689 12 view .LVU873 2953 004c 2028 cmp r0, #32 2954 004e F4D1 bne .L180 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2955 .loc 1 1692 11 is_stmt 1 view .LVU874 ARM GAS /tmp/ccGtkZvD.s page 121 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2956 .loc 1 1692 28 is_stmt 0 view .LVU875 2957 0050 1023 movs r3, #16 2958 0052 E363 str r3, [r4, #60] 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2959 .loc 1 1694 11 is_stmt 1 view .LVU876 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2960 .loc 1 1694 18 is_stmt 0 view .LVU877 2961 0054 0320 movs r0, #3 2962 0056 F5E7 b .L181 2963 .cfi_endproc 2964 .LFE148: 2966 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 2967 .align 1 2968 .weak HAL_UART_TxCpltCallback 2969 .syntax unified 2970 .thumb 2971 .thumb_func 2973 HAL_UART_TxCpltCallback: 2974 .LVL222: 2975 .LFB153: 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2976 .loc 1 2145 1 is_stmt 1 view -0 2977 .cfi_startproc 2978 @ args = 0, pretend = 0, frame = 0 2979 @ frame_needed = 0, uses_anonymous_args = 0 2980 @ link register save eliminated. 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2981 .loc 1 2147 3 view .LVU879 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2982 .loc 1 2151 1 is_stmt 0 view .LVU880 2983 0000 7047 bx lr 2984 .cfi_endproc 2985 .LFE153: 2987 .section .text.UART_DMATransmitCplt,"ax",%progbits 2988 .align 1 2989 .syntax unified 2990 .thumb 2991 .thumb_func 2993 UART_DMATransmitCplt: 2994 .LVL223: 2995 .LFB168: 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 2996 .loc 1 2520 1 is_stmt 1 view -0 2997 .cfi_startproc 2998 @ args = 0, pretend = 0, frame = 0 2999 @ frame_needed = 0, uses_anonymous_args = 0 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3000 .loc 1 2520 1 is_stmt 0 view .LVU882 3001 0000 08B5 push {r3, lr} 3002 .LCFI31: 3003 .cfi_def_cfa_offset 8 3004 .cfi_offset 3, -8 3005 .cfi_offset 14, -4 3006 0002 0346 mov r3, r0 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3007 .loc 1 2521 3 is_stmt 1 view .LVU883 ARM GAS /tmp/ccGtkZvD.s page 122 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3008 .loc 1 2521 23 is_stmt 0 view .LVU884 3009 0004 806B ldr r0, [r0, #56] 3010 .LVL224: 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3011 .loc 1 2523 3 is_stmt 1 view .LVU885 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3012 .loc 1 2523 12 is_stmt 0 view .LVU886 3013 0006 1B68 ldr r3, [r3] 3014 .LVL225: 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3015 .loc 1 2523 22 view .LVU887 3016 0008 1B68 ldr r3, [r3] 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3017 .loc 1 2523 6 view .LVU888 3018 000a 13F4807F tst r3, #256 3019 000e 0CD1 bne .L186 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3020 .loc 1 2525 5 is_stmt 1 view .LVU889 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3021 .loc 1 2525 24 is_stmt 0 view .LVU890 3022 0010 0023 movs r3, #0 3023 0012 C384 strh r3, [r0, #38] @ movhi 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3024 .loc 1 2529 5 is_stmt 1 view .LVU891 3025 0014 0268 ldr r2, [r0] 3026 0016 5369 ldr r3, [r2, #20] 3027 0018 23F08003 bic r3, r3, #128 3028 001c 5361 str r3, [r2, #20] 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3029 .loc 1 2532 5 view .LVU892 3030 001e 0268 ldr r2, [r0] 3031 0020 D368 ldr r3, [r2, #12] 3032 0022 43F04003 orr r3, r3, #64 3033 0026 D360 str r3, [r2, #12] 3034 .LVL226: 3035 .L185: 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3036 .loc 1 2546 1 is_stmt 0 view .LVU893 3037 0028 08BD pop {r3, pc} 3038 .LVL227: 3039 .L186: 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3040 .loc 1 2543 5 is_stmt 1 view .LVU894 3041 002a FFF7FEFF bl HAL_UART_TxCpltCallback 3042 .LVL228: 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3043 .loc 1 2546 1 is_stmt 0 view .LVU895 3044 002e FBE7 b .L185 3045 .cfi_endproc 3046 .LFE168: 3048 .section .text.UART_EndTransmit_IT,"ax",%progbits 3049 .align 1 3050 .syntax unified 3051 .thumb 3052 .thumb_func 3054 UART_EndTransmit_IT: ARM GAS /tmp/ccGtkZvD.s page 123 3055 .LVL229: 3056 .LFB182: 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 3057 .loc 1 2945 1 is_stmt 1 view -0 3058 .cfi_startproc 3059 @ args = 0, pretend = 0, frame = 0 3060 @ frame_needed = 0, uses_anonymous_args = 0 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 3061 .loc 1 2945 1 is_stmt 0 view .LVU897 3062 0000 08B5 push {r3, lr} 3063 .LCFI32: 3064 .cfi_def_cfa_offset 8 3065 .cfi_offset 3, -8 3066 .cfi_offset 14, -4 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3067 .loc 1 2947 3 is_stmt 1 view .LVU898 3068 0002 0168 ldr r1, [r0] 3069 0004 CA68 ldr r2, [r1, #12] 3070 0006 22F04002 bic r2, r2, #64 3071 000a CA60 str r2, [r1, #12] 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3072 .loc 1 2950 3 view .LVU899 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3073 .loc 1 2950 17 is_stmt 0 view .LVU900 3074 000c 2022 movs r2, #32 3075 000e 80F83920 strb r2, [r0, #57] 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3076 .loc 1 2957 3 is_stmt 1 view .LVU901 3077 0012 FFF7FEFF bl HAL_UART_TxCpltCallback 3078 .LVL230: 2960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3079 .loc 1 2960 3 view .LVU902 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3080 .loc 1 2961 1 is_stmt 0 view .LVU903 3081 0016 0020 movs r0, #0 3082 0018 08BD pop {r3, pc} 3083 .cfi_endproc 3084 .LFE182: 3086 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 3087 .align 1 3088 .weak HAL_UART_TxHalfCpltCallback 3089 .syntax unified 3090 .thumb 3091 .thumb_func 3093 HAL_UART_TxHalfCpltCallback: 3094 .LVL231: 3095 .LFB154: 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3096 .loc 1 2160 1 is_stmt 1 view -0 3097 .cfi_startproc 3098 @ args = 0, pretend = 0, frame = 0 3099 @ frame_needed = 0, uses_anonymous_args = 0 3100 @ link register save eliminated. 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 3101 .loc 1 2162 3 view .LVU905 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3102 .loc 1 2166 1 is_stmt 0 view .LVU906 ARM GAS /tmp/ccGtkZvD.s page 124 3103 0000 7047 bx lr 3104 .cfi_endproc 3105 .LFE154: 3107 .section .text.UART_DMATxHalfCplt,"ax",%progbits 3108 .align 1 3109 .syntax unified 3110 .thumb 3111 .thumb_func 3113 UART_DMATxHalfCplt: 3114 .LVL232: 3115 .LFB169: 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3116 .loc 1 2555 1 is_stmt 1 view -0 3117 .cfi_startproc 3118 @ args = 0, pretend = 0, frame = 0 3119 @ frame_needed = 0, uses_anonymous_args = 0 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3120 .loc 1 2555 1 is_stmt 0 view .LVU908 3121 0000 08B5 push {r3, lr} 3122 .LCFI33: 3123 .cfi_def_cfa_offset 8 3124 .cfi_offset 3, -8 3125 .cfi_offset 14, -4 2556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3126 .loc 1 2556 3 is_stmt 1 view .LVU909 3127 .LVL233: 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3128 .loc 1 2563 3 view .LVU910 3129 0002 806B ldr r0, [r0, #56] 3130 .LVL234: 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3131 .loc 1 2563 3 is_stmt 0 view .LVU911 3132 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 3133 .LVL235: 2565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3134 .loc 1 2565 1 view .LVU912 3135 0008 08BD pop {r3, pc} 3136 .cfi_endproc 3137 .LFE169: 3139 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 3140 .align 1 3141 .weak HAL_UART_RxCpltCallback 3142 .syntax unified 3143 .thumb 3144 .thumb_func 3146 HAL_UART_RxCpltCallback: 3147 .LVL236: 3148 .LFB155: 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3149 .loc 1 2175 1 is_stmt 1 view -0 3150 .cfi_startproc 3151 @ args = 0, pretend = 0, frame = 0 3152 @ frame_needed = 0, uses_anonymous_args = 0 3153 @ link register save eliminated. 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 3154 .loc 1 2177 3 view .LVU914 2181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 125 3155 .loc 1 2181 1 is_stmt 0 view .LVU915 3156 0000 7047 bx lr 3157 .cfi_endproc 3158 .LFE155: 3160 .section .text.UART_DMAReceiveCplt,"ax",%progbits 3161 .align 1 3162 .syntax unified 3163 .thumb 3164 .thumb_func 3166 UART_DMAReceiveCplt: 3167 .LVL237: 3168 .LFB170: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3169 .loc 1 2574 1 is_stmt 1 view -0 3170 .cfi_startproc 3171 @ args = 0, pretend = 0, frame = 0 3172 @ frame_needed = 0, uses_anonymous_args = 0 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3173 .loc 1 2574 1 is_stmt 0 view .LVU917 3174 0000 08B5 push {r3, lr} 3175 .LCFI34: 3176 .cfi_def_cfa_offset 8 3177 .cfi_offset 3, -8 3178 .cfi_offset 14, -4 3179 0002 0346 mov r3, r0 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3180 .loc 1 2575 3 is_stmt 1 view .LVU918 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3181 .loc 1 2575 23 is_stmt 0 view .LVU919 3182 0004 806B ldr r0, [r0, #56] 3183 .LVL238: 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3184 .loc 1 2577 3 is_stmt 1 view .LVU920 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3185 .loc 1 2577 12 is_stmt 0 view .LVU921 3186 0006 1B68 ldr r3, [r3] 3187 .LVL239: 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3188 .loc 1 2577 22 view .LVU922 3189 0008 1B68 ldr r3, [r3] 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3190 .loc 1 2577 6 view .LVU923 3191 000a 13F4807F tst r3, #256 3192 000e 13D1 bne .L196 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3193 .loc 1 2579 5 is_stmt 1 view .LVU924 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3194 .loc 1 2579 24 is_stmt 0 view .LVU925 3195 0010 0023 movs r3, #0 3196 0012 C385 strh r3, [r0, #46] @ movhi 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3197 .loc 1 2582 5 is_stmt 1 view .LVU926 3198 0014 0268 ldr r2, [r0] 3199 0016 D368 ldr r3, [r2, #12] 3200 0018 23F48073 bic r3, r3, #256 3201 001c D360 str r3, [r2, #12] 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 126 3202 .loc 1 2583 5 view .LVU927 3203 001e 0268 ldr r2, [r0] 3204 0020 5369 ldr r3, [r2, #20] 3205 0022 23F00103 bic r3, r3, #1 3206 0026 5361 str r3, [r2, #20] 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3207 .loc 1 2587 5 view .LVU928 3208 0028 0268 ldr r2, [r0] 3209 002a 5369 ldr r3, [r2, #20] 3210 002c 23F04003 bic r3, r3, #64 3211 0030 5361 str r3, [r2, #20] 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3212 .loc 1 2590 5 view .LVU929 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3213 .loc 1 2590 20 is_stmt 0 view .LVU930 3214 0032 2023 movs r3, #32 3215 0034 80F83A30 strb r3, [r0, #58] 3216 .L196: 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3217 .loc 1 2597 3 is_stmt 1 view .LVU931 3218 0038 FFF7FEFF bl HAL_UART_RxCpltCallback 3219 .LVL240: 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3220 .loc 1 2599 1 is_stmt 0 view .LVU932 3221 003c 08BD pop {r3, pc} 3222 .cfi_endproc 3223 .LFE170: 3225 .section .text.UART_Receive_IT,"ax",%progbits 3226 .align 1 3227 .syntax unified 3228 .thumb 3229 .thumb_func 3231 UART_Receive_IT: 3232 .LVL241: 3233 .LFB183: 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 3234 .loc 1 2970 1 is_stmt 1 view -0 3235 .cfi_startproc 3236 @ args = 0, pretend = 0, frame = 0 3237 @ frame_needed = 0, uses_anonymous_args = 0 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *tmp; 3238 .loc 1 2970 1 is_stmt 0 view .LVU934 3239 0000 08B5 push {r3, lr} 3240 .LCFI35: 3241 .cfi_def_cfa_offset 8 3242 .cfi_offset 3, -8 3243 .cfi_offset 14, -4 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3244 .loc 1 2971 3 is_stmt 1 view .LVU935 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3245 .loc 1 2974 3 view .LVU936 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3246 .loc 1 2974 12 is_stmt 0 view .LVU937 3247 0002 90F83A30 ldrb r3, [r0, #58] @ zero_extendqisi2 3248 0006 DBB2 uxtb r3, r3 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3249 .loc 1 2974 6 view .LVU938 ARM GAS /tmp/ccGtkZvD.s page 127 3250 0008 222B cmp r3, #34 3251 000a 46D1 bne .L204 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3252 .loc 1 2976 5 is_stmt 1 view .LVU939 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3253 .loc 1 2976 20 is_stmt 0 view .LVU940 3254 000c 8368 ldr r3, [r0, #8] 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3255 .loc 1 2976 8 view .LVU941 3256 000e B3F5805F cmp r3, #4096 3257 0012 0FD0 beq .L207 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3258 .loc 1 2992 7 is_stmt 1 view .LVU942 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3259 .loc 1 2992 22 is_stmt 0 view .LVU943 3260 0014 0369 ldr r3, [r0, #16] 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3261 .loc 1 2992 10 view .LVU944 3262 0016 0BBB cbnz r3, .L203 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3263 .loc 1 2994 9 is_stmt 1 view .LVU945 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3264 .loc 1 2994 47 is_stmt 0 view .LVU946 3265 0018 0368 ldr r3, [r0] 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3266 .loc 1 2994 57 view .LVU947 3267 001a 5A68 ldr r2, [r3, #4] 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3268 .loc 1 2994 15 view .LVU948 3269 001c 836A ldr r3, [r0, #40] 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3270 .loc 1 2994 27 view .LVU949 3271 001e 591C adds r1, r3, #1 3272 0020 8162 str r1, [r0, #40] 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3273 .loc 1 2994 30 view .LVU950 3274 0022 1A70 strb r2, [r3] 3275 .L202: 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3276 .loc 1 3002 5 is_stmt 1 view .LVU951 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3277 .loc 1 3002 16 is_stmt 0 view .LVU952 3278 0024 C38D ldrh r3, [r0, #46] 3279 0026 9BB2 uxth r3, r3 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3280 .loc 1 3002 9 view .LVU953 3281 0028 013B subs r3, r3, #1 3282 002a 9BB2 uxth r3, r3 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3283 .loc 1 3002 8 view .LVU954 3284 002c C385 strh r3, [r0, #46] @ movhi 3285 002e F3B1 cbz r3, .L208 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3286 .loc 1 3026 12 view .LVU955 3287 0030 0020 movs r0, #0 3288 .LVL242: 3289 .L199: ARM GAS /tmp/ccGtkZvD.s page 128 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3290 .loc 1 3032 1 view .LVU956 3291 0032 08BD pop {r3, pc} 3292 .LVL243: 3293 .L207: 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 3294 .loc 1 2978 7 is_stmt 1 view .LVU957 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity == UART_PARITY_NONE) 3295 .loc 1 2978 11 is_stmt 0 view .LVU958 3296 0034 826A ldr r2, [r0, #40] 3297 .LVL244: 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3298 .loc 1 2979 7 is_stmt 1 view .LVU959 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3299 .loc 1 2979 22 is_stmt 0 view .LVU960 3300 0036 0369 ldr r3, [r0, #16] 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3301 .loc 1 2979 10 view .LVU961 3302 0038 43B9 cbnz r3, .L201 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3303 .loc 1 2981 9 is_stmt 1 view .LVU962 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3304 .loc 1 2981 32 is_stmt 0 view .LVU963 3305 003a 0368 ldr r3, [r0] 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3306 .loc 1 2981 42 view .LVU964 3307 003c 5B68 ldr r3, [r3, #4] 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3308 .loc 1 2981 16 view .LVU965 3309 003e C3F30803 ubfx r3, r3, #0, #9 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3310 .loc 1 2981 14 view .LVU966 3311 0042 1380 strh r3, [r2] @ movhi 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3312 .loc 1 2982 9 is_stmt 1 view .LVU967 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3313 .loc 1 2982 27 is_stmt 0 view .LVU968 3314 0044 836A ldr r3, [r0, #40] 3315 0046 0233 adds r3, r3, #2 3316 0048 8362 str r3, [r0, #40] 3317 004a EBE7 b .L202 3318 .L201: 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3319 .loc 1 2986 9 is_stmt 1 view .LVU969 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3320 .loc 1 2986 32 is_stmt 0 view .LVU970 3321 004c 0368 ldr r3, [r0] 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3322 .loc 1 2986 42 view .LVU971 3323 004e 5B68 ldr r3, [r3, #4] 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3324 .loc 1 2986 16 view .LVU972 3325 0050 DBB2 uxtb r3, r3 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3326 .loc 1 2986 14 view .LVU973 3327 0052 1380 strh r3, [r2] @ movhi 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccGtkZvD.s page 129 3328 .loc 1 2987 9 is_stmt 1 view .LVU974 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3329 .loc 1 2987 27 is_stmt 0 view .LVU975 3330 0054 836A ldr r3, [r0, #40] 3331 0056 0133 adds r3, r3, #1 3332 0058 8362 str r3, [r0, #40] 3333 005a E3E7 b .L202 3334 .LVL245: 3335 .L203: 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3336 .loc 1 2998 9 is_stmt 1 view .LVU976 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3337 .loc 1 2998 47 is_stmt 0 view .LVU977 3338 005c 0368 ldr r3, [r0] 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3339 .loc 1 2998 57 view .LVU978 3340 005e 5B68 ldr r3, [r3, #4] 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3341 .loc 1 2998 15 view .LVU979 3342 0060 826A ldr r2, [r0, #40] 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3343 .loc 1 2998 27 view .LVU980 3344 0062 511C adds r1, r2, #1 3345 0064 8162 str r1, [r0, #40] 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3346 .loc 1 2998 32 view .LVU981 3347 0066 03F07F03 and r3, r3, #127 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3348 .loc 1 2998 30 view .LVU982 3349 006a 1370 strb r3, [r2] 3350 006c DAE7 b .L202 3351 .L208: 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3352 .loc 1 3005 7 is_stmt 1 view .LVU983 3353 006e 0268 ldr r2, [r0] 3354 0070 D368 ldr r3, [r2, #12] 3355 0072 23F02003 bic r3, r3, #32 3356 0076 D360 str r3, [r2, #12] 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3357 .loc 1 3008 7 view .LVU984 3358 0078 0268 ldr r2, [r0] 3359 007a D368 ldr r3, [r2, #12] 3360 007c 23F48073 bic r3, r3, #256 3361 0080 D360 str r3, [r2, #12] 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3362 .loc 1 3011 7 view .LVU985 3363 0082 0268 ldr r2, [r0] 3364 0084 5369 ldr r3, [r2, #20] 3365 0086 23F00103 bic r3, r3, #1 3366 008a 5361 str r3, [r2, #20] 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3367 .loc 1 3014 7 view .LVU986 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3368 .loc 1 3014 22 is_stmt 0 view .LVU987 3369 008c 2023 movs r3, #32 3370 008e 80F83A30 strb r3, [r0, #58] 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/ccGtkZvD.s page 130 3371 .loc 1 3021 7 is_stmt 1 view .LVU988 3372 0092 FFF7FEFF bl HAL_UART_RxCpltCallback 3373 .LVL246: 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3374 .loc 1 3024 7 view .LVU989 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3375 .loc 1 3024 14 is_stmt 0 view .LVU990 3376 0096 0020 movs r0, #0 3377 0098 CBE7 b .L199 3378 .LVL247: 3379 .L204: 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3380 .loc 1 3030 12 view .LVU991 3381 009a 0220 movs r0, #2 3382 .LVL248: 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3383 .loc 1 3030 12 view .LVU992 3384 009c C9E7 b .L199 3385 .cfi_endproc 3386 .LFE183: 3388 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits 3389 .align 1 3390 .weak HAL_UART_RxHalfCpltCallback 3391 .syntax unified 3392 .thumb 3393 .thumb_func 3395 HAL_UART_RxHalfCpltCallback: 3396 .LVL249: 3397 .LFB156: 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3398 .loc 1 2190 1 is_stmt 1 view -0 3399 .cfi_startproc 3400 @ args = 0, pretend = 0, frame = 0 3401 @ frame_needed = 0, uses_anonymous_args = 0 3402 @ link register save eliminated. 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 3403 .loc 1 2192 3 view .LVU994 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3404 .loc 1 2196 1 is_stmt 0 view .LVU995 3405 0000 7047 bx lr 3406 .cfi_endproc 3407 .LFE156: 3409 .section .text.UART_DMARxHalfCplt,"ax",%progbits 3410 .align 1 3411 .syntax unified 3412 .thumb 3413 .thumb_func 3415 UART_DMARxHalfCplt: 3416 .LVL250: 3417 .LFB171: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3418 .loc 1 2608 1 is_stmt 1 view -0 3419 .cfi_startproc 3420 @ args = 0, pretend = 0, frame = 0 3421 @ frame_needed = 0, uses_anonymous_args = 0 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3422 .loc 1 2608 1 is_stmt 0 view .LVU997 ARM GAS /tmp/ccGtkZvD.s page 131 3423 0000 08B5 push {r3, lr} 3424 .LCFI36: 3425 .cfi_def_cfa_offset 8 3426 .cfi_offset 3, -8 3427 .cfi_offset 14, -4 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3428 .loc 1 2609 3 is_stmt 1 view .LVU998 3429 .LVL251: 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3430 .loc 1 2616 3 view .LVU999 3431 0002 806B ldr r0, [r0, #56] 3432 .LVL252: 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3433 .loc 1 2616 3 is_stmt 0 view .LVU1000 3434 0004 FFF7FEFF bl HAL_UART_RxHalfCpltCallback 3435 .LVL253: 2618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3436 .loc 1 2618 1 view .LVU1001 3437 0008 08BD pop {r3, pc} 3438 .cfi_endproc 3439 .LFE171: 3441 .section .text.HAL_UART_ErrorCallback,"ax",%progbits 3442 .align 1 3443 .weak HAL_UART_ErrorCallback 3444 .syntax unified 3445 .thumb 3446 .thumb_func 3448 HAL_UART_ErrorCallback: 3449 .LVL254: 3450 .LFB157: 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3451 .loc 1 2205 1 is_stmt 1 view -0 3452 .cfi_startproc 3453 @ args = 0, pretend = 0, frame = 0 3454 @ frame_needed = 0, uses_anonymous_args = 0 3455 @ link register save eliminated. 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 3456 .loc 1 2207 3 view .LVU1003 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3457 .loc 1 2211 1 is_stmt 0 view .LVU1004 3458 0000 7047 bx lr 3459 .cfi_endproc 3460 .LFE157: 3462 .section .text.UART_DMAError,"ax",%progbits 3463 .align 1 3464 .syntax unified 3465 .thumb 3466 .thumb_func 3468 UART_DMAError: 3469 .LVL255: 3470 .LFB172: 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 3471 .loc 1 2627 1 is_stmt 1 view -0 3472 .cfi_startproc 3473 @ args = 0, pretend = 0, frame = 0 3474 @ frame_needed = 0, uses_anonymous_args = 0 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; ARM GAS /tmp/ccGtkZvD.s page 132 3475 .loc 1 2627 1 is_stmt 0 view .LVU1006 3476 0000 10B5 push {r4, lr} 3477 .LCFI37: 3478 .cfi_def_cfa_offset 8 3479 .cfi_offset 4, -8 3480 .cfi_offset 14, -4 2628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3481 .loc 1 2628 3 is_stmt 1 view .LVU1007 3482 .LVL256: 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3483 .loc 1 2629 3 view .LVU1008 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3484 .loc 1 2629 23 is_stmt 0 view .LVU1009 3485 0002 846B ldr r4, [r0, #56] 3486 .LVL257: 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 3487 .loc 1 2632 3 is_stmt 1 view .LVU1010 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 3488 .loc 1 2632 16 is_stmt 0 view .LVU1011 3489 0004 2368 ldr r3, [r4] 3490 0006 5A69 ldr r2, [r3, #20] 3491 .LVL258: 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3492 .loc 1 2633 3 is_stmt 1 view .LVU1012 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3493 .loc 1 2633 13 is_stmt 0 view .LVU1013 3494 0008 94F83930 ldrb r3, [r4, #57] @ zero_extendqisi2 3495 000c DBB2 uxtb r3, r3 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3496 .loc 1 2633 6 view .LVU1014 3497 000e 212B cmp r3, #33 3498 0010 10D0 beq .L217 3499 .LVL259: 3500 .L214: 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 3501 .loc 1 2640 3 is_stmt 1 view .LVU1015 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 3502 .loc 1 2640 16 is_stmt 0 view .LVU1016 3503 0012 2368 ldr r3, [r4] 3504 0014 5A69 ldr r2, [r3, #20] 3505 0016 02F04002 and r2, r2, #64 3506 .LVL260: 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3507 .loc 1 2641 3 is_stmt 1 view .LVU1017 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3508 .loc 1 2641 13 is_stmt 0 view .LVU1018 3509 001a 94F83A30 ldrb r3, [r4, #58] @ zero_extendqisi2 3510 001e DBB2 uxtb r3, r3 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3511 .loc 1 2641 6 view .LVU1019 3512 0020 222B cmp r3, #34 3513 0022 11D0 beq .L218 3514 .LVL261: 3515 .L215: 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3516 .loc 1 2647 3 is_stmt 1 view .LVU1020 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccGtkZvD.s page 133 3517 .loc 1 2647 20 is_stmt 0 view .LVU1021 3518 0024 E36B ldr r3, [r4, #60] 3519 0026 43F01003 orr r3, r3, #16 3520 002a E363 str r3, [r4, #60] 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3521 .loc 1 2653 3 is_stmt 1 view .LVU1022 3522 002c 2046 mov r0, r4 3523 002e FFF7FEFF bl HAL_UART_ErrorCallback 3524 .LVL262: 2655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3525 .loc 1 2655 1 is_stmt 0 view .LVU1023 3526 0032 10BD pop {r4, pc} 3527 .LVL263: 3528 .L217: 2655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3529 .loc 1 2655 1 view .LVU1024 3530 0034 02F08002 and r2, r2, #128 3531 .LVL264: 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3532 .loc 1 2633 49 discriminator 1 view .LVU1025 3533 0038 002A cmp r2, #0 3534 003a EAD0 beq .L214 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 3535 .loc 1 2635 5 is_stmt 1 view .LVU1026 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 3536 .loc 1 2635 24 is_stmt 0 view .LVU1027 3537 003c 0023 movs r3, #0 3538 003e E384 strh r3, [r4, #38] @ movhi 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3539 .loc 1 2636 5 is_stmt 1 view .LVU1028 3540 0040 2046 mov r0, r4 3541 .LVL265: 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3542 .loc 1 2636 5 is_stmt 0 view .LVU1029 3543 0042 FFF7FEFF bl UART_EndTxTransfer 3544 .LVL266: 3545 0046 E4E7 b .L214 3546 .LVL267: 3547 .L218: 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3548 .loc 1 2641 50 discriminator 1 view .LVU1030 3549 0048 002A cmp r2, #0 3550 004a EBD0 beq .L215 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3551 .loc 1 2643 5 is_stmt 1 view .LVU1031 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3552 .loc 1 2643 24 is_stmt 0 view .LVU1032 3553 004c 0023 movs r3, #0 3554 004e E385 strh r3, [r4, #46] @ movhi 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3555 .loc 1 2644 5 is_stmt 1 view .LVU1033 3556 0050 2046 mov r0, r4 3557 0052 FFF7FEFF bl UART_EndRxTransfer 3558 .LVL268: 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3559 .loc 1 2644 5 is_stmt 0 view .LVU1034 3560 0056 E5E7 b .L215 ARM GAS /tmp/ccGtkZvD.s page 134 3561 .cfi_endproc 3562 .LFE172: 3564 .section .text.HAL_UART_IRQHandler,"ax",%progbits 3565 .align 1 3566 .global HAL_UART_IRQHandler 3567 .syntax unified 3568 .thumb 3569 .thumb_func 3571 HAL_UART_IRQHandler: 3572 .LVL269: 3573 .LFB152: 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 3574 .loc 1 1999 1 is_stmt 1 view -0 3575 .cfi_startproc 3576 @ args = 0, pretend = 0, frame = 0 3577 @ frame_needed = 0, uses_anonymous_args = 0 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 3578 .loc 1 1999 1 is_stmt 0 view .LVU1036 3579 0000 10B5 push {r4, lr} 3580 .LCFI38: 3581 .cfi_def_cfa_offset 8 3582 .cfi_offset 4, -8 3583 .cfi_offset 14, -4 3584 0002 0446 mov r4, r0 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 3585 .loc 1 2000 3 is_stmt 1 view .LVU1037 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 3586 .loc 1 2000 25 is_stmt 0 view .LVU1038 3587 0004 0268 ldr r2, [r0] 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 3588 .loc 1 2000 12 view .LVU1039 3589 0006 1368 ldr r3, [r2] 3590 .LVL270: 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 3591 .loc 1 2001 3 is_stmt 1 view .LVU1040 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 3592 .loc 1 2001 12 is_stmt 0 view .LVU1041 3593 0008 D168 ldr r1, [r2, #12] 3594 .LVL271: 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 3595 .loc 1 2002 3 is_stmt 1 view .LVU1042 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 3596 .loc 1 2002 12 is_stmt 0 view .LVU1043 3597 000a 5269 ldr r2, [r2, #20] 3598 .LVL272: 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 3599 .loc 1 2003 3 is_stmt 1 view .LVU1044 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3600 .loc 1 2004 3 view .LVU1045 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 3601 .loc 1 2007 3 view .LVU1046 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3602 .loc 1 2008 3 view .LVU1047 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3603 .loc 1 2008 6 is_stmt 0 view .LVU1048 3604 000c 13F00F00 ands r0, r3, #15 3605 .LVL273: ARM GAS /tmp/ccGtkZvD.s page 135 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3606 .loc 1 2008 6 view .LVU1049 3607 0010 05D1 bne .L220 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3608 .loc 1 2011 5 is_stmt 1 view .LVU1050 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3609 .loc 1 2011 8 is_stmt 0 view .LVU1051 3610 0012 13F0200F tst r3, #32 3611 0016 02D0 beq .L220 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3612 .loc 1 2011 47 discriminator 1 view .LVU1052 3613 0018 11F0200F tst r1, #32 3614 001c 13D1 bne .L236 3615 .L220: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3616 .loc 1 2019 3 is_stmt 1 view .LVU1053 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3617 .loc 1 2019 6 is_stmt 0 view .LVU1054 3618 001e 28B1 cbz r0, .L222 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3619 .loc 1 2019 29 discriminator 1 view .LVU1055 3620 0020 12F00102 ands r2, r2, #1 3621 .LVL274: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3622 .loc 1 2019 29 discriminator 1 view .LVU1056 3623 0024 13D1 bne .L223 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3624 .loc 1 2019 69 discriminator 2 view .LVU1057 3625 0026 11F4907F tst r1, #288 3626 002a 10D1 bne .L223 3627 .L222: 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3628 .loc 1 2124 3 is_stmt 1 view .LVU1058 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3629 .loc 1 2124 6 is_stmt 0 view .LVU1059 3630 002c 13F0800F tst r3, #128 3631 0030 02D0 beq .L234 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3632 .loc 1 2124 44 discriminator 1 view .LVU1060 3633 0032 11F0800F tst r1, #128 3634 0036 69D1 bne .L237 3635 .L234: 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3636 .loc 1 2131 3 is_stmt 1 view .LVU1061 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3637 .loc 1 2131 6 is_stmt 0 view .LVU1062 3638 0038 13F0400F tst r3, #64 3639 003c 02D0 beq .L219 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3640 .loc 1 2131 43 discriminator 1 view .LVU1063 3641 003e 11F0400F tst r1, #64 3642 0042 67D1 bne .L238 3643 .LVL275: 3644 .L219: 2136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3645 .loc 1 2136 1 view .LVU1064 3646 0044 10BD pop {r4, pc} ARM GAS /tmp/ccGtkZvD.s page 136 3647 .LVL276: 3648 .L236: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3649 .loc 1 2013 7 is_stmt 1 view .LVU1065 3650 0046 2046 mov r0, r4 3651 .LVL277: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3652 .loc 1 2013 7 is_stmt 0 view .LVU1066 3653 0048 FFF7FEFF bl UART_Receive_IT 3654 .LVL278: 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3655 .loc 1 2014 7 is_stmt 1 view .LVU1067 3656 004c FAE7 b .L219 3657 .LVL279: 3658 .L223: 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3659 .loc 1 2022 5 view .LVU1068 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3660 .loc 1 2022 8 is_stmt 0 view .LVU1069 3661 004e 13F0010F tst r3, #1 3662 0052 06D0 beq .L224 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3663 .loc 1 2022 45 discriminator 1 view .LVU1070 3664 0054 11F4807F tst r1, #256 3665 0058 03D0 beq .L224 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3666 .loc 1 2024 7 is_stmt 1 view .LVU1071 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3667 .loc 1 2024 24 is_stmt 0 view .LVU1072 3668 005a E06B ldr r0, [r4, #60] 3669 .LVL280: 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3670 .loc 1 2024 24 view .LVU1073 3671 005c 40F00100 orr r0, r0, #1 3672 0060 E063 str r0, [r4, #60] 3673 .L224: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3674 .loc 1 2028 5 is_stmt 1 view .LVU1074 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3675 .loc 1 2028 8 is_stmt 0 view .LVU1075 3676 0062 13F0040F tst r3, #4 3677 0066 04D0 beq .L225 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3678 .loc 1 2028 45 discriminator 1 view .LVU1076 3679 0068 1AB1 cbz r2, .L225 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3680 .loc 1 2030 7 is_stmt 1 view .LVU1077 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3681 .loc 1 2030 24 is_stmt 0 view .LVU1078 3682 006a E06B ldr r0, [r4, #60] 3683 006c 40F00200 orr r0, r0, #2 3684 0070 E063 str r0, [r4, #60] 3685 .L225: 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3686 .loc 1 2034 5 is_stmt 1 view .LVU1079 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3687 .loc 1 2034 8 is_stmt 0 view .LVU1080 ARM GAS /tmp/ccGtkZvD.s page 137 3688 0072 13F0020F tst r3, #2 3689 0076 04D0 beq .L226 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3690 .loc 1 2034 45 discriminator 1 view .LVU1081 3691 0078 1AB1 cbz r2, .L226 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3692 .loc 1 2036 7 is_stmt 1 view .LVU1082 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3693 .loc 1 2036 24 is_stmt 0 view .LVU1083 3694 007a E06B ldr r0, [r4, #60] 3695 007c 40F00400 orr r0, r0, #4 3696 0080 E063 str r0, [r4, #60] 3697 .L226: 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3698 .loc 1 2040 5 is_stmt 1 view .LVU1084 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3699 .loc 1 2040 8 is_stmt 0 view .LVU1085 3700 0082 13F0080F tst r3, #8 3701 0086 04D0 beq .L227 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3702 .loc 1 2040 46 discriminator 1 view .LVU1086 3703 0088 1AB1 cbz r2, .L227 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3704 .loc 1 2042 7 is_stmt 1 view .LVU1087 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3705 .loc 1 2042 24 is_stmt 0 view .LVU1088 3706 008a E26B ldr r2, [r4, #60] 3707 008c 42F00802 orr r2, r2, #8 3708 0090 E263 str r2, [r4, #60] 3709 .L227: 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3710 .loc 1 2046 5 is_stmt 1 view .LVU1089 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3711 .loc 1 2046 14 is_stmt 0 view .LVU1090 3712 0092 E26B ldr r2, [r4, #60] 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3713 .loc 1 2046 8 view .LVU1091 3714 0094 002A cmp r2, #0 3715 0096 D5D0 beq .L219 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3716 .loc 1 2049 7 is_stmt 1 view .LVU1092 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3717 .loc 1 2049 10 is_stmt 0 view .LVU1093 3718 0098 13F0200F tst r3, #32 3719 009c 02D0 beq .L229 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3720 .loc 1 2049 49 discriminator 1 view .LVU1094 3721 009e 11F0200F tst r1, #32 3722 00a2 21D1 bne .L239 3723 .LVL281: 3724 .L229: 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 3725 .loc 1 2056 7 is_stmt 1 view .LVU1095 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 3726 .loc 1 2056 20 is_stmt 0 view .LVU1096 3727 00a4 2368 ldr r3, [r4] 3728 00a6 5B69 ldr r3, [r3, #20] ARM GAS /tmp/ccGtkZvD.s page 138 3729 00a8 03F04003 and r3, r3, #64 3730 .LVL282: 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3731 .loc 1 2057 7 is_stmt 1 view .LVU1097 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3732 .loc 1 2057 18 is_stmt 0 view .LVU1098 3733 00ac E26B ldr r2, [r4, #60] 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3734 .loc 1 2057 10 view .LVU1099 3735 00ae 12F0080F tst r2, #8 3736 00b2 00D1 bne .L230 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3737 .loc 1 2057 62 discriminator 1 view .LVU1100 3738 00b4 23B3 cbz r3, .L231 3739 .L230: 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3740 .loc 1 2062 9 is_stmt 1 view .LVU1101 3741 00b6 2046 mov r0, r4 3742 00b8 FFF7FEFF bl UART_EndRxTransfer 3743 .LVL283: 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3744 .loc 1 2065 9 view .LVU1102 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3745 .loc 1 2065 13 is_stmt 0 view .LVU1103 3746 00bc 2368 ldr r3, [r4] 3747 00be 5A69 ldr r2, [r3, #20] 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3748 .loc 1 2065 12 view .LVU1104 3749 00c0 12F0400F tst r2, #64 3750 00c4 18D0 beq .L232 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3751 .loc 1 2067 11 is_stmt 1 view .LVU1105 3752 00c6 5A69 ldr r2, [r3, #20] 3753 00c8 22F04002 bic r2, r2, #64 3754 00cc 5A61 str r2, [r3, #20] 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3755 .loc 1 2070 11 view .LVU1106 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3756 .loc 1 2070 20 is_stmt 0 view .LVU1107 3757 00ce 636B ldr r3, [r4, #52] 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3758 .loc 1 2070 14 view .LVU1108 3759 00d0 73B1 cbz r3, .L233 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 3760 .loc 1 2074 13 is_stmt 1 view .LVU1109 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 3761 .loc 1 2074 46 is_stmt 0 view .LVU1110 3762 00d2 124A ldr r2, .L240 3763 00d4 1A65 str r2, [r3, #80] 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3764 .loc 1 2075 13 is_stmt 1 view .LVU1111 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3765 .loc 1 2075 17 is_stmt 0 view .LVU1112 3766 00d6 606B ldr r0, [r4, #52] 3767 00d8 FFF7FEFF bl HAL_DMA_Abort_IT 3768 .LVL284: 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccGtkZvD.s page 139 3769 .loc 1 2075 16 view .LVU1113 3770 00dc 0028 cmp r0, #0 3771 00de B1D0 beq .L219 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3772 .loc 1 2078 15 is_stmt 1 view .LVU1114 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3773 .loc 1 2078 20 is_stmt 0 view .LVU1115 3774 00e0 606B ldr r0, [r4, #52] 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3775 .loc 1 2078 28 view .LVU1116 3776 00e2 036D ldr r3, [r0, #80] 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3777 .loc 1 2078 15 view .LVU1117 3778 00e4 9847 blx r3 3779 .LVL285: 3780 00e6 ADE7 b .L219 3781 .LVL286: 3782 .L239: 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3783 .loc 1 2051 9 is_stmt 1 view .LVU1118 3784 00e8 2046 mov r0, r4 3785 00ea FFF7FEFF bl UART_Receive_IT 3786 .LVL287: 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3787 .loc 1 2051 9 is_stmt 0 view .LVU1119 3788 00ee D9E7 b .L229 3789 .LVL288: 3790 .L233: 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3791 .loc 1 2089 13 is_stmt 1 view .LVU1120 3792 00f0 2046 mov r0, r4 3793 00f2 FFF7FEFF bl HAL_UART_ErrorCallback 3794 .LVL289: 3795 00f6 A5E7 b .L219 3796 .L232: 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3797 .loc 1 2101 11 view .LVU1121 3798 00f8 2046 mov r0, r4 3799 00fa FFF7FEFF bl HAL_UART_ErrorCallback 3800 .LVL290: 3801 00fe A1E7 b .L219 3802 .LVL291: 3803 .L231: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3804 .loc 1 2114 9 view .LVU1122 3805 0100 2046 mov r0, r4 3806 0102 FFF7FEFF bl HAL_UART_ErrorCallback 3807 .LVL292: 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3808 .loc 1 2117 9 view .LVU1123 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3809 .loc 1 2117 26 is_stmt 0 view .LVU1124 3810 0106 0023 movs r3, #0 3811 0108 E363 str r3, [r4, #60] 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 3812 .loc 1 2120 5 is_stmt 1 view .LVU1125 3813 010a 9BE7 b .L219 ARM GAS /tmp/ccGtkZvD.s page 140 3814 .LVL293: 3815 .L237: 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3816 .loc 1 2126 5 view .LVU1126 3817 010c 2046 mov r0, r4 3818 .LVL294: 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3819 .loc 1 2126 5 is_stmt 0 view .LVU1127 3820 010e FFF7FEFF bl UART_Transmit_IT 3821 .LVL295: 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3822 .loc 1 2127 5 is_stmt 1 view .LVU1128 3823 0112 97E7 b .L219 3824 .LVL296: 3825 .L238: 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3826 .loc 1 2133 5 view .LVU1129 3827 0114 2046 mov r0, r4 3828 .LVL297: 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3829 .loc 1 2133 5 is_stmt 0 view .LVU1130 3830 0116 FFF7FEFF bl UART_EndTransmit_IT 3831 .LVL298: 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3832 .loc 1 2134 5 is_stmt 1 view .LVU1131 3833 011a 93E7 b .L219 3834 .L241: 3835 .align 2 3836 .L240: 3837 011c 00000000 .word UART_DMAAbortOnError 3838 .cfi_endproc 3839 .LFE152: 3841 .section .text.UART_DMAAbortOnError,"ax",%progbits 3842 .align 1 3843 .syntax unified 3844 .thumb 3845 .thumb_func 3847 UART_DMAAbortOnError: 3848 .LVL299: 3849 .LFB176: 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3850 .loc 1 2731 1 view -0 3851 .cfi_startproc 3852 @ args = 0, pretend = 0, frame = 0 3853 @ frame_needed = 0, uses_anonymous_args = 0 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3854 .loc 1 2731 1 is_stmt 0 view .LVU1133 3855 0000 08B5 push {r3, lr} 3856 .LCFI39: 3857 .cfi_def_cfa_offset 8 3858 .cfi_offset 3, -8 3859 .cfi_offset 14, -4 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3860 .loc 1 2732 3 is_stmt 1 view .LVU1134 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3861 .loc 1 2732 23 is_stmt 0 view .LVU1135 3862 0002 806B ldr r0, [r0, #56] ARM GAS /tmp/ccGtkZvD.s page 141 3863 .LVL300: 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3864 .loc 1 2733 3 is_stmt 1 view .LVU1136 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3865 .loc 1 2733 22 is_stmt 0 view .LVU1137 3866 0004 0023 movs r3, #0 3867 0006 C385 strh r3, [r0, #46] @ movhi 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3868 .loc 1 2734 3 is_stmt 1 view .LVU1138 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3869 .loc 1 2734 22 is_stmt 0 view .LVU1139 3870 0008 C384 strh r3, [r0, #38] @ movhi 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3871 .loc 1 2741 3 is_stmt 1 view .LVU1140 3872 000a FFF7FEFF bl HAL_UART_ErrorCallback 3873 .LVL301: 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3874 .loc 1 2743 1 is_stmt 0 view .LVU1141 3875 000e 08BD pop {r3, pc} 3876 .cfi_endproc 3877 .LFE176: 3879 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 3880 .align 1 3881 .weak HAL_UART_AbortCpltCallback 3882 .syntax unified 3883 .thumb 3884 .thumb_func 3886 HAL_UART_AbortCpltCallback: 3887 .LVL302: 3888 .LFB158: 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 3889 .loc 1 2219 1 is_stmt 1 view -0 3890 .cfi_startproc 3891 @ args = 0, pretend = 0, frame = 0 3892 @ frame_needed = 0, uses_anonymous_args = 0 3893 @ link register save eliminated. 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3894 .loc 1 2221 3 view .LVU1143 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3895 .loc 1 2226 1 is_stmt 0 view .LVU1144 3896 0000 7047 bx lr 3897 .cfi_endproc 3898 .LFE158: 3900 .section .text.HAL_UART_Abort_IT,"ax",%progbits 3901 .align 1 3902 .global HAL_UART_Abort_IT 3903 .syntax unified 3904 .thumb 3905 .thumb_func 3907 HAL_UART_Abort_IT: 3908 .LVL303: 3909 .LFB149: 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 3910 .loc 1 1724 1 is_stmt 1 view -0 3911 .cfi_startproc 3912 @ args = 0, pretend = 0, frame = 0 3913 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccGtkZvD.s page 142 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 3914 .loc 1 1724 1 is_stmt 0 view .LVU1146 3915 0000 10B5 push {r4, lr} 3916 .LCFI40: 3917 .cfi_def_cfa_offset 8 3918 .cfi_offset 4, -8 3919 .cfi_offset 14, -4 3920 0002 0446 mov r4, r0 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3921 .loc 1 1725 3 is_stmt 1 view .LVU1147 3922 .LVL304: 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3923 .loc 1 1728 3 view .LVU1148 3924 0004 0268 ldr r2, [r0] 3925 0006 D368 ldr r3, [r2, #12] 3926 0008 23F4F073 bic r3, r3, #480 3927 000c D360 str r3, [r2, #12] 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3928 .loc 1 1729 3 view .LVU1149 3929 000e 0268 ldr r2, [r0] 3930 0010 5369 ldr r3, [r2, #20] 3931 0012 23F00103 bic r3, r3, #1 3932 0016 5361 str r3, [r2, #20] 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3933 .loc 1 1734 3 view .LVU1150 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3934 .loc 1 1734 12 is_stmt 0 view .LVU1151 3935 0018 036B ldr r3, [r0, #48] 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3936 .loc 1 1734 6 view .LVU1152 3937 001a 33B1 cbz r3, .L246 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3938 .loc 1 1738 5 is_stmt 1 view .LVU1153 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3939 .loc 1 1738 9 is_stmt 0 view .LVU1154 3940 001c 0268 ldr r2, [r0] 3941 001e 5269 ldr r2, [r2, #20] 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3942 .loc 1 1738 8 view .LVU1155 3943 0020 12F0800F tst r2, #128 3944 0024 1DD0 beq .L247 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3945 .loc 1 1740 7 is_stmt 1 view .LVU1156 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3946 .loc 1 1740 40 is_stmt 0 view .LVU1157 3947 0026 254A ldr r2, .L258 3948 0028 1A65 str r2, [r3, #80] 3949 .L246: 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3950 .loc 1 1748 3 is_stmt 1 view .LVU1158 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3951 .loc 1 1748 12 is_stmt 0 view .LVU1159 3952 002a 636B ldr r3, [r4, #52] 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3953 .loc 1 1748 6 view .LVU1160 3954 002c 33B1 cbz r3, .L248 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/ccGtkZvD.s page 143 3955 .loc 1 1752 5 is_stmt 1 view .LVU1161 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3956 .loc 1 1752 9 is_stmt 0 view .LVU1162 3957 002e 2268 ldr r2, [r4] 3958 0030 5269 ldr r2, [r2, #20] 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3959 .loc 1 1752 8 view .LVU1163 3960 0032 12F0400F tst r2, #64 3961 0036 17D0 beq .L249 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3962 .loc 1 1754 7 is_stmt 1 view .LVU1164 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3963 .loc 1 1754 40 is_stmt 0 view .LVU1165 3964 0038 214A ldr r2, .L258+4 3965 003a 1A65 str r2, [r3, #80] 3966 .L248: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3967 .loc 1 1763 3 is_stmt 1 view .LVU1166 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3968 .loc 1 1763 7 is_stmt 0 view .LVU1167 3969 003c 2368 ldr r3, [r4] 3970 003e 5A69 ldr r2, [r3, #20] 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3971 .loc 1 1763 6 view .LVU1168 3972 0040 12F0800F tst r2, #128 3973 0044 13D0 beq .L254 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3974 .loc 1 1766 5 is_stmt 1 view .LVU1169 3975 0046 5A69 ldr r2, [r3, #20] 3976 0048 22F08002 bic r2, r2, #128 3977 004c 5A61 str r2, [r3, #20] 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3978 .loc 1 1769 5 view .LVU1170 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3979 .loc 1 1769 14 is_stmt 0 view .LVU1171 3980 004e 206B ldr r0, [r4, #48] 3981 .LVL305: 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3982 .loc 1 1769 8 view .LVU1172 3983 0050 60B3 cbz r0, .L255 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3984 .loc 1 1775 7 is_stmt 1 view .LVU1173 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3985 .loc 1 1775 11 is_stmt 0 view .LVU1174 3986 0052 FFF7FEFF bl HAL_DMA_Abort_IT 3987 .LVL306: 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3988 .loc 1 1775 10 view .LVU1175 3989 0056 58B3 cbz r0, .L256 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3990 .loc 1 1777 9 is_stmt 1 view .LVU1176 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3991 .loc 1 1777 14 is_stmt 0 view .LVU1177 3992 0058 236B ldr r3, [r4, #48] 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3993 .loc 1 1777 42 view .LVU1178 3994 005a 0022 movs r2, #0 ARM GAS /tmp/ccGtkZvD.s page 144 3995 005c 1A65 str r2, [r3, #80] 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3996 .loc 1 1725 12 view .LVU1179 3997 005e 0121 movs r1, #1 3998 0060 06E0 b .L250 3999 .LVL307: 4000 .L247: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4001 .loc 1 1744 7 is_stmt 1 view .LVU1180 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4002 .loc 1 1744 40 is_stmt 0 view .LVU1181 4003 0062 0022 movs r2, #0 4004 0064 1A65 str r2, [r3, #80] 4005 0066 E0E7 b .L246 4006 .L249: 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4007 .loc 1 1758 7 is_stmt 1 view .LVU1182 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4008 .loc 1 1758 40 is_stmt 0 view .LVU1183 4009 0068 0022 movs r2, #0 4010 006a 1A65 str r2, [r3, #80] 4011 006c E6E7 b .L248 4012 .L254: 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4013 .loc 1 1725 12 view .LVU1184 4014 006e 0121 movs r1, #1 4015 .LVL308: 4016 .L250: 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4017 .loc 1 1787 3 is_stmt 1 view .LVU1185 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4018 .loc 1 1787 7 is_stmt 0 view .LVU1186 4019 0070 2368 ldr r3, [r4] 4020 0072 5A69 ldr r2, [r3, #20] 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4021 .loc 1 1787 6 view .LVU1187 4022 0074 12F0400F tst r2, #64 4023 0078 1CD0 beq .L251 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4024 .loc 1 1789 5 is_stmt 1 view .LVU1188 4025 007a 5A69 ldr r2, [r3, #20] 4026 007c 22F04002 bic r2, r2, #64 4027 0080 5A61 str r2, [r3, #20] 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4028 .loc 1 1792 5 view .LVU1189 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4029 .loc 1 1792 14 is_stmt 0 view .LVU1190 4030 0082 606B ldr r0, [r4, #52] 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4031 .loc 1 1792 8 view .LVU1191 4032 0084 B0B1 cbz r0, .L251 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4033 .loc 1 1798 7 is_stmt 1 view .LVU1192 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4034 .loc 1 1798 11 is_stmt 0 view .LVU1193 4035 0086 FFF7FEFF bl HAL_DMA_Abort_IT 4036 .LVL309: ARM GAS /tmp/ccGtkZvD.s page 145 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4037 .loc 1 1798 10 view .LVU1194 4038 008a A8B1 cbz r0, .L252 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 4039 .loc 1 1800 9 is_stmt 1 view .LVU1195 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 4040 .loc 1 1800 14 is_stmt 0 view .LVU1196 4041 008c 636B ldr r3, [r4, #52] 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 4042 .loc 1 1800 42 view .LVU1197 4043 008e 0022 movs r2, #0 4044 0090 1A65 str r2, [r3, #80] 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4045 .loc 1 1801 9 is_stmt 1 view .LVU1198 4046 .LVL310: 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4047 .loc 1 1811 3 view .LVU1199 4048 .L253: 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4049 .loc 1 1814 5 view .LVU1200 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4050 .loc 1 1814 24 is_stmt 0 view .LVU1201 4051 0092 0023 movs r3, #0 4052 0094 E384 strh r3, [r4, #38] @ movhi 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4053 .loc 1 1815 5 is_stmt 1 view .LVU1202 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4054 .loc 1 1815 24 is_stmt 0 view .LVU1203 4055 0096 E385 strh r3, [r4, #46] @ movhi 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4056 .loc 1 1818 5 is_stmt 1 view .LVU1204 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4057 .loc 1 1818 22 is_stmt 0 view .LVU1205 4058 0098 E363 str r3, [r4, #60] 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4059 .loc 1 1821 5 is_stmt 1 view .LVU1206 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4060 .loc 1 1821 20 is_stmt 0 view .LVU1207 4061 009a 2023 movs r3, #32 4062 009c 84F83930 strb r3, [r4, #57] 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4063 .loc 1 1822 5 is_stmt 1 view .LVU1208 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4064 .loc 1 1822 20 is_stmt 0 view .LVU1209 4065 00a0 84F83A30 strb r3, [r4, #58] 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4066 .loc 1 1830 5 is_stmt 1 view .LVU1210 4067 00a4 2046 mov r0, r4 4068 00a6 FFF7FEFF bl HAL_UART_AbortCpltCallback 4069 .LVL311: 4070 00aa 05E0 b .L252 4071 .LVL312: 4072 .L255: 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4073 .loc 1 1725 12 is_stmt 0 view .LVU1211 4074 00ac 0121 movs r1, #1 4075 00ae DFE7 b .L250 ARM GAS /tmp/ccGtkZvD.s page 146 4076 .L256: 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4077 .loc 1 1781 19 view .LVU1212 4078 00b0 0021 movs r1, #0 4079 00b2 DDE7 b .L250 4080 .LVL313: 4081 .L251: 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4082 .loc 1 1811 3 is_stmt 1 view .LVU1213 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4083 .loc 1 1811 6 is_stmt 0 view .LVU1214 4084 00b4 0029 cmp r1, #0 4085 00b6 ECD1 bne .L253 4086 .LVL314: 4087 .L252: 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4088 .loc 1 1834 3 is_stmt 1 view .LVU1215 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4089 .loc 1 1835 1 is_stmt 0 view .LVU1216 4090 00b8 0020 movs r0, #0 4091 00ba 10BD pop {r4, pc} 4092 .LVL315: 4093 .L259: 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4094 .loc 1 1835 1 view .LVU1217 4095 .align 2 4096 .L258: 4097 00bc 00000000 .word UART_DMATxAbortCallback 4098 00c0 00000000 .word UART_DMARxAbortCallback 4099 .cfi_endproc 4100 .LFE149: 4102 .section .text.UART_DMARxAbortCallback,"ax",%progbits 4103 .align 1 4104 .syntax unified 4105 .thumb 4106 .thumb_func 4108 UART_DMARxAbortCallback: 4109 .LVL316: 4110 .LFB178: 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4111 .loc 1 2800 1 is_stmt 1 view -0 4112 .cfi_startproc 4113 @ args = 0, pretend = 0, frame = 0 4114 @ frame_needed = 0, uses_anonymous_args = 0 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4115 .loc 1 2800 1 is_stmt 0 view .LVU1219 4116 0000 08B5 push {r3, lr} 4117 .LCFI41: 4118 .cfi_def_cfa_offset 8 4119 .cfi_offset 3, -8 4120 .cfi_offset 14, -4 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4121 .loc 1 2801 3 is_stmt 1 view .LVU1220 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4122 .loc 1 2801 23 is_stmt 0 view .LVU1221 4123 0002 806B ldr r0, [r0, #56] 4124 .LVL317: ARM GAS /tmp/ccGtkZvD.s page 147 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4125 .loc 1 2803 3 is_stmt 1 view .LVU1222 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4126 .loc 1 2803 8 is_stmt 0 view .LVU1223 4127 0004 436B ldr r3, [r0, #52] 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4128 .loc 1 2803 36 view .LVU1224 4129 0006 0022 movs r2, #0 4130 0008 1A65 str r2, [r3, #80] 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4131 .loc 1 2806 3 is_stmt 1 view .LVU1225 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4132 .loc 1 2806 12 is_stmt 0 view .LVU1226 4133 000a 036B ldr r3, [r0, #48] 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4134 .loc 1 2806 6 view .LVU1227 4135 000c 0BB1 cbz r3, .L261 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4136 .loc 1 2808 5 is_stmt 1 view .LVU1228 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4137 .loc 1 2808 22 is_stmt 0 view .LVU1229 4138 000e 1B6D ldr r3, [r3, #80] 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4139 .loc 1 2808 8 view .LVU1230 4140 0010 53B9 cbnz r3, .L260 4141 .L261: 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4142 .loc 1 2815 3 is_stmt 1 view .LVU1231 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4143 .loc 1 2815 22 is_stmt 0 view .LVU1232 4144 0012 0023 movs r3, #0 4145 0014 C384 strh r3, [r0, #38] @ movhi 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4146 .loc 1 2816 3 is_stmt 1 view .LVU1233 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4147 .loc 1 2816 22 is_stmt 0 view .LVU1234 4148 0016 C385 strh r3, [r0, #46] @ movhi 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4149 .loc 1 2819 3 is_stmt 1 view .LVU1235 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4150 .loc 1 2819 20 is_stmt 0 view .LVU1236 4151 0018 C363 str r3, [r0, #60] 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4152 .loc 1 2822 3 is_stmt 1 view .LVU1237 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4153 .loc 1 2822 18 is_stmt 0 view .LVU1238 4154 001a 2023 movs r3, #32 4155 001c 80F83930 strb r3, [r0, #57] 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4156 .loc 1 2823 3 is_stmt 1 view .LVU1239 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4157 .loc 1 2823 18 is_stmt 0 view .LVU1240 4158 0020 80F83A30 strb r3, [r0, #58] 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4159 .loc 1 2831 3 is_stmt 1 view .LVU1241 4160 0024 FFF7FEFF bl HAL_UART_AbortCpltCallback 4161 .LVL318: ARM GAS /tmp/ccGtkZvD.s page 148 4162 .L260: 2833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4163 .loc 1 2833 1 is_stmt 0 view .LVU1242 4164 0028 08BD pop {r3, pc} 4165 .cfi_endproc 4166 .LFE178: 4168 .section .text.UART_DMATxAbortCallback,"ax",%progbits 4169 .align 1 4170 .syntax unified 4171 .thumb 4172 .thumb_func 4174 UART_DMATxAbortCallback: 4175 .LVL319: 4176 .LFB177: 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4177 .loc 1 2755 1 is_stmt 1 view -0 4178 .cfi_startproc 4179 @ args = 0, pretend = 0, frame = 0 4180 @ frame_needed = 0, uses_anonymous_args = 0 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4181 .loc 1 2755 1 is_stmt 0 view .LVU1244 4182 0000 08B5 push {r3, lr} 4183 .LCFI42: 4184 .cfi_def_cfa_offset 8 4185 .cfi_offset 3, -8 4186 .cfi_offset 14, -4 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4187 .loc 1 2756 3 is_stmt 1 view .LVU1245 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4188 .loc 1 2756 23 is_stmt 0 view .LVU1246 4189 0002 806B ldr r0, [r0, #56] 4190 .LVL320: 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4191 .loc 1 2758 3 is_stmt 1 view .LVU1247 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4192 .loc 1 2758 8 is_stmt 0 view .LVU1248 4193 0004 036B ldr r3, [r0, #48] 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4194 .loc 1 2758 36 view .LVU1249 4195 0006 0022 movs r2, #0 4196 0008 1A65 str r2, [r3, #80] 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4197 .loc 1 2761 3 is_stmt 1 view .LVU1250 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4198 .loc 1 2761 12 is_stmt 0 view .LVU1251 4199 000a 436B ldr r3, [r0, #52] 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4200 .loc 1 2761 6 view .LVU1252 4201 000c 0BB1 cbz r3, .L265 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4202 .loc 1 2763 5 is_stmt 1 view .LVU1253 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4203 .loc 1 2763 22 is_stmt 0 view .LVU1254 4204 000e 1B6D ldr r3, [r3, #80] 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4205 .loc 1 2763 8 view .LVU1255 4206 0010 53B9 cbnz r3, .L264 ARM GAS /tmp/ccGtkZvD.s page 149 4207 .L265: 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4208 .loc 1 2770 3 is_stmt 1 view .LVU1256 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4209 .loc 1 2770 22 is_stmt 0 view .LVU1257 4210 0012 0023 movs r3, #0 4211 0014 C384 strh r3, [r0, #38] @ movhi 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4212 .loc 1 2771 3 is_stmt 1 view .LVU1258 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4213 .loc 1 2771 22 is_stmt 0 view .LVU1259 4214 0016 C385 strh r3, [r0, #46] @ movhi 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4215 .loc 1 2774 3 is_stmt 1 view .LVU1260 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4216 .loc 1 2774 20 is_stmt 0 view .LVU1261 4217 0018 C363 str r3, [r0, #60] 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4218 .loc 1 2777 3 is_stmt 1 view .LVU1262 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 4219 .loc 1 2777 18 is_stmt 0 view .LVU1263 4220 001a 2023 movs r3, #32 4221 001c 80F83930 strb r3, [r0, #57] 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4222 .loc 1 2778 3 is_stmt 1 view .LVU1264 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4223 .loc 1 2778 18 is_stmt 0 view .LVU1265 4224 0020 80F83A30 strb r3, [r0, #58] 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4225 .loc 1 2786 3 is_stmt 1 view .LVU1266 4226 0024 FFF7FEFF bl HAL_UART_AbortCpltCallback 4227 .LVL321: 4228 .L264: 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4229 .loc 1 2788 1 is_stmt 0 view .LVU1267 4230 0028 08BD pop {r3, pc} 4231 .cfi_endproc 4232 .LFE177: 4234 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 4235 .align 1 4236 .weak HAL_UART_AbortTransmitCpltCallback 4237 .syntax unified 4238 .thumb 4239 .thumb_func 4241 HAL_UART_AbortTransmitCpltCallback: 4242 .LVL322: 4243 .LFB159: 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4244 .loc 1 2234 1 is_stmt 1 view -0 4245 .cfi_startproc 4246 @ args = 0, pretend = 0, frame = 0 4247 @ frame_needed = 0, uses_anonymous_args = 0 4248 @ link register save eliminated. 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4249 .loc 1 2236 3 view .LVU1269 2241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4250 .loc 1 2241 1 is_stmt 0 view .LVU1270 ARM GAS /tmp/ccGtkZvD.s page 150 4251 0000 7047 bx lr 4252 .cfi_endproc 4253 .LFE159: 4255 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 4256 .align 1 4257 .global HAL_UART_AbortTransmit_IT 4258 .syntax unified 4259 .thumb 4260 .thumb_func 4262 HAL_UART_AbortTransmit_IT: 4263 .LVL323: 4264 .LFB150: 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 4265 .loc 1 1852 1 is_stmt 1 view -0 4266 .cfi_startproc 4267 @ args = 0, pretend = 0, frame = 0 4268 @ frame_needed = 0, uses_anonymous_args = 0 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 4269 .loc 1 1852 1 is_stmt 0 view .LVU1272 4270 0000 10B5 push {r4, lr} 4271 .LCFI43: 4272 .cfi_def_cfa_offset 8 4273 .cfi_offset 4, -8 4274 .cfi_offset 14, -4 4275 0002 0446 mov r4, r0 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4276 .loc 1 1854 3 is_stmt 1 view .LVU1273 4277 0004 0268 ldr r2, [r0] 4278 0006 D368 ldr r3, [r2, #12] 4279 0008 23F0C003 bic r3, r3, #192 4280 000c D360 str r3, [r2, #12] 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4281 .loc 1 1857 3 view .LVU1274 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4282 .loc 1 1857 7 is_stmt 0 view .LVU1275 4283 000e 0368 ldr r3, [r0] 4284 0010 5A69 ldr r2, [r3, #20] 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4285 .loc 1 1857 6 view .LVU1276 4286 0012 12F0800F tst r2, #128 4287 0016 17D0 beq .L270 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4288 .loc 1 1859 5 is_stmt 1 view .LVU1277 4289 0018 5A69 ldr r2, [r3, #20] 4290 001a 22F08002 bic r2, r2, #128 4291 001e 5A61 str r2, [r3, #20] 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4292 .loc 1 1862 5 view .LVU1278 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4293 .loc 1 1862 14 is_stmt 0 view .LVU1279 4294 0020 036B ldr r3, [r0, #48] 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4295 .loc 1 1862 8 view .LVU1280 4296 0022 4BB1 cbz r3, .L271 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4297 .loc 1 1866 7 is_stmt 1 view .LVU1281 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 151 4298 .loc 1 1866 40 is_stmt 0 view .LVU1282 4299 0024 0D4A ldr r2, .L274 4300 0026 1A65 str r2, [r3, #80] 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4301 .loc 1 1869 7 is_stmt 1 view .LVU1283 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4302 .loc 1 1869 11 is_stmt 0 view .LVU1284 4303 0028 006B ldr r0, [r0, #48] 4304 .LVL324: 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4305 .loc 1 1869 11 view .LVU1285 4306 002a FFF7FEFF bl HAL_DMA_Abort_IT 4307 .LVL325: 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4308 .loc 1 1869 10 view .LVU1286 4309 002e 90B1 cbz r0, .L272 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4310 .loc 1 1872 9 is_stmt 1 view .LVU1287 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4311 .loc 1 1872 14 is_stmt 0 view .LVU1288 4312 0030 206B ldr r0, [r4, #48] 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4313 .loc 1 1872 22 view .LVU1289 4314 0032 036D ldr r3, [r0, #80] 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4315 .loc 1 1872 9 view .LVU1290 4316 0034 9847 blx r3 4317 .LVL326: 4318 0036 0EE0 b .L272 4319 .LVL327: 4320 .L271: 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4321 .loc 1 1878 7 is_stmt 1 view .LVU1291 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4322 .loc 1 1878 26 is_stmt 0 view .LVU1292 4323 0038 0023 movs r3, #0 4324 003a C384 strh r3, [r0, #38] @ movhi 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4325 .loc 1 1881 7 is_stmt 1 view .LVU1293 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4326 .loc 1 1881 21 is_stmt 0 view .LVU1294 4327 003c 2023 movs r3, #32 4328 003e 80F83930 strb r3, [r0, #57] 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4329 .loc 1 1889 7 is_stmt 1 view .LVU1295 4330 0042 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 4331 .LVL328: 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4332 .loc 1 1889 7 is_stmt 0 view .LVU1296 4333 0046 06E0 b .L272 4334 .LVL329: 4335 .L270: 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4336 .loc 1 1896 5 is_stmt 1 view .LVU1297 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4337 .loc 1 1896 24 is_stmt 0 view .LVU1298 4338 0048 0023 movs r3, #0 ARM GAS /tmp/ccGtkZvD.s page 152 4339 004a C384 strh r3, [r0, #38] @ movhi 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4340 .loc 1 1899 5 is_stmt 1 view .LVU1299 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4341 .loc 1 1899 19 is_stmt 0 view .LVU1300 4342 004c 2023 movs r3, #32 4343 004e 80F83930 strb r3, [r0, #57] 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4344 .loc 1 1907 5 is_stmt 1 view .LVU1301 4345 0052 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 4346 .LVL330: 4347 .L272: 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4348 .loc 1 1911 3 view .LVU1302 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4349 .loc 1 1912 1 is_stmt 0 view .LVU1303 4350 0056 0020 movs r0, #0 4351 0058 10BD pop {r4, pc} 4352 .LVL331: 4353 .L275: 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4354 .loc 1 1912 1 view .LVU1304 4355 005a 00BF .align 2 4356 .L274: 4357 005c 00000000 .word UART_DMATxOnlyAbortCallback 4358 .cfi_endproc 4359 .LFE150: 4361 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 4362 .align 1 4363 .syntax unified 4364 .thumb 4365 .thumb_func 4367 UART_DMATxOnlyAbortCallback: 4368 .LVL332: 4369 .LFB179: 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4370 .loc 1 2845 1 is_stmt 1 view -0 4371 .cfi_startproc 4372 @ args = 0, pretend = 0, frame = 0 4373 @ frame_needed = 0, uses_anonymous_args = 0 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4374 .loc 1 2845 1 is_stmt 0 view .LVU1306 4375 0000 08B5 push {r3, lr} 4376 .LCFI44: 4377 .cfi_def_cfa_offset 8 4378 .cfi_offset 3, -8 4379 .cfi_offset 14, -4 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4380 .loc 1 2846 3 is_stmt 1 view .LVU1307 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4381 .loc 1 2846 23 is_stmt 0 view .LVU1308 4382 0002 806B ldr r0, [r0, #56] 4383 .LVL333: 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4384 .loc 1 2848 3 is_stmt 1 view .LVU1309 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4385 .loc 1 2848 22 is_stmt 0 view .LVU1310 ARM GAS /tmp/ccGtkZvD.s page 153 4386 0004 0023 movs r3, #0 4387 0006 C384 strh r3, [r0, #38] @ movhi 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4388 .loc 1 2851 3 is_stmt 1 view .LVU1311 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4389 .loc 1 2851 17 is_stmt 0 view .LVU1312 4390 0008 2023 movs r3, #32 4391 000a 80F83930 strb r3, [r0, #57] 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4392 .loc 1 2859 3 is_stmt 1 view .LVU1313 4393 000e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 4394 .LVL334: 2861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4395 .loc 1 2861 1 is_stmt 0 view .LVU1314 4396 0012 08BD pop {r3, pc} 4397 .cfi_endproc 4398 .LFE179: 4400 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 4401 .align 1 4402 .weak HAL_UART_AbortReceiveCpltCallback 4403 .syntax unified 4404 .thumb 4405 .thumb_func 4407 HAL_UART_AbortReceiveCpltCallback: 4408 .LVL335: 4409 .LFB160: 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4410 .loc 1 2249 1 is_stmt 1 view -0 4411 .cfi_startproc 4412 @ args = 0, pretend = 0, frame = 0 4413 @ frame_needed = 0, uses_anonymous_args = 0 4414 @ link register save eliminated. 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4415 .loc 1 2251 3 view .LVU1316 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4416 .loc 1 2256 1 is_stmt 0 view .LVU1317 4417 0000 7047 bx lr 4418 .cfi_endproc 4419 .LFE160: 4421 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits 4422 .align 1 4423 .global HAL_UART_AbortReceive_IT 4424 .syntax unified 4425 .thumb 4426 .thumb_func 4428 HAL_UART_AbortReceive_IT: 4429 .LVL336: 4430 .LFB151: 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 4431 .loc 1 1929 1 is_stmt 1 view -0 4432 .cfi_startproc 4433 @ args = 0, pretend = 0, frame = 0 4434 @ frame_needed = 0, uses_anonymous_args = 0 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 4435 .loc 1 1929 1 is_stmt 0 view .LVU1319 4436 0000 10B5 push {r4, lr} 4437 .LCFI45: ARM GAS /tmp/ccGtkZvD.s page 154 4438 .cfi_def_cfa_offset 8 4439 .cfi_offset 4, -8 4440 .cfi_offset 14, -4 4441 0002 0446 mov r4, r0 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4442 .loc 1 1931 3 is_stmt 1 view .LVU1320 4443 0004 0268 ldr r2, [r0] 4444 0006 D368 ldr r3, [r2, #12] 4445 0008 23F49073 bic r3, r3, #288 4446 000c D360 str r3, [r2, #12] 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4447 .loc 1 1932 3 view .LVU1321 4448 000e 0268 ldr r2, [r0] 4449 0010 5369 ldr r3, [r2, #20] 4450 0012 23F00103 bic r3, r3, #1 4451 0016 5361 str r3, [r2, #20] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4452 .loc 1 1935 3 view .LVU1322 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4453 .loc 1 1935 7 is_stmt 0 view .LVU1323 4454 0018 0368 ldr r3, [r0] 4455 001a 5A69 ldr r2, [r3, #20] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4456 .loc 1 1935 6 view .LVU1324 4457 001c 12F0400F tst r2, #64 4458 0020 17D0 beq .L280 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4459 .loc 1 1937 5 is_stmt 1 view .LVU1325 4460 0022 5A69 ldr r2, [r3, #20] 4461 0024 22F04002 bic r2, r2, #64 4462 0028 5A61 str r2, [r3, #20] 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4463 .loc 1 1940 5 view .LVU1326 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4464 .loc 1 1940 14 is_stmt 0 view .LVU1327 4465 002a 436B ldr r3, [r0, #52] 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4466 .loc 1 1940 8 view .LVU1328 4467 002c 4BB1 cbz r3, .L281 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4468 .loc 1 1944 7 is_stmt 1 view .LVU1329 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4469 .loc 1 1944 40 is_stmt 0 view .LVU1330 4470 002e 0D4A ldr r2, .L284 4471 0030 1A65 str r2, [r3, #80] 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4472 .loc 1 1947 7 is_stmt 1 view .LVU1331 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4473 .loc 1 1947 11 is_stmt 0 view .LVU1332 4474 0032 406B ldr r0, [r0, #52] 4475 .LVL337: 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4476 .loc 1 1947 11 view .LVU1333 4477 0034 FFF7FEFF bl HAL_DMA_Abort_IT 4478 .LVL338: 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4479 .loc 1 1947 10 view .LVU1334 ARM GAS /tmp/ccGtkZvD.s page 155 4480 0038 90B1 cbz r0, .L282 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4481 .loc 1 1950 9 is_stmt 1 view .LVU1335 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4482 .loc 1 1950 14 is_stmt 0 view .LVU1336 4483 003a 606B ldr r0, [r4, #52] 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4484 .loc 1 1950 22 view .LVU1337 4485 003c 036D ldr r3, [r0, #80] 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4486 .loc 1 1950 9 view .LVU1338 4487 003e 9847 blx r3 4488 .LVL339: 4489 0040 0EE0 b .L282 4490 .LVL340: 4491 .L281: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4492 .loc 1 1956 7 is_stmt 1 view .LVU1339 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4493 .loc 1 1956 26 is_stmt 0 view .LVU1340 4494 0042 0023 movs r3, #0 4495 0044 C385 strh r3, [r0, #46] @ movhi 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4496 .loc 1 1959 7 is_stmt 1 view .LVU1341 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4497 .loc 1 1959 22 is_stmt 0 view .LVU1342 4498 0046 2023 movs r3, #32 4499 0048 80F83A30 strb r3, [r0, #58] 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4500 .loc 1 1967 7 is_stmt 1 view .LVU1343 4501 004c FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 4502 .LVL341: 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4503 .loc 1 1967 7 is_stmt 0 view .LVU1344 4504 0050 06E0 b .L282 4505 .LVL342: 4506 .L280: 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4507 .loc 1 1974 5 is_stmt 1 view .LVU1345 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4508 .loc 1 1974 24 is_stmt 0 view .LVU1346 4509 0052 0023 movs r3, #0 4510 0054 C385 strh r3, [r0, #46] @ movhi 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4511 .loc 1 1977 5 is_stmt 1 view .LVU1347 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4512 .loc 1 1977 20 is_stmt 0 view .LVU1348 4513 0056 2023 movs r3, #32 4514 0058 80F83A30 strb r3, [r0, #58] 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4515 .loc 1 1985 5 is_stmt 1 view .LVU1349 4516 005c FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 4517 .LVL343: 4518 .L282: 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4519 .loc 1 1989 3 view .LVU1350 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 156 4520 .loc 1 1990 1 is_stmt 0 view .LVU1351 4521 0060 0020 movs r0, #0 4522 0062 10BD pop {r4, pc} 4523 .LVL344: 4524 .L285: 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4525 .loc 1 1990 1 view .LVU1352 4526 .align 2 4527 .L284: 4528 0064 00000000 .word UART_DMARxOnlyAbortCallback 4529 .cfi_endproc 4530 .LFE151: 4532 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 4533 .align 1 4534 .syntax unified 4535 .thumb 4536 .thumb_func 4538 UART_DMARxOnlyAbortCallback: 4539 .LVL345: 4540 .LFB180: 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4541 .loc 1 2873 1 is_stmt 1 view -0 4542 .cfi_startproc 4543 @ args = 0, pretend = 0, frame = 0 4544 @ frame_needed = 0, uses_anonymous_args = 0 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4545 .loc 1 2873 1 is_stmt 0 view .LVU1354 4546 0000 08B5 push {r3, lr} 4547 .LCFI46: 4548 .cfi_def_cfa_offset 8 4549 .cfi_offset 3, -8 4550 .cfi_offset 14, -4 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4551 .loc 1 2874 3 is_stmt 1 view .LVU1355 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4552 .loc 1 2874 23 is_stmt 0 view .LVU1356 4553 0002 806B ldr r0, [r0, #56] 4554 .LVL346: 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4555 .loc 1 2876 3 is_stmt 1 view .LVU1357 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4556 .loc 1 2876 22 is_stmt 0 view .LVU1358 4557 0004 0023 movs r3, #0 4558 0006 C385 strh r3, [r0, #46] @ movhi 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4559 .loc 1 2879 3 is_stmt 1 view .LVU1359 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4560 .loc 1 2879 18 is_stmt 0 view .LVU1360 4561 0008 2023 movs r3, #32 4562 000a 80F83A30 strb r3, [r0, #58] 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4563 .loc 1 2887 3 is_stmt 1 view .LVU1361 4564 000e FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 4565 .LVL347: 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4566 .loc 1 2889 1 is_stmt 0 view .LVU1362 4567 0012 08BD pop {r3, pc} ARM GAS /tmp/ccGtkZvD.s page 157 4568 .cfi_endproc 4569 .LFE180: 4571 .section .text.HAL_LIN_SendBreak,"ax",%progbits 4572 .align 1 4573 .global HAL_LIN_SendBreak 4574 .syntax unified 4575 .thumb 4576 .thumb_func 4578 HAL_LIN_SendBreak: 4579 .LVL348: 4580 .LFB161: 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 4581 .loc 1 2288 1 is_stmt 1 view -0 4582 .cfi_startproc 4583 @ args = 0, pretend = 0, frame = 0 4584 @ frame_needed = 0, uses_anonymous_args = 0 4585 @ link register save eliminated. 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4586 .loc 1 2290 3 view .LVU1364 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4587 .loc 1 2293 3 view .LVU1365 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4588 .loc 1 2293 3 view .LVU1366 4589 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4590 0004 012B cmp r3, #1 4591 0006 12D0 beq .L290 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4592 .loc 1 2293 3 discriminator 2 view .LVU1367 4593 0008 0123 movs r3, #1 4594 000a 80F83830 strb r3, [r0, #56] 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4595 .loc 1 2293 3 discriminator 2 view .LVU1368 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4596 .loc 1 2295 3 discriminator 2 view .LVU1369 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4597 .loc 1 2295 17 is_stmt 0 discriminator 2 view .LVU1370 4598 000e 2423 movs r3, #36 4599 0010 80F83930 strb r3, [r0, #57] 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4600 .loc 1 2298 3 is_stmt 1 discriminator 2 view .LVU1371 4601 0014 0268 ldr r2, [r0] 4602 0016 D368 ldr r3, [r2, #12] 4603 0018 43F00103 orr r3, r3, #1 4604 001c D360 str r3, [r2, #12] 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4605 .loc 1 2300 3 discriminator 2 view .LVU1372 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4606 .loc 1 2300 17 is_stmt 0 discriminator 2 view .LVU1373 4607 001e 2023 movs r3, #32 4608 0020 80F83930 strb r3, [r0, #57] 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4609 .loc 1 2303 3 is_stmt 1 discriminator 2 view .LVU1374 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4610 .loc 1 2303 3 discriminator 2 view .LVU1375 4611 0024 0023 movs r3, #0 4612 0026 80F83830 strb r3, [r0, #56] 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 158 4613 .loc 1 2303 3 discriminator 2 view .LVU1376 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4614 .loc 1 2305 3 discriminator 2 view .LVU1377 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4615 .loc 1 2305 10 is_stmt 0 discriminator 2 view .LVU1378 4616 002a 1846 mov r0, r3 4617 .LVL349: 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4618 .loc 1 2305 10 discriminator 2 view .LVU1379 4619 002c 7047 bx lr 4620 .LVL350: 4621 .L290: 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4622 .loc 1 2293 3 view .LVU1380 4623 002e 0220 movs r0, #2 4624 .LVL351: 2306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4625 .loc 1 2306 1 view .LVU1381 4626 0030 7047 bx lr 4627 .cfi_endproc 4628 .LFE161: 4630 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 4631 .align 1 4632 .global HAL_MultiProcessor_EnterMuteMode 4633 .syntax unified 4634 .thumb 4635 .thumb_func 4637 HAL_MultiProcessor_EnterMuteMode: 4638 .LVL352: 4639 .LFB162: 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 4640 .loc 1 2315 1 is_stmt 1 view -0 4641 .cfi_startproc 4642 @ args = 0, pretend = 0, frame = 0 4643 @ frame_needed = 0, uses_anonymous_args = 0 4644 @ link register save eliminated. 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4645 .loc 1 2317 3 view .LVU1383 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4646 .loc 1 2320 3 view .LVU1384 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4647 .loc 1 2320 3 view .LVU1385 4648 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4649 0004 012B cmp r3, #1 4650 0006 12D0 beq .L293 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4651 .loc 1 2320 3 discriminator 2 view .LVU1386 4652 0008 0123 movs r3, #1 4653 000a 80F83830 strb r3, [r0, #56] 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4654 .loc 1 2320 3 discriminator 2 view .LVU1387 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4655 .loc 1 2322 3 discriminator 2 view .LVU1388 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4656 .loc 1 2322 17 is_stmt 0 discriminator 2 view .LVU1389 4657 000e 2423 movs r3, #36 4658 0010 80F83930 strb r3, [r0, #57] ARM GAS /tmp/ccGtkZvD.s page 159 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4659 .loc 1 2325 3 is_stmt 1 discriminator 2 view .LVU1390 4660 0014 0268 ldr r2, [r0] 4661 0016 D368 ldr r3, [r2, #12] 4662 0018 43F00203 orr r3, r3, #2 4663 001c D360 str r3, [r2, #12] 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4664 .loc 1 2327 3 discriminator 2 view .LVU1391 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4665 .loc 1 2327 17 is_stmt 0 discriminator 2 view .LVU1392 4666 001e 2023 movs r3, #32 4667 0020 80F83930 strb r3, [r0, #57] 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4668 .loc 1 2330 3 is_stmt 1 discriminator 2 view .LVU1393 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4669 .loc 1 2330 3 discriminator 2 view .LVU1394 4670 0024 0023 movs r3, #0 4671 0026 80F83830 strb r3, [r0, #56] 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4672 .loc 1 2330 3 discriminator 2 view .LVU1395 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4673 .loc 1 2332 3 discriminator 2 view .LVU1396 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4674 .loc 1 2332 10 is_stmt 0 discriminator 2 view .LVU1397 4675 002a 1846 mov r0, r3 4676 .LVL353: 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4677 .loc 1 2332 10 discriminator 2 view .LVU1398 4678 002c 7047 bx lr 4679 .LVL354: 4680 .L293: 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4681 .loc 1 2320 3 view .LVU1399 4682 002e 0220 movs r0, #2 4683 .LVL355: 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4684 .loc 1 2333 1 view .LVU1400 4685 0030 7047 bx lr 4686 .cfi_endproc 4687 .LFE162: 4689 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits 4690 .align 1 4691 .global HAL_MultiProcessor_ExitMuteMode 4692 .syntax unified 4693 .thumb 4694 .thumb_func 4696 HAL_MultiProcessor_ExitMuteMode: 4697 .LVL356: 4698 .LFB163: 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 4699 .loc 1 2342 1 is_stmt 1 view -0 4700 .cfi_startproc 4701 @ args = 0, pretend = 0, frame = 0 4702 @ frame_needed = 0, uses_anonymous_args = 0 4703 @ link register save eliminated. 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4704 .loc 1 2344 3 view .LVU1402 ARM GAS /tmp/ccGtkZvD.s page 160 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4705 .loc 1 2347 3 view .LVU1403 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4706 .loc 1 2347 3 view .LVU1404 4707 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4708 0004 012B cmp r3, #1 4709 0006 12D0 beq .L296 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4710 .loc 1 2347 3 discriminator 2 view .LVU1405 4711 0008 0123 movs r3, #1 4712 000a 80F83830 strb r3, [r0, #56] 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4713 .loc 1 2347 3 discriminator 2 view .LVU1406 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4714 .loc 1 2349 3 discriminator 2 view .LVU1407 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4715 .loc 1 2349 17 is_stmt 0 discriminator 2 view .LVU1408 4716 000e 2423 movs r3, #36 4717 0010 80F83930 strb r3, [r0, #57] 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4718 .loc 1 2352 3 is_stmt 1 discriminator 2 view .LVU1409 4719 0014 0268 ldr r2, [r0] 4720 0016 D368 ldr r3, [r2, #12] 4721 0018 23F00203 bic r3, r3, #2 4722 001c D360 str r3, [r2, #12] 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4723 .loc 1 2354 3 discriminator 2 view .LVU1410 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4724 .loc 1 2354 17 is_stmt 0 discriminator 2 view .LVU1411 4725 001e 2023 movs r3, #32 4726 0020 80F83930 strb r3, [r0, #57] 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4727 .loc 1 2357 3 is_stmt 1 discriminator 2 view .LVU1412 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4728 .loc 1 2357 3 discriminator 2 view .LVU1413 4729 0024 0023 movs r3, #0 4730 0026 80F83830 strb r3, [r0, #56] 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4731 .loc 1 2357 3 discriminator 2 view .LVU1414 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4732 .loc 1 2359 3 discriminator 2 view .LVU1415 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4733 .loc 1 2359 10 is_stmt 0 discriminator 2 view .LVU1416 4734 002a 1846 mov r0, r3 4735 .LVL357: 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4736 .loc 1 2359 10 discriminator 2 view .LVU1417 4737 002c 7047 bx lr 4738 .LVL358: 4739 .L296: 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4740 .loc 1 2347 3 view .LVU1418 4741 002e 0220 movs r0, #2 4742 .LVL359: 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4743 .loc 1 2360 1 view .LVU1419 4744 0030 7047 bx lr ARM GAS /tmp/ccGtkZvD.s page 161 4745 .cfi_endproc 4746 .LFE163: 4748 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 4749 .align 1 4750 .global HAL_HalfDuplex_EnableTransmitter 4751 .syntax unified 4752 .thumb 4753 .thumb_func 4755 HAL_HalfDuplex_EnableTransmitter: 4756 .LVL360: 4757 .LFB164: 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 4758 .loc 1 2369 1 is_stmt 1 view -0 4759 .cfi_startproc 4760 @ args = 0, pretend = 0, frame = 0 4761 @ frame_needed = 0, uses_anonymous_args = 0 4762 @ link register save eliminated. 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4763 .loc 1 2370 3 view .LVU1421 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4764 .loc 1 2373 3 view .LVU1422 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4765 .loc 1 2373 3 view .LVU1423 4766 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4767 0004 012B cmp r3, #1 4768 0006 14D0 beq .L299 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4769 .loc 1 2373 3 discriminator 2 view .LVU1424 4770 0008 0123 movs r3, #1 4771 000a 80F83830 strb r3, [r0, #56] 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4772 .loc 1 2373 3 discriminator 2 view .LVU1425 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4773 .loc 1 2375 3 discriminator 2 view .LVU1426 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4774 .loc 1 2375 17 is_stmt 0 discriminator 2 view .LVU1427 4775 000e 2423 movs r3, #36 4776 0010 80F83930 strb r3, [r0, #57] 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4777 .loc 1 2378 3 is_stmt 1 discriminator 2 view .LVU1428 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4778 .loc 1 2378 17 is_stmt 0 discriminator 2 view .LVU1429 4779 0014 0268 ldr r2, [r0] 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4780 .loc 1 2378 10 discriminator 2 view .LVU1430 4781 0016 D368 ldr r3, [r2, #12] 4782 .LVL361: 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4783 .loc 1 2381 3 is_stmt 1 discriminator 2 view .LVU1431 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4784 .loc 1 2381 10 is_stmt 0 discriminator 2 view .LVU1432 4785 0018 23F00C03 bic r3, r3, #12 4786 .LVL362: 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4787 .loc 1 2384 3 is_stmt 1 discriminator 2 view .LVU1433 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4788 .loc 1 2384 10 is_stmt 0 discriminator 2 view .LVU1434 ARM GAS /tmp/ccGtkZvD.s page 162 4789 001c 43F00803 orr r3, r3, #8 4790 .LVL363: 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4791 .loc 1 2387 3 is_stmt 1 discriminator 2 view .LVU1435 4792 0020 D360 str r3, [r2, #12] 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4793 .loc 1 2389 3 discriminator 2 view .LVU1436 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4794 .loc 1 2389 17 is_stmt 0 discriminator 2 view .LVU1437 4795 0022 2023 movs r3, #32 4796 .LVL364: 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4797 .loc 1 2389 17 discriminator 2 view .LVU1438 4798 0024 80F83930 strb r3, [r0, #57] 4799 .LVL365: 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4800 .loc 1 2392 3 is_stmt 1 discriminator 2 view .LVU1439 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4801 .loc 1 2392 3 discriminator 2 view .LVU1440 4802 0028 0023 movs r3, #0 4803 002a 80F83830 strb r3, [r0, #56] 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4804 .loc 1 2392 3 discriminator 2 view .LVU1441 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4805 .loc 1 2394 3 discriminator 2 view .LVU1442 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4806 .loc 1 2394 10 is_stmt 0 discriminator 2 view .LVU1443 4807 002e 1846 mov r0, r3 4808 .LVL366: 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4809 .loc 1 2394 10 discriminator 2 view .LVU1444 4810 0030 7047 bx lr 4811 .LVL367: 4812 .L299: 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4813 .loc 1 2373 3 view .LVU1445 4814 0032 0220 movs r0, #2 4815 .LVL368: 2395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4816 .loc 1 2395 1 view .LVU1446 4817 0034 7047 bx lr 4818 .cfi_endproc 4819 .LFE164: 4821 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 4822 .align 1 4823 .global HAL_HalfDuplex_EnableReceiver 4824 .syntax unified 4825 .thumb 4826 .thumb_func 4828 HAL_HalfDuplex_EnableReceiver: 4829 .LVL369: 4830 .LFB165: 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 4831 .loc 1 2404 1 is_stmt 1 view -0 4832 .cfi_startproc 4833 @ args = 0, pretend = 0, frame = 0 4834 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccGtkZvD.s page 163 4835 @ link register save eliminated. 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4836 .loc 1 2405 3 view .LVU1448 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4837 .loc 1 2408 3 view .LVU1449 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4838 .loc 1 2408 3 view .LVU1450 4839 0000 90F83830 ldrb r3, [r0, #56] @ zero_extendqisi2 4840 0004 012B cmp r3, #1 4841 0006 14D0 beq .L302 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4842 .loc 1 2408 3 discriminator 2 view .LVU1451 4843 0008 0123 movs r3, #1 4844 000a 80F83830 strb r3, [r0, #56] 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4845 .loc 1 2408 3 discriminator 2 view .LVU1452 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4846 .loc 1 2410 3 discriminator 2 view .LVU1453 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4847 .loc 1 2410 17 is_stmt 0 discriminator 2 view .LVU1454 4848 000e 2423 movs r3, #36 4849 0010 80F83930 strb r3, [r0, #57] 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4850 .loc 1 2413 3 is_stmt 1 discriminator 2 view .LVU1455 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4851 .loc 1 2413 17 is_stmt 0 discriminator 2 view .LVU1456 4852 0014 0268 ldr r2, [r0] 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4853 .loc 1 2413 10 discriminator 2 view .LVU1457 4854 0016 D368 ldr r3, [r2, #12] 4855 .LVL370: 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4856 .loc 1 2416 3 is_stmt 1 discriminator 2 view .LVU1458 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4857 .loc 1 2416 10 is_stmt 0 discriminator 2 view .LVU1459 4858 0018 23F00C03 bic r3, r3, #12 4859 .LVL371: 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4860 .loc 1 2419 3 is_stmt 1 discriminator 2 view .LVU1460 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4861 .loc 1 2419 10 is_stmt 0 discriminator 2 view .LVU1461 4862 001c 43F00403 orr r3, r3, #4 4863 .LVL372: 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4864 .loc 1 2422 3 is_stmt 1 discriminator 2 view .LVU1462 4865 0020 D360 str r3, [r2, #12] 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4866 .loc 1 2424 3 discriminator 2 view .LVU1463 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4867 .loc 1 2424 17 is_stmt 0 discriminator 2 view .LVU1464 4868 0022 2023 movs r3, #32 4869 .LVL373: 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4870 .loc 1 2424 17 discriminator 2 view .LVU1465 4871 0024 80F83930 strb r3, [r0, #57] 4872 .LVL374: 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/ccGtkZvD.s page 164 4873 .loc 1 2427 3 is_stmt 1 discriminator 2 view .LVU1466 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4874 .loc 1 2427 3 discriminator 2 view .LVU1467 4875 0028 0023 movs r3, #0 4876 002a 80F83830 strb r3, [r0, #56] 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4877 .loc 1 2427 3 discriminator 2 view .LVU1468 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4878 .loc 1 2429 3 discriminator 2 view .LVU1469 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4879 .loc 1 2429 10 is_stmt 0 discriminator 2 view .LVU1470 4880 002e 1846 mov r0, r3 4881 .LVL375: 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4882 .loc 1 2429 10 discriminator 2 view .LVU1471 4883 0030 7047 bx lr 4884 .LVL376: 4885 .L302: 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4886 .loc 1 2408 3 view .LVU1472 4887 0032 0220 movs r0, #2 4888 .LVL377: 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4889 .loc 1 2430 1 view .LVU1473 4890 0034 7047 bx lr 4891 .cfi_endproc 4892 .LFE165: 4894 .section .text.HAL_UART_GetState,"ax",%progbits 4895 .align 1 4896 .global HAL_UART_GetState 4897 .syntax unified 4898 .thumb 4899 .thumb_func 4901 HAL_UART_GetState: 4902 .LVL378: 4903 .LFB166: 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 4904 .loc 1 2461 1 is_stmt 1 view -0 4905 .cfi_startproc 4906 @ args = 0, pretend = 0, frame = 0 4907 @ frame_needed = 0, uses_anonymous_args = 0 4908 @ link register save eliminated. 2462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 4909 .loc 1 2462 3 view .LVU1475 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 4910 .loc 1 2463 3 view .LVU1476 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 4911 .loc 1 2463 16 is_stmt 0 view .LVU1477 4912 0000 90F83930 ldrb r3, [r0, #57] @ zero_extendqisi2 4913 .LVL379: 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4914 .loc 1 2464 3 is_stmt 1 view .LVU1478 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4915 .loc 1 2464 16 is_stmt 0 view .LVU1479 4916 0004 90F83A00 ldrb r0, [r0, #58] @ zero_extendqisi2 4917 .LVL380: 2466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/ccGtkZvD.s page 165 4918 .loc 1 2466 3 is_stmt 1 view .LVU1480 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4919 .loc 1 2467 1 is_stmt 0 view .LVU1481 4920 0008 1843 orrs r0, r0, r3 4921 .LVL381: 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4922 .loc 1 2467 1 view .LVU1482 4923 000a 7047 bx lr 4924 .cfi_endproc 4925 .LFE166: 4927 .section .text.HAL_UART_GetError,"ax",%progbits 4928 .align 1 4929 .global HAL_UART_GetError 4930 .syntax unified 4931 .thumb 4932 .thumb_func 4934 HAL_UART_GetError: 4935 .LVL382: 4936 .LFB167: 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 4937 .loc 1 2476 1 is_stmt 1 view -0 4938 .cfi_startproc 4939 @ args = 0, pretend = 0, frame = 0 4940 @ frame_needed = 0, uses_anonymous_args = 0 4941 @ link register save eliminated. 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4942 .loc 1 2477 3 view .LVU1484 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4943 .loc 1 2477 15 is_stmt 0 view .LVU1485 4944 0000 C06B ldr r0, [r0, #60] 4945 .LVL383: 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4946 .loc 1 2478 1 view .LVU1486 4947 0002 7047 bx lr 4948 .cfi_endproc 4949 .LFE167: 4951 .text 4952 .Letext0: 4953 .file 2 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/ 4954 .file 3 "/home/gitc/\346\241\214\351\235\242/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/ 4955 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h" 4956 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 4957 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 4958 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 4959 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h" 4960 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h" 4961 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" ARM GAS /tmp/ccGtkZvD.s page 166 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_uart.c /tmp/ccGtkZvD.s:20 .text.UART_EndTxTransfer:0000000000000000 $t /tmp/ccGtkZvD.s:25 .text.UART_EndTxTransfer:0000000000000000 UART_EndTxTransfer /tmp/ccGtkZvD.s:49 .text.UART_EndRxTransfer:0000000000000000 $t /tmp/ccGtkZvD.s:54 .text.UART_EndRxTransfer:0000000000000000 UART_EndRxTransfer /tmp/ccGtkZvD.s:82 .text.UART_Transmit_IT:0000000000000000 $t /tmp/ccGtkZvD.s:87 .text.UART_Transmit_IT:0000000000000000 UART_Transmit_IT /tmp/ccGtkZvD.s:195 .text.UART_SetConfig:0000000000000000 $t /tmp/ccGtkZvD.s:200 .text.UART_SetConfig:0000000000000000 UART_SetConfig /tmp/ccGtkZvD.s:572 .text.UART_SetConfig:0000000000000320 $d /tmp/ccGtkZvD.s:578 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/ccGtkZvD.s:583 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout /tmp/ccGtkZvD.s:676 .text.HAL_UART_MspInit:0000000000000000 $t /tmp/ccGtkZvD.s:682 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit /tmp/ccGtkZvD.s:697 .text.HAL_UART_Init:0000000000000000 $t /tmp/ccGtkZvD.s:703 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init /tmp/ccGtkZvD.s:798 .text.HAL_HalfDuplex_Init:0000000000000000 $t /tmp/ccGtkZvD.s:804 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init /tmp/ccGtkZvD.s:904 .text.HAL_LIN_Init:0000000000000000 $t /tmp/ccGtkZvD.s:910 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init /tmp/ccGtkZvD.s:1029 .text.HAL_MultiProcessor_Init:0000000000000000 $t /tmp/ccGtkZvD.s:1035 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init /tmp/ccGtkZvD.s:1161 .text.HAL_UART_MspDeInit:0000000000000000 $t /tmp/ccGtkZvD.s:1167 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit /tmp/ccGtkZvD.s:1182 .text.HAL_UART_DeInit:0000000000000000 $t /tmp/ccGtkZvD.s:1188 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit /tmp/ccGtkZvD.s:1250 .text.HAL_UART_Transmit:0000000000000000 $t /tmp/ccGtkZvD.s:1256 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit /tmp/ccGtkZvD.s:1494 .text.HAL_UART_Receive:0000000000000000 $t /tmp/ccGtkZvD.s:1500 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive /tmp/ccGtkZvD.s:1749 .text.HAL_UART_Transmit_IT:0000000000000000 $t /tmp/ccGtkZvD.s:1755 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT /tmp/ccGtkZvD.s:1853 .text.HAL_UART_Receive_IT:0000000000000000 $t /tmp/ccGtkZvD.s:1859 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT /tmp/ccGtkZvD.s:1967 .text.HAL_UART_Transmit_DMA:0000000000000000 $t /tmp/ccGtkZvD.s:1973 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA /tmp/ccGtkZvD.s:2117 .text.HAL_UART_Transmit_DMA:0000000000000080 $d /tmp/ccGtkZvD.s:2993 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt /tmp/ccGtkZvD.s:3113 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt /tmp/ccGtkZvD.s:3468 .text.UART_DMAError:0000000000000000 UART_DMAError /tmp/ccGtkZvD.s:2124 .text.HAL_UART_Receive_DMA:0000000000000000 $t /tmp/ccGtkZvD.s:2130 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA /tmp/ccGtkZvD.s:2294 .text.HAL_UART_Receive_DMA:000000000000009c $d /tmp/ccGtkZvD.s:3166 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt /tmp/ccGtkZvD.s:3415 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt /tmp/ccGtkZvD.s:2301 .text.HAL_UART_DMAPause:0000000000000000 $t /tmp/ccGtkZvD.s:2307 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause /tmp/ccGtkZvD.s:2409 .text.HAL_UART_DMAResume:0000000000000000 $t /tmp/ccGtkZvD.s:2415 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume /tmp/ccGtkZvD.s:2527 .text.HAL_UART_DMAStop:0000000000000000 $t /tmp/ccGtkZvD.s:2533 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop /tmp/ccGtkZvD.s:2636 .text.HAL_UART_Abort:0000000000000000 $t /tmp/ccGtkZvD.s:2642 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort /tmp/ccGtkZvD.s:2784 .text.HAL_UART_AbortTransmit:0000000000000000 $t /tmp/ccGtkZvD.s:2790 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit /tmp/ccGtkZvD.s:2873 .text.HAL_UART_AbortReceive:0000000000000000 $t ARM GAS /tmp/ccGtkZvD.s page 167 /tmp/ccGtkZvD.s:2879 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive /tmp/ccGtkZvD.s:2967 .text.HAL_UART_TxCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:2973 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback /tmp/ccGtkZvD.s:2988 .text.UART_DMATransmitCplt:0000000000000000 $t /tmp/ccGtkZvD.s:3049 .text.UART_EndTransmit_IT:0000000000000000 $t /tmp/ccGtkZvD.s:3054 .text.UART_EndTransmit_IT:0000000000000000 UART_EndTransmit_IT /tmp/ccGtkZvD.s:3087 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:3093 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback /tmp/ccGtkZvD.s:3108 .text.UART_DMATxHalfCplt:0000000000000000 $t /tmp/ccGtkZvD.s:3140 .text.HAL_UART_RxCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:3146 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback /tmp/ccGtkZvD.s:3161 .text.UART_DMAReceiveCplt:0000000000000000 $t /tmp/ccGtkZvD.s:3226 .text.UART_Receive_IT:0000000000000000 $t /tmp/ccGtkZvD.s:3231 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT /tmp/ccGtkZvD.s:3389 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:3395 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback /tmp/ccGtkZvD.s:3410 .text.UART_DMARxHalfCplt:0000000000000000 $t /tmp/ccGtkZvD.s:3442 .text.HAL_UART_ErrorCallback:0000000000000000 $t /tmp/ccGtkZvD.s:3448 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback /tmp/ccGtkZvD.s:3463 .text.UART_DMAError:0000000000000000 $t /tmp/ccGtkZvD.s:3565 .text.HAL_UART_IRQHandler:0000000000000000 $t /tmp/ccGtkZvD.s:3571 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler /tmp/ccGtkZvD.s:3837 .text.HAL_UART_IRQHandler:000000000000011c $d /tmp/ccGtkZvD.s:3847 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError /tmp/ccGtkZvD.s:3842 .text.UART_DMAAbortOnError:0000000000000000 $t /tmp/ccGtkZvD.s:3880 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:3886 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback /tmp/ccGtkZvD.s:3901 .text.HAL_UART_Abort_IT:0000000000000000 $t /tmp/ccGtkZvD.s:3907 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT /tmp/ccGtkZvD.s:4097 .text.HAL_UART_Abort_IT:00000000000000bc $d /tmp/ccGtkZvD.s:4174 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback /tmp/ccGtkZvD.s:4108 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback /tmp/ccGtkZvD.s:4103 .text.UART_DMARxAbortCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4169 .text.UART_DMATxAbortCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4235 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4241 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback /tmp/ccGtkZvD.s:4256 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t /tmp/ccGtkZvD.s:4262 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT /tmp/ccGtkZvD.s:4357 .text.HAL_UART_AbortTransmit_IT:000000000000005c $d /tmp/ccGtkZvD.s:4367 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback /tmp/ccGtkZvD.s:4362 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4401 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4407 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback /tmp/ccGtkZvD.s:4422 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t /tmp/ccGtkZvD.s:4428 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT /tmp/ccGtkZvD.s:4528 .text.HAL_UART_AbortReceive_IT:0000000000000064 $d /tmp/ccGtkZvD.s:4538 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback /tmp/ccGtkZvD.s:4533 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t /tmp/ccGtkZvD.s:4572 .text.HAL_LIN_SendBreak:0000000000000000 $t /tmp/ccGtkZvD.s:4578 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak /tmp/ccGtkZvD.s:4631 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t /tmp/ccGtkZvD.s:4637 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode /tmp/ccGtkZvD.s:4690 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 $t /tmp/ccGtkZvD.s:4696 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 HAL_MultiProcessor_ExitMuteMode /tmp/ccGtkZvD.s:4749 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t /tmp/ccGtkZvD.s:4755 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter /tmp/ccGtkZvD.s:4822 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t ARM GAS /tmp/ccGtkZvD.s page 168 /tmp/ccGtkZvD.s:4828 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver /tmp/ccGtkZvD.s:4895 .text.HAL_UART_GetState:0000000000000000 $t /tmp/ccGtkZvD.s:4901 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState /tmp/ccGtkZvD.s:4928 .text.HAL_UART_GetError:0000000000000000 $t /tmp/ccGtkZvD.s:4934 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError UNDEFINED SYMBOLS HAL_RCC_GetPCLK1Freq HAL_RCC_GetPCLK2Freq HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_GetError HAL_DMA_Abort_IT