ARM GAS /tmp/cc8UBTH4.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 1 11 .eabi_attribute 34, 1 12 .eabi_attribute 18, 4 13 .file "stm32f4xx_hal_uart.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .section .text.UART_EndTxTransfer,"ax",%progbits 18 .align 1 19 .arch armv7e-m 20 .syntax unified 21 .thumb 22 .thumb_func 23 .fpu fpv4-sp-d16 25 UART_EndTxTransfer: 26 .LFB185: 27 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @file stm32f4xx_hal_uart.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * functionalities of the Universal Asynchronous Receiver Transmitter Peripheral (UART). 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + IO operation functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral Control functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * + Peripheral State and Errors functions 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @attention 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Copyright (c) 2016 STMicroelectronics. 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * All rights reserved. 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This software is licensed under terms that can be found in the LICENSE file 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * in the root directory of this software component. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### How to use this driver ##### 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The UART HAL driver can be used as follows: 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Declare a UART_HandleTypeDef handle structure (eg. UART_HandleTypeDef huart). ARM GAS /tmp/cc8UBTH4.s page 2 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Initialize the UART low level resources by implementing the HAL_UART_MspInit() API: 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) Enable the USARTx interface clock. 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) UART pins configuration: 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the clock for the UART GPIOs. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the UART TX/RX pins as alternate function pull-up. 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) NVIC configuration if you need to use interrupt process (HAL_UART_Transmit_IT() 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_IT() APIs): 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority. 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the NVIC USART IRQ handle. 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (##) DMA Configuration if you need to use DMA process (HAL_UART_Transmit_DMA() 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_Receive_DMA() APIs): 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Declare a DMA handle structure for the Tx/Rx stream. 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Enable the DMAx interface clock. 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the declared DMA handle structure with the required 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Tx/Rx parameters. 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the DMA Tx/Rx stream. 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Associate the initialized DMA handle to the UART DMA Tx/Rx handle. 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the priority and enable the NVIC for the transfer complete 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** interrupt on the DMA Tx/Rx stream. 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+++) Configure the USARTx interrupt priority and enable the NVIC USART IRQ handle 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (used for last byte sending completion detection in DMA non circular mode) 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Program the Baud Rate, Word Length, Stop Bit, Parity, Hardware 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** flow control and Mode(Receiver/Transmitter) in the huart Init structure. 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART asynchronous mode, initialize the UART registers by calling 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_Init() API. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the UART Half duplex mode, initialize the UART registers by calling 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_HalfDuplex_Init() API. 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the LIN mode, initialize the UART registers by calling the HAL_LIN_Init() API. 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) For the Multi-Processor mode, initialize the UART registers by calling 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_MultiProcessor_Init() API. 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) The specific UART interrupts (Transmission complete interrupt, 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RXNE interrupt and Error Interrupts) will be managed using the macros 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT() and __HAL_UART_DISABLE_IT() inside the transmit 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and receive process. 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) These APIs (HAL_UART_Init() and HAL_HalfDuplex_Init()) configure also the 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** low level Hardware GPIO, CLOCK, CORTEX...etc) by calling the customized 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit() API. 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Callback registration ##### 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================== 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The compilation define USE_HAL_UART_REGISTER_CALLBACKS when set to 1 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** allows the user to configure dynamically the driver callbacks. 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use Function HAL_UART_RegisterCallback() to register a user callback. 88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Function HAL_UART_RegisterCallback() allows to register following callbacks: ARM GAS /tmp/cc8UBTH4.s page 3 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and a pointer to the user callback function. 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Use function HAL_UART_UnRegisterCallback() to reset a callback to the default 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** weak (surcharged) function. 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_UnRegisterCallback() takes as parameters the HAL peripheral handle, 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the Callback ID. 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This function allows to reset following callbacks: 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxHalfCpltCallback : Tx Half Complete Callback. 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) TxCpltCallback : Tx Complete Callback. 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxHalfCpltCallback : Rx Half Complete Callback. 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) RxCpltCallback : Rx Complete Callback. 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) ErrorCallback : Error Callback. 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortCpltCallback : Abort Complete Callback. 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortTransmitCpltCallback : Abort Transmit Complete Callback. 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) AbortReceiveCpltCallback : Abort Receive Complete Callback. 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspInitCallback : UART MspInit. 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) MspDeInitCallback : UART MspDeInit. 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** For specific callback RxEventCallback, use dedicated registration/reset functions: 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** respectively HAL_UART_RegisterRxEventCallback() , HAL_UART_UnRegisterRxEventCallback(). 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** By default, after the HAL_UART_Init() and when the state is HAL_UART_STATE_RESET 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** all callbacks are set to the corresponding weak (surcharged) functions: 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** examples HAL_UART_TxCpltCallback(), HAL_UART_RxHalfCpltCallback(). 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done for MspInit and MspDeInit functions that are respectively 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** reset to the legacy weak (surcharged) functions in the HAL_UART_Init() 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_DeInit() only when these callbacks are null (not registered beforehand). 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If not, MspInit or MspDeInit are not null, the HAL_UART_Init() and HAL_UART_DeInit() 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand). 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Callbacks can be registered/unregistered in HAL_UART_STATE_READY state only. 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in HAL_UART_STATE_READY or HAL_UART_STATE_RESET state, thus registered (user) 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MspInit/DeInit callbacks can be used during the Init/DeInit. 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In that case first register the MspInit/MspDeInit user callbacks 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using HAL_UART_RegisterCallback() before calling HAL_UART_DeInit() 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or HAL_UART_Init() function. 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When The compilation define USE_HAL_UART_REGISTER_CALLBACKS is set to 0 or 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** not defined, the callback registration feature is not available 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and weak (surcharged) callbacks are used. ARM GAS /tmp/cc8UBTH4.s page 4 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Three operation modes are available within this driver : 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Polling mode IO operation *** 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ================================= 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in blocking mode using HAL_UART_Transmit() 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in blocking mode using HAL_UART_Receive() 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** Interrupt mode IO operation *** 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =================================== 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode using HAL_UART_Transmit_IT() 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode using HAL_UART_Receive_IT() 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** DMA mode IO operation *** 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================== 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Send an amount of data in non blocking mode (DMA) using HAL_UART_Transmit_DMA() 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of half transfer HAL_UART_TxHalfCpltCallback is executed and user ca 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxHalfCpltCallback 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At transmission end of transfer HAL_UART_TxCpltCallback is executed and user can 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_TxCpltCallback 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Receive an amount of data in non blocking mode (DMA) using HAL_UART_Receive_DMA() 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of half transfer HAL_UART_RxHalfCpltCallback is executed and user can 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxHalfCpltCallback 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) At reception end of transfer HAL_UART_RxCpltCallback is executed and user can 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_RxCpltCallback 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) In case of transfer Error, HAL_UART_ErrorCallback() function is executed and user can 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** add his own code by customization of function pointer HAL_UART_ErrorCallback 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Pause the DMA Transfer using HAL_UART_DMAPause() 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Resume the DMA Transfer using HAL_UART_DMAResume() 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Stop the DMA Transfer using HAL_UART_DMAStop() 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] This subsection also provides a set of additional functions providing enhanced reception 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** services to user. (For example, these functions allow application to handle use cases 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** where number of data to be received is unknown). 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Compared to standard reception services which only consider number of received 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** data elements as reception completion criteria, these functions also consider additional ev 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** as triggers for updating reception status to caller : 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Detection of inactivity period (RX line has not been active for a given period). 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) RX inactivity detected by IDLE event, i.e. RX line has been in idle state (normally 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** for 1 frame time, after last received byte. 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two mode of transfer: 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The reception is performed in polling mode, until either expected number 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or till IDLE event occurs. Reception is handled only during function execution. 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** When function exits, no data reception could occur. HAL status and number of actually re ARM GAS /tmp/cc8UBTH4.s page 5 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** are returned by function after finishing transfer. 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The reception is performed using Interrupts or DMA. 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** These API's return the HAL status. 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when using DMA mode. 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UARTEx_RxEventCallback() user callback will be executed during Receive process 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a reception error is det 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API: 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle() 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API with Interrupt: 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle_IT() 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API with DMA: 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_ReceiveToIdle_DMA() 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *** UART HAL driver macros list *** 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================= 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Below the list of most used macros in UART HAL driver. 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE: Enable the UART peripheral 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE: Disable the UART peripheral 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_FLAG : Check whether the specified UART flag is set or not 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_CLEAR_FLAG : Clear the specified UART pending flag 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_ENABLE_IT: Enable the specified UART interrupt 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_DISABLE_IT: Disable the specified UART interrupt 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) __HAL_UART_GET_IT_SOURCE: Check whether the specified UART interrupt has occurred or not 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) You can refer to the UART HAL driver header file for more useful macros 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (@) Additional remark: If the parity is enabled, then the MSB bit of the data written 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the possible UART frame formats are as listed in the following table: 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | M bit | PCE bit | UART frame | 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------------------|---------------------------------------| 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 0 | | SB | 8 bit data | STB | | 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 0 | 1 | | SB | 7 bit data | PB | STB | | 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 0 | | SB | 9 bit data | STB | | 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** |---------|-----------|---------------------------------------| 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** | 1 | 1 | | SB | 8 bit data | PB | STB | | 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** +-------------------------------------------------------------+ 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ****************************************************************************** 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Includes ------------------------------------------------------------------*/ 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #include "stm32f4xx_hal.h" 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 6 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup STM32F4xx_HAL_Driver 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART UART 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief HAL UART module driver 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #ifdef HAL_UART_MODULE_ENABLED 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private typedef -----------------------------------------------------------*/ 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private define ------------------------------------------------------------*/ 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Constants 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private macro -------------------------------------------------------------*/ 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private variables ---------------------------------------------------------*/ 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Private function prototypes -----------------------------------------------*/ 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @addtogroup UART_Private_Functions UART Private Functions 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart); 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart); 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart); 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma); 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma); 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma); 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma); 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma); 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma); 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma); 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma); 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma); 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart); 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart); 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart); 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout); 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart); 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Exported functions ---------------------------------------------------------*/ 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions UART Exported Functions 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group1 Initialization and de-initialization functions ARM GAS /tmp/cc8UBTH4.s page 7 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialization and Configuration functions 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Initialization and Configuration functions ##### 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to initialize the USARTx or the UARTy 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in asynchronous mode. 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) For the asynchronous mode only these parameters can be configured: 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Baud Rate 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Word Length 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Stop Bit 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Parity: If the parity is enabled, then the MSB bit of the data written 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the data register is transmitted but is changed by the parity bit. 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Depending on the frame length defined by the M bit (8-bits or 9-bits), 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** please refer to Reference manual for possible UART frame formats. 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Hardware flow control 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Receiver/transmitter modes 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (++) Over Sampling Method 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_Init(), HAL_HalfDuplex_Init(), HAL_LIN_Init() and HAL_MultiProcessor_Init() APIs 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** follow respectively the UART asynchronous, UART Half duplex, LIN and Multi-Processor configurat 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** procedures (details for the procedures are available in reference manual 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (RM0430 for STM32F4X3xx MCUs and RM0402 for STM32F412xx MCUs 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0383 for STM32F411xC/E MCUs and RM0401 for STM32F410xx MCUs 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0090 for STM32F4X5xx/STM32F4X7xx/STM32F429xx/STM32F439xx MCUs 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** RM0390 for STM32F446xx MCUs and RM0386 for STM32F469xx/STM32F479xx MCUs)). 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the UART mode according to the specified parameters in 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the UART_InitTypeDef and create the associated handle. 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.HwFlowCtl != UART_HWCONTROL_NONE) 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The hardware flow control is available only for USART1, USART2, USART3 and USART6. 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Except for STM32F446xx devices, that is available for USART1, USART2, USART3, USART6, UART4 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HWFLOW_INSTANCE(huart->Instance)); 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HARDWARE_FLOW_CONTROL(huart->Init.HwFlowCtl)); 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 8 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In asynchronous mode, the following bits must be kept cleared: 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the half-duplex mode according to the specified 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. ARM GAS /tmp/cc8UBTH4.s page 9 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart) 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_HALFDUPLEX_INSTANCE(huart->Instance)); 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In half-duplex mode, the following bits must be kept cleared: 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN and IREN bits in the USART_CR3 register.*/ 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */ 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR3, USART_CR3_HDSEL); 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); ARM GAS /tmp/cc8UBTH4.s page 10 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the LIN mode according to the specified 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param BreakDetectLength Specifies the LIN break detection length. 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_10B: 10-bit break detection 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_LINBREAKDETECTLENGTH_11B: 11-bit break detection 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength) 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the LIN UART instance */ 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_INSTANCE(huart->Instance)); 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Break detection length parameter */ 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength)); 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 11 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In LIN mode, the following bits must be kept cleared: 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - CLKEN bits in the USART_CR2 register, 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_CLKEN)); 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the LIN mode by setting the LINEN bit in the CR2 register */ 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, USART_CR2_LINEN); 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART LIN Break detection length. */ 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_LBDL); 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state*/ 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initializes the Multi-Processor mode according to the specified 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * parameters in the UART_InitTypeDef and create the associated handle. 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Address USART address 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param WakeUpMethod specifies the USART wake-up method. 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_IDLELINE: Wake-up by an idle line detection 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg UART_WAKEUPMETHOD_ADDRESSMARK: Wake-up by an address mark 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t Wake 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 12 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the Address & wake up method parameters */ 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WAKEUPMETHOD(WakeUpMethod)); 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address)); 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_RESET) 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Allocate lock resource and initialize it */ 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Lock = HAL_UNLOCKED; 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_InitCallbacksToDefault(huart); 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspInitCallback == NULL) 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware */ 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback(huart); 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the low level hardware : GPIO, CLOCK */ 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspInit(huart); 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the peripheral */ 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART Communication parameters */ 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_SetConfig(huart); 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Multi-Processor mode, the following bits must be kept cleared: 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - LINEN and CLKEN bits in the USART_CR2 register, 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** - SCEN, HDSEL and IREN bits in the USART_CR3 register */ 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the USART address node */ 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR2, USART_CR2_ADD); 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the wake up method by setting the WAKE bit in the CR1 register */ 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR1, USART_CR1_WAKE); 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the peripheral */ 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE(huart); 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize the UART state */ 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; ARM GAS /tmp/cc8UBTH4.s page 13 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DeInitializes the UART peripheral. 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart) 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart == NULL) 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 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 **** /* Check the parameters */ 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the Peripheral */ 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE(huart); 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->MspDeInitCallback == NULL) 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback(huart); 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DeInit the low level hardware */ 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_MspDeInit(huart); 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlock */ 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP Init. 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspInit(UART_HandleTypeDef *huart) ARM GAS /tmp/cc8UBTH4.s page 14 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspInit could be implemented in the user file 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART MSP DeInit. 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_MspDeInit could be implemented in the user file 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Callback 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note The HAL_UART_RegisterCallback() may be called before HAL_UART_Init(), HAL_HalfDuplex_In 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_MultiProcessor_Init() to register callbacks for HAL_UART_MSPINIT_CB_ID and HAL_UART 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be registered 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback pointer to the Callback function 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef C 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pUART_CallbackTypeDef pCallback) 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 15 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = pCallback; 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = 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_RX_HALFCOMPLETE_CB_ID : 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = 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 **** case HAL_UART_RX_COMPLETE_CB_ID : 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = pCallback; 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = pCallback; 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 **** case HAL_UART_ABORT_COMPLETE_CB_ID : 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = pCallback; 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = pCallback; 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = pCallback; 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (huart->gState == HAL_UART_STATE_RESET) 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) ARM GAS /tmp/cc8UBTH4.s page 16 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = pCallback; 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = pCallback; 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 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 **** } 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Unregister an UART Callback 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART callaback is redirected to the weak predefined callback 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note The HAL_UART_UnRegisterCallback() may be called before HAL_UART_Init(), HAL_HalfDuplex_ 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_LIN_Init(), HAL_MultiProcessor_Init() to un-register callbacks for HAL_UART_MSPINIT 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and HAL_UART_MSPDEINIT_CB_ID 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart uart handle 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param CallbackID ID of the callback to be unregistered 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This parameter can be one of the following values: 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_HALFCOMPLETE_CB_ID Tx Half Complete Callback ID 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_TX_COMPLETE_CB_ID Tx Complete Callback ID 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_HALFCOMPLETE_CB_ID Rx Half Complete Callback ID 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_RX_COMPLETE_CB_ID Rx Complete Callback ID 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ERROR_CB_ID Error Callback ID 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_COMPLETE_CB_ID Abort Complete Callback ID 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID Abort Transmit Complete Callback ID 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID Abort Receive Complete Callback ID 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPINIT_CB_ID MspInit Callback ID 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @arg @ref HAL_UART_MSPDEINIT_CB_ID MspDeInit Callback ID 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_UART_STATE_READY == huart->gState) 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 17 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_HALFCOMPLETE_CB_ID : 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHa 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_TX_COMPLETE_CB_ID : 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpl 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_HALFCOMPLETE_CB_ID : 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHal 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_RX_COMPLETE_CB_ID : 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpl 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ERROR_CB_ID : 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak Error 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_COMPLETE_CB_ID : 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak Abort 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_TRANSMIT_COMPLETE_CB_ID : 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak Abort 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_ABORT_RECEIVE_COMPLETE_CB_ID : 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak Abort 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; /* Legacy weak MspIn 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; /* Legacy weak MspDe 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else if (HAL_UART_STATE_RESET == huart->gState) 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** switch (CallbackID) 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPINIT_CB_ID : 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspInitCallback = HAL_UART_MspInit; ARM GAS /tmp/cc8UBTH4.s page 18 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** case HAL_UART_MSPDEINIT_CB_ID : 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->MspDeInitCallback = HAL_UART_MspDeInit; 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** default : 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** break; 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Update the error code */ 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return error status */ 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Register a User UART Rx Event Callback 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * To be used instead of the weak predefined callback 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Uart handle 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pCallback Pointer to the Rx Event Callback function 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_RegisterRxEventCallback(UART_HandleTypeDef *huart, pUART_RxEventCallback 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pCallback == NULL) 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = pCallback; 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; ARM GAS /tmp/cc8UBTH4.s page 19 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 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 **** * @brief UnRegister the UART Rx Event Callback 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Rx Event Callback is redirected to the weak HAL_UARTEx_RxEventCallback() predefine 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Uart handle 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_UnRegisterRxEventCallback(UART_HandleTypeDef *huart) 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status = HAL_OK; 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process locked */ 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak UART Rx Event Callback */ 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK; 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Release Lock */ 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group2 IO operation functions 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Transmit and Receive functions 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### IO operation functions ##### 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** =============================================================================== 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to manage the UART asynchronous 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and Half duplex data transfers. 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) There are two modes of transfer: 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Blocking mode: The communication is performed in polling mode. 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL status of all data processing is returned by the same function 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** after finishing transfer. 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Non-Blocking mode: The communication is performed using Interrupts ARM GAS /tmp/cc8UBTH4.s page 20 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** or DMA, these API's return the HAL status. 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The end of the data processing will be indicated through the 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dedicated UART IRQ when using Interrupt mode or the DMA IRQ when 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** using DMA mode. 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_TxCpltCallback(), HAL_UART_RxCpltCallback() user callbacks 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will be executed respectively at the end of the transmit or receive process 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** The HAL_UART_ErrorCallback()user callback will be executed when a communication error is 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Blocking mode API's are : 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit() 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive() 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with Interrupt are : 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_IT() 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_IT() 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_IRQHandler() 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode API's with DMA are : 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Transmit_DMA() 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Receive_DMA() 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAPause() 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAResume() 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_DMAStop() 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A set of Transfer Complete Callbacks are provided in Non_Blocking mode: 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxHalfCpltCallback() 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_TxCpltCallback() 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxHalfCpltCallback() 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_RxCpltCallback() 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_ErrorCallback() 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) Non-Blocking mode transfers could be aborted using Abort API's : 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort() 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit() 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive() 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_Abort_IT() 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmit_IT() 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceive_IT() 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1097: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 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortCpltCallback() 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortTransmitCpltCallback() 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_AbortReceiveCpltCallback() 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) A Rx Event Reception Callback (Rx event notification) is available for Non_Blocking modes o 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UARTEx_RxEventCallback() 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (#) In Non-Blocking mode transfers, possible errors are split into 2 categories. 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Errors are handled as follows : 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Recoverable and non blocking : Transfer could go till end, but er 1108: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 1109: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 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and HAL_UART_ErrorCallback() user callback is executed. Transfer is kept ongoing on UART 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If user wants to abort it, Abort services should be called by user. 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) Error is considered as Blocking : Transfer could not be completed properly and is aborte 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This concerns Overrun Error In Interrupt mode reception and all errors in DMA mode. 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error code is set to allow user to identify error type, and HAL_UART_ErrorCallback() use ARM GAS /tmp/cc8UBTH4.s page 21 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** -@- In the Half duplex communication, it is forbidden to run the transmit 1117: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. 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in blocking mode. 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *pdata16bits; 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 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 **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->TxXferCount > 0U) 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 22 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*pdata16bits & 0x01FFU); 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*pdata8bits & 0xFFU); 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount--; 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in blocking mode. 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) ARM GAS /tmp/cc8UBTH4.s page 23 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the remain data to be received */ 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK) 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & 0x01FF); 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORD 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 24 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 1299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Si 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit data register empty Interrupt */ 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TXE); 1327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 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 **** /** 1337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode. 1338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. ARM GAS /tmp/cc8UBTH4.s page 25 1343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to Standard reception */ 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (UART_Start_Receive_IT(huart, pData, Size)); 1361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in DMA mode. 1370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the sent data is handled as a set of u16. In this case, Size must indicate the number 1372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 provided through pData. 1373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be sent 1377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t S 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_READY) 1385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr = pData; 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; ARM GAS /tmp/cc8UBTH4.s page 26 1400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; 1403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferErrorCallback = UART_DMAError; 1406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART transmit DMA stream */ 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (const uint32_t *)&pData; 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Siz 1413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to ready */ 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the TC flag in the SR register by writing 0 to it */ 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_FLAG(huart, UART_FLAG_TC); 1424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for transmit request by setting the DMAT bit 1426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 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 **** 1437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in DMA mode. 1439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M1- 1440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of u16. In this case, Size must indicate the numb 1441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of u16 available through pData. 1442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 1445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 1446: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. 1447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; ARM GAS /tmp/cc8UBTH4.s page 27 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 **** /* Set Reception type to Standard reception */ 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (UART_Start_Receive_DMA(huart, pData, Size)); 1463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Pauses the DMA Transfer. 1472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart) 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request */ 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request */ 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Resumes the DMA Transfer. 1503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart) 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 1511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Tx request */ 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); ARM GAS /tmp/cc8UBTH4.s page 28 1514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 1517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag before resuming the Rx transfer*/ 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 1520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Re-enable PE and ERR (Frame error, noise error, overrun error) interrupts */ 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 1523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 1525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 1527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART DMA Rx request */ 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Stops the DMA Transfer. 1537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 1538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 1539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart) 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 1544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 1545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** to call the HAL UART API under callbacks HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** when calling HAL_DMA_Abort() API the DMA TX/RX Transfer complete interrupt is generated 1547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** and the correspond call back is executed HAL_UART_TxCpltCallback() / HAL_UART_RxCpltCallback() 1548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 1553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream */ 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmatx); 1560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 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 **** /* Stop UART DMA Rx request if ongoing */ 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 1567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ ARM GAS /tmp/cc8UBTH4.s page 29 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_DMA_Abort(huart->hdmarx); 1574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 1576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receive an amount of data in blocking mode till either the expected number of data is re 1583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note HAL_OK is returned if reception is completed (expected number of data has been received 1584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * or if reception is stopped after IDLE event (less than the expected number of data has 1585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * In this case, RxLen output parameter indicates number of data available in reception bu 1586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param RxLen Number of data elements finally received (could be lower than Size, in case rece 1593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration expressed in ms (covers the whole reception sequence). 1594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size 1597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Timeout) 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart; 1602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init tickstart for timeout management */ 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tickstart = HAL_GetTick(); 1618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */ 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 1624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = NULL; 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 30 1628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = pData; 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = NULL; 1632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize output number of received elements */ 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen = 0U; 1636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* as long as data have to be received */ 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while (huart->RxXferCount > 0U) 1639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if IDLE flag is set */ 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) 1642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear IDLE flag in ISR */ 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 1645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Set, but no data ever received, clear flag without exiting loop */ 1647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Set, and data has already been received, this means Idle Event is valid : End recepti 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (*RxLen > 0U) 1649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_IDLE; 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** /* Check if RXNE flag is set */ 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)) 1659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (pdata8bits == NULL) 1661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WO 1668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); 1670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 1674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Increment number of received elements */ 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen += 1U; 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 1681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */ 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) ARM GAS /tmp/cc8UBTH4.s page 31 1685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 1687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set number of received elements in output parameter : RxLen */ 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *RxLen = huart->RxXferSize - huart->RxXferCount; 1697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** * @brief Receive an amount of data in interrupt mode till either the expected number of data is r 1710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved 1711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * to UART interrupts raised by RXNE and IDLE events. Callback is called at end of recepti 1712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * number of received data elements. 1713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t S 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 1724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to reception till IDLE Event*/ 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = UART_Start_Receive_IT(huart, pData, Size); 1738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check Rx process has been successfully started */ 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (status == HAL_OK) 1741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 32 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 1746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of errors already pending when reception is started, 1750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Interrupts may have already been raised and lead to reception abortion. 1751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (Overrun error for instance). 1752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 1754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 1758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receive an amount of data in DMA mode till either the expected number of data is receive 1767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note Reception is initiated by this function call. Further progress of reception is achieved 1768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * to DMA services, transferring automatically received data elements in user reception bu 1769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * calling registered callbacks at half/end of reception. UART IDLE events are also used t 1770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * reception phase as ended. In all cases, callback execution will indicate number of rece 1771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When the UART parity is enabled (PCE = 1), the received data contain 1772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the parity bit (MSB position). 1773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When UART parity is not enabled (PCE = 0), and Word Length is configured to 9 bits (M = 1774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the received data is handled as a set of uint16_t. In this case, Size must indicate the 1775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of uint16_t available through pData. 1776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (uint8_t or uint16_t data elements). 1778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (uint8_t or uint16_t) to be received. 1779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 1784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_READY) 1787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((pData == NULL) || (Size == 0U)) 1789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 1791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set Reception type to reception till IDLE Event*/ 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = UART_Start_Receive_DMA(huart, pData, Size); 1798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 33 1799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check Rx process has been successfully started */ 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 1804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of errors already pending when reception is started, 1808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Interrupts may have already been raised and lead to reception abortion. 1809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (Overrun error for instance). 1810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In such case Reception Type has been reset to HAL_UART_RECEPTION_STANDARD. */ 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** status = HAL_ERROR; 1812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return status; 1815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 1817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 1819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Provide Rx Event type that has lead to RxEvent callback execution. 1824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When HAL_UARTEx_ReceiveToIdle_IT() or HAL_UARTEx_ReceiveToIdle_DMA() API are called, pro 1825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * of reception process is provided to application through calls of Rx Event callback (eith 1826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UARTEx_RxEventCallback() or user registered one). As several types of events could o 1827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Half Transfer, or Transfer Complete), this function allows to retrieve the Rx Event type 1828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * to Rx Event callback execution. 1829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This function is expected to be called within the user implementation of Rx Event Callba 1830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * in order to provide the accurate value : 1831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * In Interrupt Mode : 1832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has be 1833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed 1834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * received data is lower than expected one) 1835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * In DMA Mode : 1836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - HAL_UART_RXEVENT_TC : when Reception has been completed (expected nb of data has be 1837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - HAL_UART_RXEVENT_HT : when half of expected nb of data has been received 1838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - HAL_UART_RXEVENT_IDLE : when Idle event occurred prior reception has been completed 1839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * received data is lower than expected one). 1840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * In DMA mode, RxEvent callback could be called several times; 1841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * When DMA is configured in Normal Mode, HT event does not stop Reception process; 1842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * When DMA is configured in Circular Mode, HT, TC or IDLE events don't stop Reception proc 1843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval Rx Event Type (returned value will be a value of @ref UART_RxEvent_Type_Values) 1845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxEventTypeTypeDef HAL_UARTEx_GetRxEventType(UART_HandleTypeDef *huart) 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return Rx Event type value, as stored in UART handle */ 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return(huart->RxEventType); 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (blocking mode). 1854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or ARM GAS /tmp/cc8UBTH4.s page 34 1856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 1858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart) 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USA 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 1869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 1872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 1874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream: use blocking DMA Abort API (no callback) */ 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 1903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 1905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream: use blocking DMA Abort API (no callback) */ 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 1908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 1912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 35 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 1914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 1916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 1929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 1932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState and huart->gState to Ready */ 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 1942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (blocking mode). 1943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 1945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 1947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 1949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 1950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 1951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 1952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 1953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart) 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 1957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 1960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 1962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 1965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 1967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 1969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 36 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmatx) != HAL_OK) 1971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmatx) == HAL_DMA_ERROR_TIMEOUT) 1973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 1976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 1978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 1985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 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 Abort ongoing Receive transfer (blocking mode). 1994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 1995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 1996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 1997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 1998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 1999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Abort DMA transfer by calling HAL_DMA_Abort (in case of transfer in DMA mode) 2000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in blocking mode : when exiting function, Abort is considere 2002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart) 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 2014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback to Null. 2025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** No call back execution at end of DMA abort procedure */ 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/cc8UBTH4.s page 37 2027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort(huart->hdmarx) != HAL_OK) 2029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_GetError(huart->hdmarx) == HAL_DMA_ERROR_TIMEOUT) 2031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 2034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 2036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 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 **** } 2040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing transfers (Interrupt mode). 2053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing transfer started in Interrupt or 2055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx and Rx) 2057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2058: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) 2059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart) 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 2068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USA 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 2077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2079: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 2080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** before any call to DMA Abort functions */ 2081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Tx Handle is valid */ 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 38 2084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Tx request if enabled. 2085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 2087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback; 2089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 2093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Rx Handle is valid */ 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set DMA Abort Complete callback if UART DMA Rx request if enabled. 2099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, set it to NULL */ 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback; 2103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 2107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 2112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable DMA Tx at UART level */ 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use non blocking DMA Abort API (callback) */ 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Tx DMA Abort callback has already been initialised : 2120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 2124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 2126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 2130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use non blocking DMA Abort API (callback) */ 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) ARM GAS /tmp/cc8UBTH4.s page 39 2141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART Rx DMA Abort callback has already been initialised : 2143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 2150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x00U; 2154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* if no DMA abort complete callback execution is required => call user Abort Complete callback * 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (AbortCplt == 0x01U) 2160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx and Rx transfer counters */ 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 2176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 2177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 2180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 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 **** return HAL_OK; 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Transmit transfer (Interrupt mode). 2188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Tx transfer started in Interrupt 2190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Tx) 2192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2193: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) 2194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex ARM GAS /tmp/cc8UBTH4.s page 40 2198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart) 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 2204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Tx request if enabled */ 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) 2207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 2209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Tx stream : use blocking DMA Abort API (no callback) */ 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 2212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = UART_DMATxOnlyAbortCallback; 2216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA TX */ 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK) 2219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmatx->XferAbortCallback function in case of error */ 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback(huart->hdmatx); 2222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 2239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 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 **** else 2243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Tx transfer counter */ 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 2246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 2253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 2254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else ARM GAS /tmp/cc8UBTH4.s page 41 2255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 2257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 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 **** return HAL_OK; 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Abort ongoing Receive transfer (Interrupt mode). 2265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure could be used for aborting any ongoing Rx transfer started in Interrupt 2267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * This procedure performs following operations : 2268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable UART Interrupts (Rx) 2269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Disable the DMA transfer in the peripheral register (if enabled) 2270: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) 2271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - Set handle State to READY 2272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * - At abort completion, call user abort complete callback 2273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This procedure is executed in Interrupt mode, meaning that abort procedure could be 2274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * considered as completed only when user abort complete callback is executed (not when ex 2275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart) 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */ 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE)); 2287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream : use blocking DMA Abort API (no callback) */ 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */ 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMARxOnlyAbortCallback; 2300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort DMA RX */ 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 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 **** else 2309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; ARM GAS /tmp/cc8UBTH4.s page 42 2312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 2324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset Rx transfer counter */ 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 2331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* As no DMA to be aborted, call directly user Abort complete callback */ 2337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 2339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 2340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 2343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART interrupt request. 2351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If no error occurs */ 2364: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)); 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 2366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -------------------------------------------------*/ 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) ARM GAS /tmp/cc8UBTH4.s page 43 2369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If some errors occur */ 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 2378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART parity error interrupt occurred ----------------------------------*/ 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET)) 2381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_PE; 2383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART noise error interrupt occurred -----------------------------------*/ 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 2387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_NE; 2389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART frame error interrupt occurred -----------------------------------*/ 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET)) 2393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_FE; 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 **** /* UART Over-Run interrupt occurred --------------------------------------*/ 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 2400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_ORE; 2402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call UART Error Call back function if need be --------------------------*/ 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ErrorCode != HAL_UART_ERROR_NONE) 2406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Receiver -----------------------------------------------*/ 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) 2409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Receive_IT(huart); 2411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Overrun error occurs, or if any error occurs in DMA mode reception, 2414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** consider error as blocking */ 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 2417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Blocking error : transfer is aborted 2419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, 2420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 2422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART DMA Rx request if enabled */ 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 44 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Abort the UART DMA Rx stream */ 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 2430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Abort callback : 2432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 2435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call Directly XferAbortCallback function in case of error */ 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback(huart->hdmarx); 2438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user error callback */ 2455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Non Blocking error : transfer could go on. 2467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Error is notified to user through user error callback */ 2468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 2470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 2471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 2474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 2477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 2481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : ARM GAS /tmp/cc8UBTH4.s page 45 2483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((cr1its & USART_CR1_IDLEIE) != 0U)) 2487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 2489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if DMA mode is enabled in UART */ 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 2492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA mode enabled */ 2494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing, 2495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (DMA cplt callback will be called). 2496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx); 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 2500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reception is not complete */ 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = nb_remaining_rx_data; 2503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In Normal mode, end DMA xfer and HAL UART Rx process*/ 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->Init.Mode != DMA_CIRCULAR) 2506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by resetting the DMAR bit 2512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 2514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 2520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Last bytes received, so no need as the abort is immediate */ 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (void)HAL_DMA_Abort(huart->hdmarx); 2523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent that correspond to RxEvent callback execution; 2526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In this case, Rx Event type is Idle Event */ 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_IDLE; 2528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 2531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 2532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount)); 2535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If DMA is in Circular mode, Idle event is to be reported to user ARM GAS /tmp/cc8UBTH4.s page 46 2540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** even if occurring after a Transfer Complete event from DMA */ 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (nb_remaining_rx_data == huart->RxXferSize) 2542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->Init.Mode == DMA_CIRCULAR) 2544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent that correspond to RxEvent callback execution; 2546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In this case, Rx Event type is Idle Event */ 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_IDLE; 2548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 2551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 2552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 2555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 2556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 2562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA mode not enabled */ 2564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check received length : If all expected data are received, do nothing. 2565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Otherwise, if at least one data has already been received, IDLE event is to be notified to 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount; 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 2569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt and RXNE interrupts */ 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 2572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 2579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 2581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent that correspond to RxEvent callback execution; 2583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In this case, Rx Event type is Idle Event */ 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_IDLE; 2585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 2588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, nb_rx_data); 2589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 2590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, nb_rx_data); 2592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 2593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 47 2597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter ------------------------------------------------*/ 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET)) 2600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_Transmit_IT(huart); 2602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* UART in mode Transmitter end --------------------------------------------*/ 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET)) 2607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTransmit_IT(huart); 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 2610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Transfer completed callbacks. 2615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxCpltCallback could be implemented in the user file 2625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Tx Half Transfer completed callbacks. 2630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_TxHalfCpltCallback could be implemented in the user file 2640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Transfer completed callbacks. 2645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, ARM GAS /tmp/cc8UBTH4.s page 48 2654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxCpltCallback could be implemented in the user file 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 **** /** 2659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Rx Half Transfer completed callbacks. 2660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_RxHalfCpltCallback could be implemented in the user file 2670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART error callbacks. 2675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 2684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_ErrorCallback could be implemented in the user file 2685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortCpltCallback can be implemented in the user file. 2700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Complete callback. 2705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/cc8UBTH4.s page 49 2711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortTransmitCpltCallback can be implemented in the user file. 2715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART Abort Receive Complete callback. 2720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UART_AbortReceiveCpltCallback can be implemented in the user file. 2730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Reception Event Callback (Rx event notification called after use of advanced reception 2735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle 2736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Number of data available in application reception buffer (indicates a position in 2737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * reception buffer until which, data are available) 2738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 2739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(huart); 2744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(Size); 2745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE : This function should not be modified, when the callback is needed, 2747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** the HAL_UARTEx_RxEventCallback can be implemented in the user file. 2748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group3 Peripheral Control functions 2756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART control functions 2757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral Control functions ##### 2761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] 2763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to control the UART: 2764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_LIN_SendBreak() API can be helpful to transmit the break character. 2765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_EnterMuteMode() API can be helpful to enter the UART in mute mode. 2766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_MultiProcessor_ExitMuteMode() API can be helpful to exit the UART mute mode by software 2767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableTransmitter() API to enable the UART transmitter and disables the UART ARM GAS /tmp/cc8UBTH4.s page 50 2768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_HalfDuplex_EnableReceiver() API to enable the UART receiver and disables the UART trans 2769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Transmits break characters. 2776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart) 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Send break characters */ 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_SBK); 2792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enters the UART in mute mode. 2803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart) 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the USART mute mode by setting the RWU bit in the CR1 register */ 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_RWU); 2819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 2822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); ARM GAS /tmp/cc8UBTH4.s page 51 2825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Exits the UART mute mode: wake up software. 2831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_MultiProcessor_ExitMuteMode(UART_HandleTypeDef *huart) 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_INSTANCE(huart->Instance)); 2839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */ 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_RWU); 2847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 2850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART transmitter and disables the UART receiver. 2859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart) 2864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 2866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 2874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 2877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2878: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 */ 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_TE; 2880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ ARM GAS /tmp/cc8UBTH4.s page 52 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 2883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 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 **** /** 2893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Enables the UART receiver and disables the UART transmitter. 2894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 2897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart) 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 2901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Locked */ 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_LOCK(huart); 2904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY; 2906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = huart->Instance->CR1; 2909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear TE and RE bits */ 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_TE | USART_CR1_RE)); 2912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2913: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 */ 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg |= (uint32_t)USART_CR1_RE; 2915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Write to USART CR1 */ 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** WRITE_REG(huart->Instance->CR1, (uint32_t)tmpreg); 2918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 2920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 2923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Exported_Functions_Group4 Peripheral State and Errors functions 2932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief UART State and Errors functions 2933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * 2934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @verbatim 2935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ##### Peripheral State and Errors functions ##### 2937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ============================================================================== 2938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** [..] ARM GAS /tmp/cc8UBTH4.s page 53 2939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** This subsection provides a set of functions allowing to return the State of 2940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART communication process, return Peripheral Errors occurred during communication 2941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** process 2942: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 2943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** (+) HAL_UART_GetError() check in run-time errors that could be occurred during communication. 2944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** @endverbatim 2946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Returns the UART state. 2951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 2953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL state 2954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_StateTypeDef HAL_UART_GetState(const UART_HandleTypeDef *huart) 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 2960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return (HAL_UART_StateTypeDef)(temp1 | temp2); 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 **** /** 2965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Return the UART error code 2966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 2967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART. 2968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval UART Error Code 2969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t HAL_UART_GetError(const UART_HandleTypeDef *huart) 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @} 2981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** @defgroup UART_Private_Functions UART Private Functions 2984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @{ 2985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 2988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Initialize the callbacks to their default values. 2989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 2990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval none 2991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 2992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart) 2994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Init the UART Callback settings */ ARM GAS /tmp/cc8UBTH4.s page 54 2996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback = HAL_UART_TxHalfCpltCallback; /* Legacy weak TxHalfCpltC 2997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback = HAL_UART_TxCpltCallback; /* Legacy weak TxCpltCallb 2998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback = HAL_UART_RxHalfCpltCallback; /* Legacy weak RxHalfCpltC 2999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback = HAL_UART_RxCpltCallback; /* Legacy weak RxCpltCallb 3000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback = HAL_UART_ErrorCallback; /* Legacy weak ErrorCallba 3001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback = HAL_UART_AbortCpltCallback; /* Legacy weak AbortCpltCa 3002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback = HAL_UART_AbortTransmitCpltCallback; /* Legacy weak AbortTransm 3003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback = HAL_UART_AbortReceiveCpltCallback; /* Legacy weak AbortReceiv 3004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback = HAL_UARTEx_RxEventCallback; /* Legacy weak RxEventCall 3005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process complete callback. 3011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 3020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for transmit request by setting the DMAT bit 3024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); 3026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); 3029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Circular mode */ 3032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); 3037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 3040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART transmit process half complete callback 3046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; ARM GAS /tmp/cc8UBTH4.s page 55 3053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxHalfCpltCallback(huart); 3057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxHalfCpltCallback(huart); 3060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process complete callback. 3065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) == 0U) 3075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0U; 3077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the DMA transfer for the receiver request by setting the DMAR bit 3083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); 3085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* If Reception till IDLE event has been selected, Disable IDLE Interrupt */ 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 3093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent that correspond to RxEvent callback execution; 3097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In this case, Rx Event type is Transfer Complete */ 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 3099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 3107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); ARM GAS /tmp/cc8UBTH4.s page 56 3110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In other cases : use Rx Complete callback */ 3115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 3121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART receive process half complete callback 3127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) 3132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent that correspond to RxEvent callback execution; 3136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** In this case, Rx Event type is Half Transfer */ 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_HT; 3138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : use Rx Event callback */ 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize / 2U); 3146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize / 2U); 3149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In other cases : use Rx Half Complete callback */ 3154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Half complete callback*/ 3156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxHalfCpltCallback(huart); 3157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Half complete callback*/ 3159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxHalfCpltCallback(huart); 3160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication error callback. 3166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains ARM GAS /tmp/cc8UBTH4.s page 57 3167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAError(DMA_HandleTypeDef *hdma) 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Tx request if ongoing */ 3176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT); 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 3178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 3181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Stop UART DMA Rx request if ongoing */ 3184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** dmarequest = HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR); 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 3186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode |= HAL_UART_ERROR_DMA; 3192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 3194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 3195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 3198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief This function handles UART Communication Timeout. It waits 3203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * until a flag is no longer in the specified status. 3204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Flag specifies the UART flag to check. 3207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Status The actual Flag status (SET or RESET). 3208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Tickstart Tick start value 3209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Timeout Timeout duration 3210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, Flag 3213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t Tickstart, uint32_t Timeout) 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) 3217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check for the Timeout */ 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (Timeout != HAL_MAX_DELAY) 3220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 3222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 58 3224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_TIMEOUT; 3225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U) && (Flag != UART_FLAG_TXE) && (Flag 3228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE) == SET) 3230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear Overrun Error flag*/ 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 3233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Blocking error : transfer is aborted 3235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the UART state ready to be able to start again the process, 3236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Disable Rx Interrupts if ongoing */ 3237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 3238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_ORE; 3240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Process Unlocked */ 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UNLOCK(huart); 3243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 3245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Start Receive operation in interrupt mode. 3254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in Interrupt mode 3255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 3268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 3271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 3273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_PE); 3276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_ERR); 3280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 59 3281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Data Register not empty Interrupt */ 3282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE); 3283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Start Receive operation in DMA mode. 3289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note This function could be called by all HAL UART API providing reception in DMA mode. 3290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @note When calling this function, parameters validity is considered as already checked, 3291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * i.e. Rx State, buffer address, ... 3292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * UART Handle is assumed as Locked. 3293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param pData Pointer to data buffer (u8 or u16 data elements). 3295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param Size Amount of data elements (u8 or u16) to be received. 3296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef UART_Start_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 3301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 3304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 3307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA transfer complete callback */ 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; 3310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the UART DMA Half transfer complete callback */ 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; 3313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA error callback */ 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferErrorCallback = UART_DMAError; 3316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set the DMA abort callback */ 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 3319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA stream */ 3321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (uint32_t *)&pData; 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size) != HA 3323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set error code to DMA */ 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_DMA; 3326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to ready */ 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_ERROR; 3331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear the Overrun flag just before enabling the DMA Rx request: can be mandatory for the secon 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_OREFLAG(huart); 3334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.Parity != UART_PARITY_NONE) 3336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Parity Error Interrupt */ ARM GAS /tmp/cc8UBTH4.s page 60 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); 3339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_EIE); 3343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the DMA transfer for the receiver request by setting the DMAR bit 3345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** in the UART CR3 register */ 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); 3347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit compl 3353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndTxTransfer(UART_HandleTypeDef *huart) 3357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 28 .loc 1 3357 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 33 .LVL0: 34 .L2: 3358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); 35 .loc 1 3359 3 discriminator 1 view .LVU1 36 .LBB310: 37 .loc 1 3359 3 discriminator 1 view .LVU2 38 .loc 1 3359 3 discriminator 1 view .LVU3 39 .loc 1 3359 3 discriminator 1 view .LVU4 40 0000 0268 ldr r2, [r0] 41 .LVL1: 42 .LBB311: 43 .LBI311: 44 .file 2 "Drivers/CMSIS/Include/cmsis_gcc.h" 1:Drivers/CMSIS/Include/cmsis_gcc.h **** /**************************************************************************//** 2:Drivers/CMSIS/Include/cmsis_gcc.h **** * @file cmsis_gcc.h 3:Drivers/CMSIS/Include/cmsis_gcc.h **** * @brief CMSIS compiler GCC header file 4:Drivers/CMSIS/Include/cmsis_gcc.h **** * @version V5.4.1 5:Drivers/CMSIS/Include/cmsis_gcc.h **** * @date 27. May 2021 6:Drivers/CMSIS/Include/cmsis_gcc.h **** ******************************************************************************/ 7:Drivers/CMSIS/Include/cmsis_gcc.h **** /* 8:Drivers/CMSIS/Include/cmsis_gcc.h **** * Copyright (c) 2009-2021 Arm Limited. All rights reserved. 9:Drivers/CMSIS/Include/cmsis_gcc.h **** * 10:Drivers/CMSIS/Include/cmsis_gcc.h **** * SPDX-License-Identifier: Apache-2.0 11:Drivers/CMSIS/Include/cmsis_gcc.h **** * 12:Drivers/CMSIS/Include/cmsis_gcc.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Drivers/CMSIS/Include/cmsis_gcc.h **** * not use this file except in compliance with the License. 14:Drivers/CMSIS/Include/cmsis_gcc.h **** * You may obtain a copy of the License at 15:Drivers/CMSIS/Include/cmsis_gcc.h **** * 16:Drivers/CMSIS/Include/cmsis_gcc.h **** * www.apache.org/licenses/LICENSE-2.0 17:Drivers/CMSIS/Include/cmsis_gcc.h **** * 18:Drivers/CMSIS/Include/cmsis_gcc.h **** * Unless required by applicable law or agreed to in writing, software ARM GAS /tmp/cc8UBTH4.s page 61 19:Drivers/CMSIS/Include/cmsis_gcc.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Drivers/CMSIS/Include/cmsis_gcc.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Drivers/CMSIS/Include/cmsis_gcc.h **** * See the License for the specific language governing permissions and 22:Drivers/CMSIS/Include/cmsis_gcc.h **** * limitations under the License. 23:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 24:Drivers/CMSIS/Include/cmsis_gcc.h **** 25:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __CMSIS_GCC_H 26:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_H 27:Drivers/CMSIS/Include/cmsis_gcc.h **** 28:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ignore some GCC warnings */ 29:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 30:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 31:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wconversion" 32:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 33:Drivers/CMSIS/Include/cmsis_gcc.h **** 34:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Fallback for __has_builtin */ 35:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __has_builtin 36:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __has_builtin(x) (0) 37:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 38:Drivers/CMSIS/Include/cmsis_gcc.h **** 39:Drivers/CMSIS/Include/cmsis_gcc.h **** /* CMSIS compiler specific defines */ 40:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ASM 41:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ASM __asm 42:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 43:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INLINE 44:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INLINE inline 45:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 46:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_INLINE 47:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_INLINE static inline 48:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 49:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STATIC_FORCEINLINE 50:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline 51:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 52:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __NO_RETURN 53:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NO_RETURN __attribute__((__noreturn__)) 54:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 55:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __USED 56:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __USED __attribute__((used)) 57:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 58:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __WEAK 59:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WEAK __attribute__((weak)) 60:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 61:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED 62:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED __attribute__((packed, aligned(1))) 63:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 64:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_STRUCT 65:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) 66:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 67:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PACKED_UNION 68:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PACKED_UNION union __attribute__((packed, aligned(1))) 69:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 70:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32 /* deprecated */ 71:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 72:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 73:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 74:Drivers/CMSIS/Include/cmsis_gcc.h **** struct __attribute__((packed)) T_UINT32 { uint32_t v; }; 75:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop ARM GAS /tmp/cc8UBTH4.s page 62 76:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) 77:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 78:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_WRITE 79:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 80:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 81:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 82:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; 83:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 84:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))- 85:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 86:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT16_READ 87:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 88:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 89:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 90:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; 91:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 92:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(add 93:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 94:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_WRITE 95:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 96:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 97:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 98:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; 99:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 100:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))- 101:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 102:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __UNALIGNED_UINT32_READ 103:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic push 104:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wpacked" 105:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic ignored "-Wattributes" 106:Drivers/CMSIS/Include/cmsis_gcc.h **** __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; 107:Drivers/CMSIS/Include/cmsis_gcc.h **** #pragma GCC diagnostic pop 108:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(add 109:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 110:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __ALIGNED 111:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 112:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 113:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __RESTRICT 114:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __RESTRICT __restrict 115:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 116:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __COMPILER_BARRIER 117:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __COMPILER_BARRIER() __ASM volatile("":::"memory") 118:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 119:Drivers/CMSIS/Include/cmsis_gcc.h **** 120:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ######################### Startup and Lowlevel Init ######################## */ 121:Drivers/CMSIS/Include/cmsis_gcc.h **** 122:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __PROGRAM_START 123:Drivers/CMSIS/Include/cmsis_gcc.h **** 124:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 125:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Initializes data and bss sections 126:Drivers/CMSIS/Include/cmsis_gcc.h **** \details This default implementations initialized all data and additional bss 127:Drivers/CMSIS/Include/cmsis_gcc.h **** sections relying on .copy.table and .zero.table specified properly 128:Drivers/CMSIS/Include/cmsis_gcc.h **** in the used linker script. 129:Drivers/CMSIS/Include/cmsis_gcc.h **** 130:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 131:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) 132:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS /tmp/cc8UBTH4.s page 63 133:Drivers/CMSIS/Include/cmsis_gcc.h **** extern void _start(void) __NO_RETURN; 134:Drivers/CMSIS/Include/cmsis_gcc.h **** 135:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { 136:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t const* src; 137:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; 138:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; 139:Drivers/CMSIS/Include/cmsis_gcc.h **** } __copy_table_t; 140:Drivers/CMSIS/Include/cmsis_gcc.h **** 141:Drivers/CMSIS/Include/cmsis_gcc.h **** typedef struct { 142:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t* dest; 143:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t wlen; 144:Drivers/CMSIS/Include/cmsis_gcc.h **** } __zero_table_t; 145:Drivers/CMSIS/Include/cmsis_gcc.h **** 146:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_start__; 147:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __copy_table_t __copy_table_end__; 148:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_start__; 149:Drivers/CMSIS/Include/cmsis_gcc.h **** extern const __zero_table_t __zero_table_end__; 150:Drivers/CMSIS/Include/cmsis_gcc.h **** 151:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable 152:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { 153:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = pTable->src[i]; 154:Drivers/CMSIS/Include/cmsis_gcc.h **** } 155:Drivers/CMSIS/Include/cmsis_gcc.h **** } 156:Drivers/CMSIS/Include/cmsis_gcc.h **** 157:Drivers/CMSIS/Include/cmsis_gcc.h **** for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable 158:Drivers/CMSIS/Include/cmsis_gcc.h **** for(uint32_t i=0u; iwlen; ++i) { 159:Drivers/CMSIS/Include/cmsis_gcc.h **** pTable->dest[i] = 0u; 160:Drivers/CMSIS/Include/cmsis_gcc.h **** } 161:Drivers/CMSIS/Include/cmsis_gcc.h **** } 162:Drivers/CMSIS/Include/cmsis_gcc.h **** 163:Drivers/CMSIS/Include/cmsis_gcc.h **** _start(); 164:Drivers/CMSIS/Include/cmsis_gcc.h **** } 165:Drivers/CMSIS/Include/cmsis_gcc.h **** 166:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __PROGRAM_START __cmsis_start 167:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 168:Drivers/CMSIS/Include/cmsis_gcc.h **** 169:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __INITIAL_SP 170:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __INITIAL_SP __StackTop 171:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 172:Drivers/CMSIS/Include/cmsis_gcc.h **** 173:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_LIMIT 174:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_LIMIT __StackLimit 175:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 176:Drivers/CMSIS/Include/cmsis_gcc.h **** 177:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE 178:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE __Vectors 179:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 180:Drivers/CMSIS/Include/cmsis_gcc.h **** 181:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __VECTOR_TABLE_ATTRIBUTE 182:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __VECTOR_TABLE_ATTRIBUTE __attribute__((used, section(".vectors"))) 183:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 184:Drivers/CMSIS/Include/cmsis_gcc.h **** 185:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U) 186:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __STACK_SEAL 187:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __STACK_SEAL __StackSeal 188:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 189:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc8UBTH4.s page 64 190:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_SIZE 191:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_SIZE 8U 192:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 193:Drivers/CMSIS/Include/cmsis_gcc.h **** 194:Drivers/CMSIS/Include/cmsis_gcc.h **** #ifndef __TZ_STACK_SEAL_VALUE 195:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __TZ_STACK_SEAL_VALUE 0xFEF5EDA5FEF5EDA5ULL 196:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 197:Drivers/CMSIS/Include/cmsis_gcc.h **** 198:Drivers/CMSIS/Include/cmsis_gcc.h **** 199:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __TZ_set_STACKSEAL_S (uint32_t* stackTop) { 200:Drivers/CMSIS/Include/cmsis_gcc.h **** *((uint64_t *)stackTop) = __TZ_STACK_SEAL_VALUE; 201:Drivers/CMSIS/Include/cmsis_gcc.h **** } 202:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 203:Drivers/CMSIS/Include/cmsis_gcc.h **** 204:Drivers/CMSIS/Include/cmsis_gcc.h **** 205:Drivers/CMSIS/Include/cmsis_gcc.h **** /* ########################## Core Instruction Access ######################### */ 206:Drivers/CMSIS/Include/cmsis_gcc.h **** /** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface 207:Drivers/CMSIS/Include/cmsis_gcc.h **** Access to dedicated instructions 208:Drivers/CMSIS/Include/cmsis_gcc.h **** @{ 209:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 210:Drivers/CMSIS/Include/cmsis_gcc.h **** 211:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Define macros for porting to both thumb1 and thumb2. 212:Drivers/CMSIS/Include/cmsis_gcc.h **** * For thumb1, use low register (r0-r7), specified by constraint "l" 213:Drivers/CMSIS/Include/cmsis_gcc.h **** * Otherwise, use general registers, specified by constraint "r" */ 214:Drivers/CMSIS/Include/cmsis_gcc.h **** #if defined (__thumb__) && !defined (__thumb2__) 215:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=l" (r) 216:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+l" (r) 217:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "l" (r) 218:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 219:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_OUT_REG(r) "=r" (r) 220:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_RW_REG(r) "+r" (r) 221:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __CMSIS_GCC_USE_REG(r) "r" (r) 222:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 223:Drivers/CMSIS/Include/cmsis_gcc.h **** 224:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 225:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief No Operation 226:Drivers/CMSIS/Include/cmsis_gcc.h **** \details No Operation does nothing. This instruction can be used for code alignment purposes. 227:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 228:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __NOP() __ASM volatile ("nop") 229:Drivers/CMSIS/Include/cmsis_gcc.h **** 230:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 231:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Interrupt 232:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Interrupt is a hint instruction that suspends execution until one of a number o 233:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 234:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFI() __ASM volatile ("wfi":::"memory") 235:Drivers/CMSIS/Include/cmsis_gcc.h **** 236:Drivers/CMSIS/Include/cmsis_gcc.h **** 237:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 238:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Wait For Event 239:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Wait For Event is a hint instruction that permits the processor to enter 240:Drivers/CMSIS/Include/cmsis_gcc.h **** a low-power state until one of a number of events occurs. 241:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 242:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __WFE() __ASM volatile ("wfe":::"memory") 243:Drivers/CMSIS/Include/cmsis_gcc.h **** 244:Drivers/CMSIS/Include/cmsis_gcc.h **** 245:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 246:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Send Event ARM GAS /tmp/cc8UBTH4.s page 65 247:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. 248:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 249:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __SEV() __ASM volatile ("sev") 250:Drivers/CMSIS/Include/cmsis_gcc.h **** 251:Drivers/CMSIS/Include/cmsis_gcc.h **** 252:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 253:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Instruction Synchronization Barrier 254:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Instruction Synchronization Barrier flushes the pipeline in the processor, 255:Drivers/CMSIS/Include/cmsis_gcc.h **** so that all instructions following the ISB are fetched from cache or memory, 256:Drivers/CMSIS/Include/cmsis_gcc.h **** after the instruction has been completed. 257:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 258:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __ISB(void) 259:Drivers/CMSIS/Include/cmsis_gcc.h **** { 260:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("isb 0xF":::"memory"); 261:Drivers/CMSIS/Include/cmsis_gcc.h **** } 262:Drivers/CMSIS/Include/cmsis_gcc.h **** 263:Drivers/CMSIS/Include/cmsis_gcc.h **** 264:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 265:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Synchronization Barrier 266:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Acts as a special kind of Data Memory Barrier. 267:Drivers/CMSIS/Include/cmsis_gcc.h **** It completes when all explicit memory accesses before this instruction complete. 268:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 269:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DSB(void) 270:Drivers/CMSIS/Include/cmsis_gcc.h **** { 271:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dsb 0xF":::"memory"); 272:Drivers/CMSIS/Include/cmsis_gcc.h **** } 273:Drivers/CMSIS/Include/cmsis_gcc.h **** 274:Drivers/CMSIS/Include/cmsis_gcc.h **** 275:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 276:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Data Memory Barrier 277:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Ensures the apparent order of the explicit memory operations before 278:Drivers/CMSIS/Include/cmsis_gcc.h **** and after the instruction, without ensuring their completion. 279:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 280:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE void __DMB(void) 281:Drivers/CMSIS/Include/cmsis_gcc.h **** { 282:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("dmb 0xF":::"memory"); 283:Drivers/CMSIS/Include/cmsis_gcc.h **** } 284:Drivers/CMSIS/Include/cmsis_gcc.h **** 285:Drivers/CMSIS/Include/cmsis_gcc.h **** 286:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 287:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (32 bit) 288:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x785 289:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 290:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 291:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 292:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV(uint32_t value) 293:Drivers/CMSIS/Include/cmsis_gcc.h **** { 294:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 295:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_bswap32(value); 296:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 297:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 298:Drivers/CMSIS/Include/cmsis_gcc.h **** 299:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 300:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 301:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 302:Drivers/CMSIS/Include/cmsis_gcc.h **** } 303:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc8UBTH4.s page 66 304:Drivers/CMSIS/Include/cmsis_gcc.h **** 305:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 306:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 307:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 308:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 309:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 310:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 311:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) 312:Drivers/CMSIS/Include/cmsis_gcc.h **** { 313:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 314:Drivers/CMSIS/Include/cmsis_gcc.h **** 315:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 316:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 317:Drivers/CMSIS/Include/cmsis_gcc.h **** } 318:Drivers/CMSIS/Include/cmsis_gcc.h **** 319:Drivers/CMSIS/Include/cmsis_gcc.h **** 320:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 321:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse byte order (16 bit) 322:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For exam 323:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 324:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 325:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 326:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) 327:Drivers/CMSIS/Include/cmsis_gcc.h **** { 328:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 329:Drivers/CMSIS/Include/cmsis_gcc.h **** return (int16_t)__builtin_bswap16(value); 330:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 331:Drivers/CMSIS/Include/cmsis_gcc.h **** int16_t result; 332:Drivers/CMSIS/Include/cmsis_gcc.h **** 333:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); 334:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 335:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 336:Drivers/CMSIS/Include/cmsis_gcc.h **** } 337:Drivers/CMSIS/Include/cmsis_gcc.h **** 338:Drivers/CMSIS/Include/cmsis_gcc.h **** 339:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 340:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Rotate Right in unsigned value (32 bit) 341:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Rotate Right (immediate) provides the value of the contents of a register rotated by a v 342:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op1 Value to rotate 343:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] op2 Number of Bits to rotate 344:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Rotated value 345:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 346:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) 347:Drivers/CMSIS/Include/cmsis_gcc.h **** { 348:Drivers/CMSIS/Include/cmsis_gcc.h **** op2 %= 32U; 349:Drivers/CMSIS/Include/cmsis_gcc.h **** if (op2 == 0U) 350:Drivers/CMSIS/Include/cmsis_gcc.h **** { 351:Drivers/CMSIS/Include/cmsis_gcc.h **** return op1; 352:Drivers/CMSIS/Include/cmsis_gcc.h **** } 353:Drivers/CMSIS/Include/cmsis_gcc.h **** return (op1 >> op2) | (op1 << (32U - op2)); 354:Drivers/CMSIS/Include/cmsis_gcc.h **** } 355:Drivers/CMSIS/Include/cmsis_gcc.h **** 356:Drivers/CMSIS/Include/cmsis_gcc.h **** 357:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 358:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Breakpoint 359:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Causes the processor to enter Debug state. 360:Drivers/CMSIS/Include/cmsis_gcc.h **** Debug tools can use this to investigate system state when the instruction at a particula ARM GAS /tmp/cc8UBTH4.s page 67 361:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value is ignored by the processor. 362:Drivers/CMSIS/Include/cmsis_gcc.h **** If required, a debugger can use it to store additional information about the break 363:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 364:Drivers/CMSIS/Include/cmsis_gcc.h **** #define __BKPT(value) __ASM volatile ("bkpt "#value) 365:Drivers/CMSIS/Include/cmsis_gcc.h **** 366:Drivers/CMSIS/Include/cmsis_gcc.h **** 367:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 368:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Reverse bit order of value 369:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Reverses the bit order of the given value. 370:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to reverse 371:Drivers/CMSIS/Include/cmsis_gcc.h **** \return Reversed value 372:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 373:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) 374:Drivers/CMSIS/Include/cmsis_gcc.h **** { 375:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 376:Drivers/CMSIS/Include/cmsis_gcc.h **** 377:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 378:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 379:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) 380:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM ("rbit %0, %1" : "=r" (result) : "r" (value) ); 381:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 382:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ 383:Drivers/CMSIS/Include/cmsis_gcc.h **** 384:Drivers/CMSIS/Include/cmsis_gcc.h **** result = value; /* r will be reversed bits of v; first get LSB of v */ 385:Drivers/CMSIS/Include/cmsis_gcc.h **** for (value >>= 1U; value != 0U; value >>= 1U) 386:Drivers/CMSIS/Include/cmsis_gcc.h **** { 387:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= 1U; 388:Drivers/CMSIS/Include/cmsis_gcc.h **** result |= value & 1U; 389:Drivers/CMSIS/Include/cmsis_gcc.h **** s--; 390:Drivers/CMSIS/Include/cmsis_gcc.h **** } 391:Drivers/CMSIS/Include/cmsis_gcc.h **** result <<= s; /* shift when v's highest bits are zero */ 392:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 393:Drivers/CMSIS/Include/cmsis_gcc.h **** return result; 394:Drivers/CMSIS/Include/cmsis_gcc.h **** } 395:Drivers/CMSIS/Include/cmsis_gcc.h **** 396:Drivers/CMSIS/Include/cmsis_gcc.h **** 397:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 398:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief Count leading zeros 399:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Counts the number of leading zeros of a data value. 400:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to count the leading zeros 401:Drivers/CMSIS/Include/cmsis_gcc.h **** \return number of leading zeros in value 402:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 403:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) 404:Drivers/CMSIS/Include/cmsis_gcc.h **** { 405:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Even though __builtin_clz produces a CLZ instruction on ARM, formally 406:Drivers/CMSIS/Include/cmsis_gcc.h **** __builtin_clz(0) is undefined behaviour, so handle this case specially. 407:Drivers/CMSIS/Include/cmsis_gcc.h **** This guarantees ARM-compatible results if happening to compile on a non-ARM 408:Drivers/CMSIS/Include/cmsis_gcc.h **** target, and ensures the compiler doesn't decide to activate any 409:Drivers/CMSIS/Include/cmsis_gcc.h **** optimisations using the logic "value was passed to __builtin_clz, so it 410:Drivers/CMSIS/Include/cmsis_gcc.h **** is non-zero". 411:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a 412:Drivers/CMSIS/Include/cmsis_gcc.h **** single CLZ instruction. 413:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 414:Drivers/CMSIS/Include/cmsis_gcc.h **** if (value == 0U) 415:Drivers/CMSIS/Include/cmsis_gcc.h **** { 416:Drivers/CMSIS/Include/cmsis_gcc.h **** return 32U; 417:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS /tmp/cc8UBTH4.s page 68 418:Drivers/CMSIS/Include/cmsis_gcc.h **** return __builtin_clz(value); 419:Drivers/CMSIS/Include/cmsis_gcc.h **** } 420:Drivers/CMSIS/Include/cmsis_gcc.h **** 421:Drivers/CMSIS/Include/cmsis_gcc.h **** 422:Drivers/CMSIS/Include/cmsis_gcc.h **** #if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ 423:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ 424:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ 425:Drivers/CMSIS/Include/cmsis_gcc.h **** (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) 426:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 427:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (8 bit) 428:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 8 bit value. 429:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 430:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint8_t at (*ptr) 431:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 432:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) 433:Drivers/CMSIS/Include/cmsis_gcc.h **** { 434:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 435:Drivers/CMSIS/Include/cmsis_gcc.h **** 436:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 437:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); 438:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 439:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not 440:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. 441:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 442:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); 443:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 444:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint8_t) result); /* Add explicit type cast here */ 445:Drivers/CMSIS/Include/cmsis_gcc.h **** } 446:Drivers/CMSIS/Include/cmsis_gcc.h **** 447:Drivers/CMSIS/Include/cmsis_gcc.h **** 448:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 449:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (16 bit) 450:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 16 bit values. 451:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 452:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint16_t at (*ptr) 453:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 454:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) 455:Drivers/CMSIS/Include/cmsis_gcc.h **** { 456:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 457:Drivers/CMSIS/Include/cmsis_gcc.h **** 458:Drivers/CMSIS/Include/cmsis_gcc.h **** #if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) 459:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); 460:Drivers/CMSIS/Include/cmsis_gcc.h **** #else 461:Drivers/CMSIS/Include/cmsis_gcc.h **** /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not 462:Drivers/CMSIS/Include/cmsis_gcc.h **** accepted by assembler. So has to use following less efficient pattern. 463:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 464:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); 465:Drivers/CMSIS/Include/cmsis_gcc.h **** #endif 466:Drivers/CMSIS/Include/cmsis_gcc.h **** return ((uint16_t) result); /* Add explicit type cast here */ 467:Drivers/CMSIS/Include/cmsis_gcc.h **** } 468:Drivers/CMSIS/Include/cmsis_gcc.h **** 469:Drivers/CMSIS/Include/cmsis_gcc.h **** 470:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 471:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief LDR Exclusive (32 bit) 472:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive LDR instruction for 32 bit values. 473:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to data 474:Drivers/CMSIS/Include/cmsis_gcc.h **** \return value of type uint32_t at (*ptr) ARM GAS /tmp/cc8UBTH4.s page 69 475:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 476:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) 45 .loc 2 476 31 discriminator 1 view .LVU5 46 .LBB312: 477:Drivers/CMSIS/Include/cmsis_gcc.h **** { 478:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 47 .loc 2 478 5 discriminator 1 view .LVU6 479:Drivers/CMSIS/Include/cmsis_gcc.h **** 480:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); 48 .loc 2 480 4 discriminator 1 view .LVU7 49 0002 02F10C03 add r3, r2, #12 50 .LVL2: 51 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU8 52 .syntax unified 53 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 54 0006 53E8003F ldrex r3, [r3] 55 @ 0 "" 2 56 .LVL3: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 57 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU9 58 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU10 59 .thumb 60 .syntax unified 61 .LBE312: 62 .LBE311: 63 .loc 1 3359 3 discriminator 1 view .LVU11 64 000a 23F0C003 bic r3, r3, #192 65 .LVL4: 66 .loc 1 3359 3 is_stmt 1 discriminator 1 view .LVU12 67 .LBB313: 68 .LBI313: 482:Drivers/CMSIS/Include/cmsis_gcc.h **** } 483:Drivers/CMSIS/Include/cmsis_gcc.h **** 484:Drivers/CMSIS/Include/cmsis_gcc.h **** 485:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 486:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (8 bit) 487:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 8 bit values. 488:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 489:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location 490:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded 491:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 492:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 493:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) 494:Drivers/CMSIS/Include/cmsis_gcc.h **** { 495:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 496:Drivers/CMSIS/Include/cmsis_gcc.h **** 497:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); 498:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 499:Drivers/CMSIS/Include/cmsis_gcc.h **** } 500:Drivers/CMSIS/Include/cmsis_gcc.h **** 501:Drivers/CMSIS/Include/cmsis_gcc.h **** 502:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 503:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (16 bit) 504:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 16 bit values. 505:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 506:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location 507:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded ARM GAS /tmp/cc8UBTH4.s page 70 508:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 509:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 510:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) 511:Drivers/CMSIS/Include/cmsis_gcc.h **** { 512:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 513:Drivers/CMSIS/Include/cmsis_gcc.h **** 514:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); 515:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 516:Drivers/CMSIS/Include/cmsis_gcc.h **** } 517:Drivers/CMSIS/Include/cmsis_gcc.h **** 518:Drivers/CMSIS/Include/cmsis_gcc.h **** 519:Drivers/CMSIS/Include/cmsis_gcc.h **** /** 520:Drivers/CMSIS/Include/cmsis_gcc.h **** \brief STR Exclusive (32 bit) 521:Drivers/CMSIS/Include/cmsis_gcc.h **** \details Executes a exclusive STR instruction for 32 bit values. 522:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] value Value to store 523:Drivers/CMSIS/Include/cmsis_gcc.h **** \param [in] ptr Pointer to location 524:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 0 Function succeeded 525:Drivers/CMSIS/Include/cmsis_gcc.h **** \return 1 Function failed 526:Drivers/CMSIS/Include/cmsis_gcc.h **** */ 527:Drivers/CMSIS/Include/cmsis_gcc.h **** __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) 69 .loc 2 527 31 discriminator 1 view .LVU13 70 .LBB314: 528:Drivers/CMSIS/Include/cmsis_gcc.h **** { 529:Drivers/CMSIS/Include/cmsis_gcc.h **** uint32_t result; 71 .loc 2 529 4 discriminator 1 view .LVU14 530:Drivers/CMSIS/Include/cmsis_gcc.h **** 531:Drivers/CMSIS/Include/cmsis_gcc.h **** __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); 72 .loc 2 531 4 discriminator 1 view .LVU15 73 000e 0C32 adds r2, r2, #12 74 .LVL5: 75 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU16 76 .syntax unified 77 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 78 0010 42E80031 strex r1, r3, [r2] 79 @ 0 "" 2 80 .LVL6: 532:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 81 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU17 82 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU18 83 .thumb 84 .syntax unified 85 .LBE314: 86 .LBE313: 87 .loc 1 3359 3 discriminator 1 view .LVU19 88 0014 0029 cmp r1, #0 89 0016 F3D1 bne .L2 90 .LBE310: 91 .loc 1 3359 3 is_stmt 1 discriminator 2 view .LVU20 3360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Tx process, restore huart->gState to Ready */ 3362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 92 .loc 1 3362 3 discriminator 2 view .LVU21 93 .loc 1 3362 17 is_stmt 0 discriminator 2 view .LVU22 94 0018 2023 movs r3, #32 95 .LVL7: 96 .loc 1 3362 17 discriminator 2 view .LVU23 97 001a 80F84130 strb r3, [r0, #65] ARM GAS /tmp/cc8UBTH4.s page 71 3363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 98 .loc 1 3363 1 discriminator 2 view .LVU24 99 001e 7047 bx lr 100 .cfi_endproc 101 .LFE185: 103 .section .text.UART_EndRxTransfer,"ax",%progbits 104 .align 1 105 .syntax unified 106 .thumb 107 .thumb_func 108 .fpu fpv4-sp-d16 110 UART_EndRxTransfer: 111 .LFB186: 3364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception comp 3367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart UART handle. 3368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_EndRxTransfer(UART_HandleTypeDef *huart) 3371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 112 .loc 1 3371 1 is_stmt 1 view -0 113 .cfi_startproc 114 @ args = 0, pretend = 0, frame = 0 115 @ frame_needed = 0, uses_anonymous_args = 0 116 @ link register save eliminated. 117 .LVL8: 118 .L4: 3372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); 119 .loc 1 3373 3 discriminator 1 view .LVU26 120 .LBB315: 121 .loc 1 3373 3 discriminator 1 view .LVU27 122 .loc 1 3373 3 discriminator 1 view .LVU28 123 .loc 1 3373 3 discriminator 1 view .LVU29 124 0000 0268 ldr r2, [r0] 125 .LVL9: 126 .LBB316: 127 .LBI316: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 128 .loc 2 476 31 discriminator 1 view .LVU30 129 .LBB317: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 130 .loc 2 478 5 discriminator 1 view .LVU31 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 131 .loc 2 480 4 discriminator 1 view .LVU32 132 0002 02F10C03 add r3, r2, #12 133 .LVL10: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 134 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU33 135 .syntax unified 136 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 137 0006 53E8003F ldrex r3, [r3] 138 @ 0 "" 2 139 .LVL11: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 140 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU34 ARM GAS /tmp/cc8UBTH4.s page 72 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 141 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU35 142 .thumb 143 .syntax unified 144 .LBE317: 145 .LBE316: 146 .loc 1 3373 3 discriminator 1 view .LVU36 147 000a 23F49073 bic r3, r3, #288 148 .LVL12: 149 .loc 1 3373 3 is_stmt 1 discriminator 1 view .LVU37 150 .LBB318: 151 .LBI318: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 152 .loc 2 527 31 discriminator 1 view .LVU38 153 .LBB319: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 154 .loc 2 529 4 discriminator 1 view .LVU39 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 155 .loc 2 531 4 discriminator 1 view .LVU40 156 000e 0C32 adds r2, r2, #12 157 .LVL13: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 158 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU41 159 .syntax unified 160 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 161 0010 42E80031 strex r1, r3, [r2] 162 @ 0 "" 2 163 .LVL14: 164 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU42 165 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU43 166 .thumb 167 .syntax unified 168 .LBE319: 169 .LBE318: 170 .loc 1 3373 3 discriminator 1 view .LVU44 171 0014 0029 cmp r1, #0 172 0016 F3D1 bne .L4 173 .LVL15: 174 .L5: 175 .loc 1 3373 3 discriminator 1 view .LVU45 176 .LBE315: 177 .loc 1 3373 3 is_stmt 1 discriminator 1 view .LVU46 3374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 178 .loc 1 3374 3 discriminator 1 view .LVU47 179 .LBB320: 180 .loc 1 3374 3 discriminator 1 view .LVU48 181 .loc 1 3374 3 discriminator 1 view .LVU49 182 .loc 1 3374 3 discriminator 1 view .LVU50 183 0018 0268 ldr r2, [r0] 184 .LVL16: 185 .LBB321: 186 .LBI321: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 187 .loc 2 476 31 discriminator 1 view .LVU51 188 .LBB322: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 189 .loc 2 478 5 discriminator 1 view .LVU52 ARM GAS /tmp/cc8UBTH4.s page 73 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 190 .loc 2 480 4 discriminator 1 view .LVU53 191 001a 02F11403 add r3, r2, #20 192 .LVL17: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 193 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU54 194 .syntax unified 195 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 196 001e 53E8003F ldrex r3, [r3] 197 @ 0 "" 2 198 .LVL18: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 199 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU55 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 200 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU56 201 .thumb 202 .syntax unified 203 .LBE322: 204 .LBE321: 205 .loc 1 3374 3 discriminator 1 view .LVU57 206 0022 23F00103 bic r3, r3, #1 207 .LVL19: 208 .loc 1 3374 3 is_stmt 1 discriminator 1 view .LVU58 209 .LBB323: 210 .LBI323: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 211 .loc 2 527 31 discriminator 1 view .LVU59 212 .LBB324: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 213 .loc 2 529 4 discriminator 1 view .LVU60 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 214 .loc 2 531 4 discriminator 1 view .LVU61 215 0026 1432 adds r2, r2, #20 216 .LVL20: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 217 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU62 218 .syntax unified 219 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 220 0028 42E80031 strex r1, r3, [r2] 221 @ 0 "" 2 222 .LVL21: 223 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU63 224 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU64 225 .thumb 226 .syntax unified 227 .LBE324: 228 .LBE323: 229 .loc 1 3374 3 discriminator 1 view .LVU65 230 002c 0029 cmp r1, #0 231 002e F3D1 bne .L5 232 .LBE320: 233 .loc 1 3374 3 is_stmt 1 discriminator 2 view .LVU66 3375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */ 3377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 234 .loc 1 3377 3 discriminator 2 view .LVU67 235 .loc 1 3377 12 is_stmt 0 discriminator 2 view .LVU68 ARM GAS /tmp/cc8UBTH4.s page 74 236 0030 036B ldr r3, [r0, #48] 237 .LVL22: 238 .loc 1 3377 6 discriminator 2 view .LVU69 239 0032 012B cmp r3, #1 240 0034 05D0 beq .L7 241 .L6: 3378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 242 .loc 1 3379 5 is_stmt 1 discriminator 2 view .LVU70 3380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 243 .loc 1 3383 3 discriminator 2 view .LVU71 244 .loc 1 3383 18 is_stmt 0 discriminator 2 view .LVU72 245 0036 2023 movs r3, #32 246 0038 80F84230 strb r3, [r0, #66] 3384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 247 .loc 1 3384 3 is_stmt 1 discriminator 2 view .LVU73 248 .loc 1 3384 24 is_stmt 0 discriminator 2 view .LVU74 249 003c 0023 movs r3, #0 250 003e 0363 str r3, [r0, #48] 3385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 251 .loc 1 3385 1 discriminator 2 view .LVU75 252 0040 7047 bx lr 253 .L7: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 254 .loc 1 3379 5 is_stmt 1 discriminator 1 view .LVU76 255 .LBB325: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 256 .loc 1 3379 5 discriminator 1 view .LVU77 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 257 .loc 1 3379 5 discriminator 1 view .LVU78 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 258 .loc 1 3379 5 discriminator 1 view .LVU79 259 0042 0268 ldr r2, [r0] 260 .LVL23: 261 .LBB326: 262 .LBI326: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 263 .loc 2 476 31 discriminator 1 view .LVU80 264 .LBB327: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 265 .loc 2 478 5 discriminator 1 view .LVU81 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 266 .loc 2 480 4 discriminator 1 view .LVU82 267 0044 02F10C03 add r3, r2, #12 268 .LVL24: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 269 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU83 270 .syntax unified 271 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 272 0048 53E8003F ldrex r3, [r3] 273 @ 0 "" 2 274 .LVL25: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 275 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU84 ARM GAS /tmp/cc8UBTH4.s page 75 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 276 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU85 277 .thumb 278 .syntax unified 279 .LBE327: 280 .LBE326: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 281 .loc 1 3379 5 discriminator 1 view .LVU86 282 004c 23F01003 bic r3, r3, #16 283 .LVL26: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 284 .loc 1 3379 5 is_stmt 1 discriminator 1 view .LVU87 285 .LBB328: 286 .LBI328: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 287 .loc 2 527 31 discriminator 1 view .LVU88 288 .LBB329: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 289 .loc 2 529 4 discriminator 1 view .LVU89 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 290 .loc 2 531 4 discriminator 1 view .LVU90 291 0050 0C32 adds r2, r2, #12 292 .LVL27: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 293 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU91 294 .syntax unified 295 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 296 0052 42E80031 strex r1, r3, [r2] 297 @ 0 "" 2 298 .LVL28: 299 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU92 300 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU93 301 .thumb 302 .syntax unified 303 .LBE329: 304 .LBE328: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 305 .loc 1 3379 5 discriminator 1 view .LVU94 306 0056 0029 cmp r1, #0 307 0058 F3D1 bne .L7 308 005a ECE7 b .L6 309 .LBE325: 310 .cfi_endproc 311 .LFE186: 313 .section .text.UART_Transmit_IT,"ax",%progbits 314 .align 1 315 .syntax unified 316 .thumb 317 .thumb_func 318 .fpu fpv4-sp-d16 320 UART_Transmit_IT: 321 .LVL29: 322 .LFB192: 3386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART communication abort callback, when initiated by HAL services on Error 3389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Abort procedure following error occurrence). ARM GAS /tmp/cc8UBTH4.s page 76 3390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 3395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered error callback*/ 3401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCallback(huart); 3402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak error callback*/ 3404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_ErrorCallback(huart); 3405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user 3410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Tx Abort procedure following user abort request). 3411: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 3412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Rx DMA Handle. 3413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma) 3418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmatx->XferAbortCallback = NULL; 3422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx != NULL) 3425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmarx->XferAbortCallback != NULL) 3427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ ARM GAS /tmp/cc8UBTH4.s page 77 3447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 3451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user 3456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (To be called at end of DMA Rx Abort procedure following user abort request). 3457: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 3458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * Abort still ongoing for Tx DMA Handle. 3459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma) 3464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->hdmarx->XferAbortCallback = NULL; 3468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if an Abort process is still ongoing */ 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx != NULL) 3471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->hdmatx->XferAbortCallback != NULL) 3473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 3475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callba 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Reset ErrorCode */ 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ErrorCode = HAL_UART_ERROR_NONE; 3484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState and huart->RxState to Ready */ 3486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort complete callback */ 3493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort complete callback */ 3496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortCpltCallback(huart); 3497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Tx communication abort callback, when initiated by user by a call to 3502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortTransmit_IT API (Abort only Tx transfer) 3503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Tx Abort procedure following user abort reques ARM GAS /tmp/cc8UBTH4.s page 78 3504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Tx Abort Complete callback execution). 3505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = 0x00U; 3514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->gState to Ready */ 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Transmit Complete Callback */ 3521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortTransmitCpltCallback(huart); 3522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Transmit Complete Callback */ 3524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortTransmitCpltCallback(huart); 3525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief DMA UART Rx communication abort callback, when initiated by user by a call to 3530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * HAL_UART_AbortReceive_IT API (Abort only Rx transfer) 3531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * (This callback is executed at end of DMA Rx Abort procedure following user abort reques 3532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * and leads to user Rx Abort Complete callback execution). 3533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 3534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified DMA module. 3535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma) 3538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 3540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Restore huart->RxState to Ready */ 3544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call user Abort complete callback */ 3548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call registered Abort Receive Complete Callback */ 3550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortReceiveCpltCallback(huart); 3551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Call legacy weak Abort Receive Complete Callback */ 3553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_AbortReceiveCpltCallback(huart); 3554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Sends an amount of data in non blocking mode. 3559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. ARM GAS /tmp/cc8UBTH4.s page 79 3561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Transmit_IT(UART_HandleTypeDef *huart) 3564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 323 .loc 1 3564 1 is_stmt 1 view -0 324 .cfi_startproc 325 @ args = 0, pretend = 0, frame = 0 326 @ frame_needed = 0, uses_anonymous_args = 0 327 @ link register save eliminated. 3565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *tmp; 328 .loc 1 3565 3 view .LVU96 3566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is ongoing */ 3568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->gState == HAL_UART_STATE_BUSY_TX) 329 .loc 1 3568 3 view .LVU97 330 .loc 1 3568 12 is_stmt 0 view .LVU98 331 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 332 0004 DBB2 uxtb r3, r3 333 .loc 1 3568 6 view .LVU99 334 0006 212B cmp r3, #33 335 0008 01D0 beq .L14 3569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 3571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmp = (const uint16_t *) huart->pTxBuffPtr; 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 3575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint8_t)(*huart->pTxBuffPtr++ & (uint8_t)0x00FF); 3579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->TxXferCount == 0U) 3582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Data Register Empty Interrupt */ 3584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TXE); 3585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Enable the UART Transmit Complete Interrupt */ 3587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_ENABLE_IT(huart, UART_IT_TC); 3588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 336 .loc 1 3593 12 view .LVU100 337 000a 0220 movs r0, #2 338 .LVL30: 3594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 339 .loc 1 3595 1 view .LVU101 340 000c 7047 bx lr 341 .LVL31: 342 .L14: 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 343 .loc 1 3570 5 is_stmt 1 view .LVU102 ARM GAS /tmp/cc8UBTH4.s page 80 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 344 .loc 1 3570 21 is_stmt 0 view .LVU103 345 000e 8368 ldr r3, [r0, #8] 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 346 .loc 1 3570 8 view .LVU104 347 0010 B3F5805F cmp r3, #4096 348 0014 17D0 beq .L15 349 .L10: 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 350 .loc 1 3578 7 is_stmt 1 view .LVU105 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 351 .loc 1 3578 45 is_stmt 0 view .LVU106 352 0016 036A ldr r3, [r0, #32] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 353 .loc 1 3578 57 view .LVU107 354 0018 5A1C adds r2, r3, #1 355 001a 0262 str r2, [r0, #32] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 356 .loc 1 3578 39 view .LVU108 357 001c 1A78 ldrb r2, [r3] @ zero_extendqisi2 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 358 .loc 1 3578 12 view .LVU109 359 001e 0368 ldr r3, [r0] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 360 .loc 1 3578 27 view .LVU110 361 0020 5A60 str r2, [r3, #4] 362 .L11: 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 363 .loc 1 3581 5 is_stmt 1 view .LVU111 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 364 .loc 1 3581 16 is_stmt 0 view .LVU112 365 0022 C38C ldrh r3, [r0, #38] 366 0024 9BB2 uxth r3, r3 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 367 .loc 1 3581 9 view .LVU113 368 0026 013B subs r3, r3, #1 369 0028 9BB2 uxth r3, r3 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 370 .loc 1 3581 8 view .LVU114 371 002a C384 strh r3, [r0, #38] @ movhi 372 002c 4BB9 cbnz r3, .L12 3584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 373 .loc 1 3584 7 is_stmt 1 view .LVU115 374 002e 0268 ldr r2, [r0] 375 0030 D368 ldr r3, [r2, #12] 376 0032 23F08003 bic r3, r3, #128 377 0036 D360 str r3, [r2, #12] 3587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 378 .loc 1 3587 7 view .LVU116 379 0038 0268 ldr r2, [r0] 380 003a D368 ldr r3, [r2, #12] 381 003c 43F04003 orr r3, r3, #64 382 0040 D360 str r3, [r2, #12] 383 .L12: 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 384 .loc 1 3589 5 view .LVU117 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 81 385 .loc 1 3589 12 is_stmt 0 view .LVU118 386 0042 0020 movs r0, #0 387 .LVL32: 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 388 .loc 1 3589 12 view .LVU119 389 0044 7047 bx lr 390 .LVL33: 391 .L15: 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 392 .loc 1 3570 71 discriminator 1 view .LVU120 393 0046 0369 ldr r3, [r0, #16] 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 394 .loc 1 3570 56 discriminator 1 view .LVU121 395 0048 002B cmp r3, #0 396 004a E4D1 bne .L10 3572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 397 .loc 1 3572 7 is_stmt 1 view .LVU122 3572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 398 .loc 1 3572 11 is_stmt 0 view .LVU123 399 004c 036A ldr r3, [r0, #32] 400 .LVL34: 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 401 .loc 1 3573 7 is_stmt 1 view .LVU124 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 402 .loc 1 3573 40 is_stmt 0 view .LVU125 403 004e 1B88 ldrh r3, [r3] 404 .LVL35: 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 405 .loc 1 3573 12 view .LVU126 406 0050 0268 ldr r2, [r0] 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 407 .loc 1 3573 29 view .LVU127 408 0052 C3F30803 ubfx r3, r3, #0, #9 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 409 .loc 1 3573 27 view .LVU128 410 0056 5360 str r3, [r2, #4] 411 .LVL36: 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 412 .loc 1 3574 7 is_stmt 1 view .LVU129 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 413 .loc 1 3574 25 is_stmt 0 view .LVU130 414 0058 036A ldr r3, [r0, #32] 415 005a 0233 adds r3, r3, #2 416 005c 0362 str r3, [r0, #32] 417 005e E0E7 b .L11 418 .cfi_endproc 419 .LFE192: 421 .global __aeabi_uldivmod 422 .section .text.UART_SetConfig,"ax",%progbits 423 .align 1 424 .syntax unified 425 .thumb 426 .thumb_func 427 .fpu fpv4-sp-d16 429 UART_SetConfig: 430 .LVL37: 431 .LFB195: ARM GAS /tmp/cc8UBTH4.s page 82 3596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Wraps up transmission in non blocking mode. 3599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 3606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_TC); 3607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Tx process is ended, restore huart->gState to Ready */ 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Tx complete callback*/ 3613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxCpltCallback(huart); 3614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Tx complete callback*/ 3616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_TxCpltCallback(huart); 3617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Receives an amount of data in non blocking mode 3624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart) 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits = NULL; 3631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits = NULL; 3632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is ongoing */ 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->RxState == HAL_UART_STATE_BUSY_RX) 3635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) 3637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata8bits */ 3639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(pdata8bits); 3640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) huart->pRxBuffPtr; 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 3643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits = (uint8_t *) huart->pRxBuffPtr; 3647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata16bits */ 3648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(pdata16bits); 3649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Init.WordLength == UART_WORDLENGTH_9B) || ((huart->Init.WordLength == UART_WORDLE 3651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x00FF); ARM GAS /tmp/cc8UBTH4.s page 83 3653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata8bits = (uint8_t)(huart->Instance->DR & (uint8_t)0x007F); 3657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 1U; 3659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (--huart->RxXferCount == 0U) 3662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Data Register not empty Interrupt */ 3664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_RXNE); 3665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Parity Error Interrupt */ 3667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_PE); 3668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */ 3670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_DISABLE_IT(huart, UART_IT_ERR); 3671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Rx process is completed, restore huart->RxState to Ready */ 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Initialize type of RxEvent to Transfer Complete */ 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 3677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check current reception Mode : 3679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** If Reception till IDLE event has been selected : */ 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE) 3681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Set reception type to Standard */ 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable IDLE interrupt */ 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 3687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check if IDLE flag is set */ 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) 3690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Clear IDLE flag in ISR */ 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** __HAL_UART_CLEAR_IDLEFLAG(huart); 3693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx Event callback*/ 3697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventCallback(huart, huart->RxXferSize); 3698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx Event callback*/ 3700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UARTEx_RxEventCallback(huart, huart->RxXferSize); 3701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Standard reception API called */ 3706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call registered Rx complete callback*/ 3708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxCpltCallback(huart); 3709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else ARM GAS /tmp/cc8UBTH4.s page 84 3710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*Call legacy weak Rx complete callback*/ 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_UART_RxCpltCallback(huart); 3712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 3713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_OK; 3718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return HAL_BUSY; 3722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /** 3726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @brief Configures the UART peripheral. 3727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @param huart Pointer to a UART_HandleTypeDef structure that contains 3728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * the configuration information for the specified UART module. 3729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval None 3730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ 3731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** static void UART_SetConfig(UART_HandleTypeDef *huart) 3732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 432 .loc 1 3732 1 is_stmt 1 view -0 433 .cfi_startproc 434 @ args = 0, pretend = 0, frame = 0 435 @ frame_needed = 0, uses_anonymous_args = 0 436 .loc 1 3732 1 is_stmt 0 view .LVU132 437 0000 38B5 push {r3, r4, r5, lr} 438 .LCFI0: 439 .cfi_def_cfa_offset 16 440 .cfi_offset 3, -16 441 .cfi_offset 4, -12 442 .cfi_offset 5, -8 443 .cfi_offset 14, -4 444 0002 0446 mov r4, r0 3733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg; 445 .loc 1 3733 3 is_stmt 1 view .LVU133 3734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t pclk; 446 .loc 1 3734 3 view .LVU134 3735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 3737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_BAUDRATE(huart->Init.BaudRate)); 447 .loc 1 3737 3 view .LVU135 3738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 448 .loc 1 3738 3 view .LVU136 3739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 449 .loc 1 3739 3 view .LVU137 3740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); 450 .loc 1 3740 3 view .LVU138 3741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR2 Configuration -----------------------*/ 3743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Stop Bits: Set STOP[13:12] bits 3744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** according to huart->Init.StopBits value */ 3745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); 451 .loc 1 3745 3 view .LVU139 452 0004 0268 ldr r2, [r0] ARM GAS /tmp/cc8UBTH4.s page 85 453 0006 1369 ldr r3, [r2, #16] 454 0008 23F44053 bic r3, r3, #12288 455 000c C168 ldr r1, [r0, #12] 456 000e 0B43 orrs r3, r3, r1 457 0010 1361 str r3, [r2, #16] 3746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR1 Configuration -----------------------*/ 3748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART Word Length, Parity and mode: 3749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set the M bits according to huart->Init.WordLength value 3750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set PCE and PS bits according to huart->Init.Parity value 3751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set TE and RE bits according to huart->Init.Mode value 3752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** Set OVER8 bit according to huart->Init.OverSampling value */ 3753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.O 458 .loc 1 3754 3 view .LVU140 459 .loc 1 3754 33 is_stmt 0 view .LVU141 460 0012 8368 ldr r3, [r0, #8] 461 .loc 1 3754 58 view .LVU142 462 0014 0269 ldr r2, [r0, #16] 463 .loc 1 3754 45 view .LVU143 464 0016 1343 orrs r3, r3, r2 465 .loc 1 3754 79 view .LVU144 466 0018 4269 ldr r2, [r0, #20] 467 .loc 1 3754 66 view .LVU145 468 001a 1343 orrs r3, r3, r2 469 .loc 1 3754 98 view .LVU146 470 001c C269 ldr r2, [r0, #28] 471 .loc 1 3754 10 view .LVU147 472 001e 1A43 orrs r2, r2, r3 473 .LVL38: 3755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, 474 .loc 1 3755 3 is_stmt 1 view .LVU148 475 0020 0168 ldr r1, [r0] 476 0022 CB68 ldr r3, [r1, #12] 477 0024 23F41643 bic r3, r3, #38400 478 0028 23F00C03 bic r3, r3, #12 479 002c 1343 orrs r3, r3, r2 480 002e CB60 str r3, [r1, #12] 3756: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 | 3757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** tmpreg); 3758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART CR3 Configuration -----------------------*/ 3760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Configure the UART HFC: Set CTSE and RTSE bits according to huart->Init.HwFlowCtl value */ 3761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE), huart->Init.HwFlowCtl); 481 .loc 1 3761 3 view .LVU149 482 0030 0268 ldr r2, [r0] 483 .LVL39: 484 .loc 1 3761 3 is_stmt 0 view .LVU150 485 0032 5369 ldr r3, [r2, #20] 486 0034 23F44073 bic r3, r3, #768 487 0038 8169 ldr r1, [r0, #24] 488 003a 0B43 orrs r3, r3, r1 489 003c 5361 str r3, [r2, #20] 3762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if defined(USART6) && defined(UART9) && defined(UART10) 3765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6) || (huart->Instance == UART9) || ARM GAS /tmp/cc8UBTH4.s page 86 3766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #elif defined(USART6) 3770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->Instance == USART1) || (huart->Instance == USART6)) 490 .loc 1 3770 5 is_stmt 1 view .LVU151 491 .loc 1 3770 15 is_stmt 0 view .LVU152 492 003e 0368 ldr r3, [r0] 493 .loc 1 3770 8 view .LVU153 494 0040 314A ldr r2, .L24 495 0042 9342 cmp r3, r2 496 0044 06D0 beq .L17 497 .loc 1 3770 37 discriminator 1 view .LVU154 498 0046 02F58062 add r2, r2, #1024 499 004a 9342 cmp r3, r2 500 004c 02D0 beq .L17 3771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else 3775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Instance == USART1) 3776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK2Freq(); 3778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USART6 */ 3780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pclk = HAL_RCC_GetPCLK1Freq(); 501 .loc 1 3782 7 is_stmt 1 view .LVU155 502 .loc 1 3782 14 is_stmt 0 view .LVU156 503 004e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 504 .LVL40: 505 .loc 1 3782 14 view .LVU157 506 0052 01E0 b .L19 507 .LVL41: 508 .L17: 3772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 509 .loc 1 3772 7 is_stmt 1 view .LVU158 3772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 510 .loc 1 3772 14 is_stmt 0 view .LVU159 511 0054 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 512 .LVL42: 513 .L19: 3783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /*-------------------------- USART BRR Configuration ---------------------*/ 3785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (huart->Init.OverSampling == UART_OVERSAMPLING_8) 514 .loc 1 3785 3 is_stmt 1 view .LVU160 515 .loc 1 3785 18 is_stmt 0 view .LVU161 516 0058 E369 ldr r3, [r4, #28] 517 .loc 1 3785 6 view .LVU162 518 005a B3F5004F cmp r3, #32768 519 005e 29D0 beq .L23 3786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING8(pclk, huart->Init.BaudRate); 3788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** else 3790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 87 3791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); 520 .loc 1 3791 5 is_stmt 1 view .LVU163 521 .loc 1 3791 28 is_stmt 0 view .LVU164 522 0060 0021 movs r1, #0 523 0062 0318 adds r3, r0, r0 524 0064 4941 adcs r1, r1, r1 525 0066 1B18 adds r3, r3, r0 526 0068 41F10001 adc r1, r1, #0 527 006c C900 lsls r1, r1, #3 528 006e 41EA5371 orr r1, r1, r3, lsr #29 529 0072 DB00 lsls r3, r3, #3 530 0074 1818 adds r0, r3, r0 531 .LVL43: 532 .loc 1 3791 28 view .LVU165 533 0076 6368 ldr r3, [r4, #4] 534 0078 4FEA8302 lsl r2, r3, #2 535 007c 4FEA9373 lsr r3, r3, #30 536 0080 41F10001 adc r1, r1, #0 537 0084 FFF7FEFF bl __aeabi_uldivmod 538 .LVL44: 539 0088 204D ldr r5, .L24+4 540 008a A5FB0032 umull r3, r2, r5, r0 541 008e 5109 lsrs r1, r2, #5 542 0090 6423 movs r3, #100 543 0092 03FB1103 mls r3, r3, r1, r0 544 0096 1B01 lsls r3, r3, #4 545 0098 3233 adds r3, r3, #50 546 009a A5FB0323 umull r2, r3, r5, r3 547 009e 5B09 lsrs r3, r3, #5 548 00a0 03F0F002 and r2, r3, #240 549 00a4 02EB0112 add r2, r2, r1, lsl #4 550 00a8 03F00F03 and r3, r3, #15 551 .loc 1 3791 10 view .LVU166 552 00ac 2168 ldr r1, [r4] 553 .loc 1 3791 28 view .LVU167 554 00ae 1344 add r3, r3, r2 555 .loc 1 3791 26 view .LVU168 556 00b0 8B60 str r3, [r1, #8] 557 .L16: 3792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 558 .loc 1 3793 1 view .LVU169 559 00b2 38BD pop {r3, r4, r5, pc} 560 .LVL45: 561 .L23: 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 562 .loc 1 3787 5 is_stmt 1 view .LVU170 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 563 .loc 1 3787 28 is_stmt 0 view .LVU171 564 00b4 0023 movs r3, #0 565 00b6 0218 adds r2, r0, r0 566 00b8 43EB0301 adc r1, r3, r3 567 00bc 1218 adds r2, r2, r0 568 00be 41F10001 adc r1, r1, #0 569 00c2 C900 lsls r1, r1, #3 570 00c4 41EA5271 orr r1, r1, r2, lsr #29 571 00c8 D200 lsls r2, r2, #3 ARM GAS /tmp/cc8UBTH4.s page 88 572 00ca 1018 adds r0, r2, r0 573 .LVL46: 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 574 .loc 1 3787 28 view .LVU172 575 00cc 41F10001 adc r1, r1, #0 576 00d0 6268 ldr r2, [r4, #4] 577 00d2 9218 adds r2, r2, r2 578 00d4 5B41 adcs r3, r3, r3 579 00d6 FFF7FEFF bl __aeabi_uldivmod 580 .LVL47: 581 00da 0C4D ldr r5, .L24+4 582 00dc A5FB0032 umull r3, r2, r5, r0 583 00e0 5109 lsrs r1, r2, #5 584 00e2 6423 movs r3, #100 585 00e4 03FB1103 mls r3, r3, r1, r0 586 00e8 DB00 lsls r3, r3, #3 587 00ea 3233 adds r3, r3, #50 588 00ec A5FB0323 umull r2, r3, r5, r3 589 00f0 5B09 lsrs r3, r3, #5 590 00f2 5A00 lsls r2, r3, #1 591 00f4 02F4F872 and r2, r2, #496 592 00f8 02EB0112 add r2, r2, r1, lsl #4 593 00fc 03F00703 and r3, r3, #7 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 594 .loc 1 3787 10 view .LVU173 595 0100 2168 ldr r1, [r4] 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 596 .loc 1 3787 28 view .LVU174 597 0102 1344 add r3, r3, r2 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 598 .loc 1 3787 26 view .LVU175 599 0104 8B60 str r3, [r1, #8] 600 0106 D4E7 b .L16 601 .L25: 602 .align 2 603 .L24: 604 0108 00100140 .word 1073811456 605 010c 1F85EB51 .word 1374389535 606 .cfi_endproc 607 .LFE195: 609 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 610 .align 1 611 .syntax unified 612 .thumb 613 .thumb_func 614 .fpu fpv4-sp-d16 616 UART_WaitOnFlagUntilTimeout: 617 .LVL48: 618 .LFB182: 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 619 .loc 1 3214 1 is_stmt 1 view -0 620 .cfi_startproc 621 @ args = 4, pretend = 0, frame = 8 622 @ frame_needed = 0, uses_anonymous_args = 0 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 623 .loc 1 3214 1 is_stmt 0 view .LVU177 624 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} ARM GAS /tmp/cc8UBTH4.s page 89 625 .LCFI1: 626 .cfi_def_cfa_offset 28 627 .cfi_offset 4, -28 628 .cfi_offset 5, -24 629 .cfi_offset 6, -20 630 .cfi_offset 7, -16 631 .cfi_offset 8, -12 632 .cfi_offset 9, -8 633 .cfi_offset 14, -4 634 0004 83B0 sub sp, sp, #12 635 .LCFI2: 636 .cfi_def_cfa_offset 40 637 0006 0546 mov r5, r0 638 0008 0E46 mov r6, r1 639 000a 1746 mov r7, r2 640 000c 9946 mov r9, r3 641 000e DDF82880 ldr r8, [sp, #40] 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 642 .loc 1 3216 3 is_stmt 1 view .LVU178 643 .LVL49: 644 .L28: 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 645 .loc 1 3216 9 view .LVU179 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 646 .loc 1 3216 11 is_stmt 0 view .LVU180 647 0012 2C68 ldr r4, [r5] 648 0014 2468 ldr r4, [r4] 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 649 .loc 1 3216 50 view .LVU181 650 0016 36EA0403 bics r3, r6, r4 651 001a 0CBF ite eq 652 001c 4FF0010C moveq ip, #1 653 0020 4FF0000C movne ip, #0 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 654 .loc 1 3216 9 view .LVU182 655 0024 BC45 cmp ip, r7 656 0026 28D1 bne .L34 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 657 .loc 1 3219 5 is_stmt 1 view .LVU183 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 658 .loc 1 3219 8 is_stmt 0 view .LVU184 659 0028 B8F1FF3F cmp r8, #-1 660 002c F1D0 beq .L28 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 661 .loc 1 3221 7 is_stmt 1 view .LVU185 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 662 .loc 1 3221 13 is_stmt 0 view .LVU186 663 002e FFF7FEFF bl HAL_GetTick 664 .LVL50: 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 665 .loc 1 3221 27 view .LVU187 666 0032 A0EB0900 sub r0, r0, r9 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 667 .loc 1 3221 10 view .LVU188 668 0036 4045 cmp r0, r8 669 0038 23D8 bhi .L31 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 90 670 .loc 1 3221 51 discriminator 1 view .LVU189 671 003a B8F1000F cmp r8, #0 672 003e 22D0 beq .L32 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 673 .loc 1 3227 7 is_stmt 1 view .LVU190 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 674 .loc 1 3227 12 is_stmt 0 view .LVU191 675 0040 2B68 ldr r3, [r5] 676 0042 DA68 ldr r2, [r3, #12] 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 677 .loc 1 3227 10 view .LVU192 678 0044 12F0040F tst r2, #4 679 0048 E3D0 beq .L28 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 680 .loc 1 3227 64 discriminator 1 view .LVU193 681 004a 802E cmp r6, #128 682 004c E1D0 beq .L28 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 683 .loc 1 3227 91 discriminator 2 view .LVU194 684 004e 402E cmp r6, #64 685 0050 DFD0 beq .L28 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 686 .loc 1 3229 9 is_stmt 1 view .LVU195 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 687 .loc 1 3229 13 is_stmt 0 view .LVU196 688 0052 1A68 ldr r2, [r3] 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 689 .loc 1 3229 12 view .LVU197 690 0054 12F0080F tst r2, #8 691 0058 DBD0 beq .L28 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 692 .loc 1 3232 11 is_stmt 1 view .LVU198 693 .LBB330: 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 694 .loc 1 3232 11 view .LVU199 695 005a 0024 movs r4, #0 696 005c 0194 str r4, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 697 .loc 1 3232 11 view .LVU200 698 005e 1A68 ldr r2, [r3] 699 0060 0192 str r2, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 700 .loc 1 3232 11 view .LVU201 701 0062 5B68 ldr r3, [r3, #4] 702 0064 0193 str r3, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 703 .loc 1 3232 11 view .LVU202 704 0066 019B ldr r3, [sp, #4] 705 .LBE330: 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 706 .loc 1 3232 11 view .LVU203 3237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 707 .loc 1 3237 11 view .LVU204 708 0068 2846 mov r0, r5 709 006a FFF7FEFF bl UART_EndRxTransfer 710 .LVL51: 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 91 711 .loc 1 3239 11 view .LVU205 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 712 .loc 1 3239 28 is_stmt 0 view .LVU206 713 006e 0823 movs r3, #8 714 0070 6B64 str r3, [r5, #68] 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 715 .loc 1 3242 11 is_stmt 1 view .LVU207 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 716 .loc 1 3242 11 view .LVU208 717 0072 85F84040 strb r4, [r5, #64] 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 718 .loc 1 3242 11 view .LVU209 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 719 .loc 1 3244 11 view .LVU210 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 720 .loc 1 3244 18 is_stmt 0 view .LVU211 721 0076 0120 movs r0, #1 722 0078 00E0 b .L29 723 .L34: 3249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 724 .loc 1 3249 10 view .LVU212 725 007a 0020 movs r0, #0 726 .L29: 3250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 727 .loc 1 3250 1 view .LVU213 728 007c 03B0 add sp, sp, #12 729 .LCFI3: 730 .cfi_remember_state 731 .cfi_def_cfa_offset 28 732 @ sp needed 733 007e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 734 .LVL52: 735 .L31: 736 .LCFI4: 737 .cfi_restore_state 3224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 738 .loc 1 3224 16 view .LVU214 739 0082 0320 movs r0, #3 740 0084 FAE7 b .L29 741 .L32: 742 0086 0320 movs r0, #3 743 0088 F8E7 b .L29 744 .cfi_endproc 745 .LFE182: 747 .section .text.HAL_UART_MspInit,"ax",%progbits 748 .align 1 749 .weak HAL_UART_MspInit 750 .syntax unified 751 .thumb 752 .thumb_func 753 .fpu fpv4-sp-d16 755 HAL_UART_MspInit: 756 .LVL53: 757 .LFB139: 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 758 .loc 1 716 1 is_stmt 1 view -0 759 .cfi_startproc ARM GAS /tmp/cc8UBTH4.s page 92 760 @ args = 0, pretend = 0, frame = 0 761 @ frame_needed = 0, uses_anonymous_args = 0 762 @ link register save eliminated. 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 763 .loc 1 718 3 view .LVU216 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 764 .loc 1 722 1 is_stmt 0 view .LVU217 765 0000 7047 bx lr 766 .cfi_endproc 767 .LFE139: 769 .section .text.HAL_UART_Init,"ax",%progbits 770 .align 1 771 .global HAL_UART_Init 772 .syntax unified 773 .thumb 774 .thumb_func 775 .fpu fpv4-sp-d16 777 HAL_UART_Init: 778 .LVL54: 779 .LFB134: 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 780 .loc 1 358 1 is_stmt 1 view -0 781 .cfi_startproc 782 @ args = 0, pretend = 0, frame = 0 783 @ frame_needed = 0, uses_anonymous_args = 0 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 784 .loc 1 360 3 view .LVU219 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 785 .loc 1 360 6 is_stmt 0 view .LVU220 786 0000 60B3 cbz r0, .L39 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 787 .loc 1 358 1 view .LVU221 788 0002 10B5 push {r4, lr} 789 .LCFI5: 790 .cfi_def_cfa_offset 8 791 .cfi_offset 4, -8 792 .cfi_offset 14, -4 793 0004 0446 mov r4, r0 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 794 .loc 1 366 3 is_stmt 1 view .LVU222 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 795 .loc 1 376 5 view .LVU223 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 796 .loc 1 378 3 view .LVU224 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 797 .loc 1 379 3 view .LVU225 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 798 .loc 1 381 3 view .LVU226 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 799 .loc 1 381 12 is_stmt 0 view .LVU227 800 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 801 .loc 1 381 6 view .LVU228 802 000a 13B3 cbz r3, .L44 803 .LVL55: 804 .L38: 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 93 805 .loc 1 402 3 is_stmt 1 view .LVU229 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 806 .loc 1 402 17 is_stmt 0 view .LVU230 807 000c 2423 movs r3, #36 808 000e 84F84130 strb r3, [r4, #65] 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 809 .loc 1 405 3 is_stmt 1 view .LVU231 810 0012 2268 ldr r2, [r4] 811 0014 D368 ldr r3, [r2, #12] 812 0016 23F40053 bic r3, r3, #8192 813 001a D360 str r3, [r2, #12] 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 814 .loc 1 408 3 view .LVU232 815 001c 2046 mov r0, r4 816 001e FFF7FEFF bl UART_SetConfig 817 .LVL56: 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 818 .loc 1 413 3 view .LVU233 819 0022 2268 ldr r2, [r4] 820 0024 1369 ldr r3, [r2, #16] 821 0026 23F49043 bic r3, r3, #18432 822 002a 1361 str r3, [r2, #16] 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 823 .loc 1 414 3 view .LVU234 824 002c 2268 ldr r2, [r4] 825 002e 5369 ldr r3, [r2, #20] 826 0030 23F02A03 bic r3, r3, #42 827 0034 5361 str r3, [r2, #20] 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 828 .loc 1 417 3 view .LVU235 829 0036 2268 ldr r2, [r4] 830 0038 D368 ldr r3, [r2, #12] 831 003a 43F40053 orr r3, r3, #8192 832 003e D360 str r3, [r2, #12] 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 833 .loc 1 420 3 view .LVU236 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 834 .loc 1 420 20 is_stmt 0 view .LVU237 835 0040 0020 movs r0, #0 836 0042 6064 str r0, [r4, #68] 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 837 .loc 1 421 3 is_stmt 1 view .LVU238 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 838 .loc 1 421 17 is_stmt 0 view .LVU239 839 0044 2023 movs r3, #32 840 0046 84F84130 strb r3, [r4, #65] 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 841 .loc 1 422 3 is_stmt 1 view .LVU240 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 842 .loc 1 422 18 is_stmt 0 view .LVU241 843 004a 84F84230 strb r3, [r4, #66] 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 844 .loc 1 423 3 is_stmt 1 view .LVU242 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 845 .loc 1 423 22 is_stmt 0 view .LVU243 846 004e 6063 str r0, [r4, #52] 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 94 847 .loc 1 425 3 is_stmt 1 view .LVU244 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 848 .loc 1 426 1 is_stmt 0 view .LVU245 849 0050 10BD pop {r4, pc} 850 .LVL57: 851 .L44: 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 852 .loc 1 384 5 is_stmt 1 view .LVU246 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 853 .loc 1 384 17 is_stmt 0 view .LVU247 854 0052 80F84030 strb r3, [r0, #64] 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 855 .loc 1 398 5 is_stmt 1 view .LVU248 856 0056 FFF7FEFF bl HAL_UART_MspInit 857 .LVL58: 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 858 .loc 1 398 5 is_stmt 0 view .LVU249 859 005a D7E7 b .L38 860 .LVL59: 861 .L39: 862 .LCFI6: 863 .cfi_def_cfa_offset 0 864 .cfi_restore 4 865 .cfi_restore 14 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 866 .loc 1 362 12 view .LVU250 867 005c 0120 movs r0, #1 868 .LVL60: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 869 .loc 1 426 1 view .LVU251 870 005e 7047 bx lr 871 .cfi_endproc 872 .LFE134: 874 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 875 .align 1 876 .global HAL_HalfDuplex_Init 877 .syntax unified 878 .thumb 879 .thumb_func 880 .fpu fpv4-sp-d16 882 HAL_HalfDuplex_Init: 883 .LVL61: 884 .LFB135: 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 885 .loc 1 436 1 is_stmt 1 view -0 886 .cfi_startproc 887 @ args = 0, pretend = 0, frame = 0 888 @ frame_needed = 0, uses_anonymous_args = 0 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 889 .loc 1 438 3 view .LVU253 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 890 .loc 1 438 6 is_stmt 0 view .LVU254 891 0000 0028 cmp r0, #0 892 0002 31D0 beq .L48 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 893 .loc 1 436 1 view .LVU255 894 0004 10B5 push {r4, lr} ARM GAS /tmp/cc8UBTH4.s page 95 895 .LCFI7: 896 .cfi_def_cfa_offset 8 897 .cfi_offset 4, -8 898 .cfi_offset 14, -4 899 0006 0446 mov r4, r0 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 900 .loc 1 444 3 is_stmt 1 view .LVU256 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 901 .loc 1 445 3 view .LVU257 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 902 .loc 1 446 3 view .LVU258 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 903 .loc 1 448 3 view .LVU259 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 904 .loc 1 448 12 is_stmt 0 view .LVU260 905 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 906 .loc 1 448 6 view .LVU261 907 000c 3BB3 cbz r3, .L53 908 .LVL62: 909 .L47: 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 910 .loc 1 469 3 is_stmt 1 view .LVU262 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 911 .loc 1 469 17 is_stmt 0 view .LVU263 912 000e 2423 movs r3, #36 913 0010 84F84130 strb r3, [r4, #65] 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 914 .loc 1 472 3 is_stmt 1 view .LVU264 915 0014 2268 ldr r2, [r4] 916 0016 D368 ldr r3, [r2, #12] 917 0018 23F40053 bic r3, r3, #8192 918 001c D360 str r3, [r2, #12] 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 919 .loc 1 475 3 view .LVU265 920 001e 2046 mov r0, r4 921 0020 FFF7FEFF bl UART_SetConfig 922 .LVL63: 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 923 .loc 1 480 3 view .LVU266 924 0024 2268 ldr r2, [r4] 925 0026 1369 ldr r3, [r2, #16] 926 0028 23F49043 bic r3, r3, #18432 927 002c 1361 str r3, [r2, #16] 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 928 .loc 1 481 3 view .LVU267 929 002e 2268 ldr r2, [r4] 930 0030 5369 ldr r3, [r2, #20] 931 0032 23F02203 bic r3, r3, #34 932 0036 5361 str r3, [r2, #20] 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 933 .loc 1 484 3 view .LVU268 934 0038 2268 ldr r2, [r4] 935 003a 5369 ldr r3, [r2, #20] 936 003c 43F00803 orr r3, r3, #8 937 0040 5361 str r3, [r2, #20] 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 96 938 .loc 1 487 3 view .LVU269 939 0042 2268 ldr r2, [r4] 940 0044 D368 ldr r3, [r2, #12] 941 0046 43F40053 orr r3, r3, #8192 942 004a D360 str r3, [r2, #12] 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 943 .loc 1 490 3 view .LVU270 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 944 .loc 1 490 20 is_stmt 0 view .LVU271 945 004c 0020 movs r0, #0 946 004e 6064 str r0, [r4, #68] 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 947 .loc 1 491 3 is_stmt 1 view .LVU272 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 948 .loc 1 491 17 is_stmt 0 view .LVU273 949 0050 2023 movs r3, #32 950 0052 84F84130 strb r3, [r4, #65] 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 951 .loc 1 492 3 is_stmt 1 view .LVU274 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 952 .loc 1 492 18 is_stmt 0 view .LVU275 953 0056 84F84230 strb r3, [r4, #66] 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 954 .loc 1 493 3 is_stmt 1 view .LVU276 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 955 .loc 1 493 22 is_stmt 0 view .LVU277 956 005a 6063 str r0, [r4, #52] 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 957 .loc 1 495 3 is_stmt 1 view .LVU278 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 958 .loc 1 496 1 is_stmt 0 view .LVU279 959 005c 10BD pop {r4, pc} 960 .LVL64: 961 .L53: 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 962 .loc 1 451 5 is_stmt 1 view .LVU280 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 963 .loc 1 451 17 is_stmt 0 view .LVU281 964 005e 80F84030 strb r3, [r0, #64] 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 965 .loc 1 465 5 is_stmt 1 view .LVU282 966 0062 FFF7FEFF bl HAL_UART_MspInit 967 .LVL65: 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 968 .loc 1 465 5 is_stmt 0 view .LVU283 969 0066 D2E7 b .L47 970 .LVL66: 971 .L48: 972 .LCFI8: 973 .cfi_def_cfa_offset 0 974 .cfi_restore 4 975 .cfi_restore 14 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 976 .loc 1 440 12 view .LVU284 977 0068 0120 movs r0, #1 978 .LVL67: 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 97 979 .loc 1 496 1 view .LVU285 980 006a 7047 bx lr 981 .cfi_endproc 982 .LFE135: 984 .section .text.HAL_LIN_Init,"ax",%progbits 985 .align 1 986 .global HAL_LIN_Init 987 .syntax unified 988 .thumb 989 .thumb_func 990 .fpu fpv4-sp-d16 992 HAL_LIN_Init: 993 .LVL68: 994 .LFB136: 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 995 .loc 1 510 1 is_stmt 1 view -0 996 .cfi_startproc 997 @ args = 0, pretend = 0, frame = 0 998 @ frame_needed = 0, uses_anonymous_args = 0 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 999 .loc 1 512 3 view .LVU287 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1000 .loc 1 512 6 is_stmt 0 view .LVU288 1001 0000 0028 cmp r0, #0 1002 0002 3CD0 beq .L57 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1003 .loc 1 510 1 view .LVU289 1004 0004 38B5 push {r3, r4, r5, lr} 1005 .LCFI9: 1006 .cfi_def_cfa_offset 16 1007 .cfi_offset 3, -16 1008 .cfi_offset 4, -12 1009 .cfi_offset 5, -8 1010 .cfi_offset 14, -4 1011 0006 0D46 mov r5, r1 1012 0008 0446 mov r4, r0 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1013 .loc 1 518 3 is_stmt 1 view .LVU290 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_WORD_LENGTH(huart->Init.WordLength)); 1014 .loc 1 521 3 view .LVU291 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_LIN_OVERSAMPLING(huart->Init.OverSampling)); 1015 .loc 1 522 3 view .LVU292 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1016 .loc 1 523 3 view .LVU293 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1017 .loc 1 525 3 view .LVU294 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1018 .loc 1 525 12 is_stmt 0 view .LVU295 1019 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1020 .loc 1 525 6 view .LVU296 1021 000e 002B cmp r3, #0 1022 0010 30D0 beq .L62 1023 .LVL69: 1024 .L56: 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1025 .loc 1 546 3 is_stmt 1 view .LVU297 ARM GAS /tmp/cc8UBTH4.s page 98 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1026 .loc 1 546 17 is_stmt 0 view .LVU298 1027 0012 2423 movs r3, #36 1028 0014 84F84130 strb r3, [r4, #65] 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1029 .loc 1 549 3 is_stmt 1 view .LVU299 1030 0018 2268 ldr r2, [r4] 1031 001a D368 ldr r3, [r2, #12] 1032 001c 23F40053 bic r3, r3, #8192 1033 0020 D360 str r3, [r2, #12] 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1034 .loc 1 552 3 view .LVU300 1035 0022 2046 mov r0, r4 1036 0024 FFF7FEFF bl UART_SetConfig 1037 .LVL70: 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN)); 1038 .loc 1 557 3 view .LVU301 1039 0028 2268 ldr r2, [r4] 1040 002a 1369 ldr r3, [r2, #16] 1041 002c 23F40063 bic r3, r3, #2048 1042 0030 1361 str r3, [r2, #16] 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1043 .loc 1 558 3 view .LVU302 1044 0032 2268 ldr r2, [r4] 1045 0034 5369 ldr r3, [r2, #20] 1046 0036 23F02A03 bic r3, r3, #42 1047 003a 5361 str r3, [r2, #20] 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1048 .loc 1 561 3 view .LVU303 1049 003c 2268 ldr r2, [r4] 1050 003e 1369 ldr r3, [r2, #16] 1051 0040 43F48043 orr r3, r3, #16384 1052 0044 1361 str r3, [r2, #16] 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 1053 .loc 1 564 3 view .LVU304 1054 0046 2268 ldr r2, [r4] 1055 0048 1369 ldr r3, [r2, #16] 1056 004a 23F02003 bic r3, r3, #32 1057 004e 1361 str r3, [r2, #16] 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1058 .loc 1 565 3 view .LVU305 1059 0050 2368 ldr r3, [r4] 1060 0052 1969 ldr r1, [r3, #16] 1061 0054 0D43 orrs r5, r5, r1 1062 .LVL71: 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1063 .loc 1 565 3 is_stmt 0 view .LVU306 1064 0056 1D61 str r5, [r3, #16] 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1065 .loc 1 568 3 is_stmt 1 view .LVU307 1066 0058 2268 ldr r2, [r4] 1067 005a D368 ldr r3, [r2, #12] 1068 005c 43F40053 orr r3, r3, #8192 1069 0060 D360 str r3, [r2, #12] 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1070 .loc 1 571 3 view .LVU308 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; ARM GAS /tmp/cc8UBTH4.s page 99 1071 .loc 1 571 20 is_stmt 0 view .LVU309 1072 0062 0020 movs r0, #0 1073 0064 6064 str r0, [r4, #68] 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1074 .loc 1 572 3 is_stmt 1 view .LVU310 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1075 .loc 1 572 17 is_stmt 0 view .LVU311 1076 0066 2023 movs r3, #32 1077 0068 84F84130 strb r3, [r4, #65] 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1078 .loc 1 573 3 is_stmt 1 view .LVU312 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1079 .loc 1 573 18 is_stmt 0 view .LVU313 1080 006c 84F84230 strb r3, [r4, #66] 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1081 .loc 1 574 3 is_stmt 1 view .LVU314 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1082 .loc 1 574 22 is_stmt 0 view .LVU315 1083 0070 6063 str r0, [r4, #52] 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1084 .loc 1 576 3 is_stmt 1 view .LVU316 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1085 .loc 1 577 1 is_stmt 0 view .LVU317 1086 0072 38BD pop {r3, r4, r5, pc} 1087 .LVL72: 1088 .L62: 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1089 .loc 1 528 5 is_stmt 1 view .LVU318 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1090 .loc 1 528 17 is_stmt 0 view .LVU319 1091 0074 80F84030 strb r3, [r0, #64] 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1092 .loc 1 542 5 is_stmt 1 view .LVU320 1093 0078 FFF7FEFF bl HAL_UART_MspInit 1094 .LVL73: 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1095 .loc 1 542 5 is_stmt 0 view .LVU321 1096 007c C9E7 b .L56 1097 .LVL74: 1098 .L57: 1099 .LCFI10: 1100 .cfi_def_cfa_offset 0 1101 .cfi_restore 3 1102 .cfi_restore 4 1103 .cfi_restore 5 1104 .cfi_restore 14 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1105 .loc 1 514 12 view .LVU322 1106 007e 0120 movs r0, #1 1107 .LVL75: 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1108 .loc 1 577 1 view .LVU323 1109 0080 7047 bx lr 1110 .cfi_endproc 1111 .LFE136: 1113 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 1114 .align 1 ARM GAS /tmp/cc8UBTH4.s page 100 1115 .global HAL_MultiProcessor_Init 1116 .syntax unified 1117 .thumb 1118 .thumb_func 1119 .fpu fpv4-sp-d16 1121 HAL_MultiProcessor_Init: 1122 .LVL76: 1123 .LFB137: 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1124 .loc 1 592 1 is_stmt 1 view -0 1125 .cfi_startproc 1126 @ args = 0, pretend = 0, frame = 0 1127 @ frame_needed = 0, uses_anonymous_args = 0 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1128 .loc 1 594 3 view .LVU325 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1129 .loc 1 594 6 is_stmt 0 view .LVU326 1130 0000 0028 cmp r0, #0 1131 0002 41D0 beq .L66 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1132 .loc 1 592 1 view .LVU327 1133 0004 70B5 push {r4, r5, r6, lr} 1134 .LCFI11: 1135 .cfi_def_cfa_offset 16 1136 .cfi_offset 4, -16 1137 .cfi_offset 5, -12 1138 .cfi_offset 6, -8 1139 .cfi_offset 14, -4 1140 0006 0D46 mov r5, r1 1141 0008 1646 mov r6, r2 1142 000a 0446 mov r4, r0 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1143 .loc 1 600 3 is_stmt 1 view .LVU328 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_ADDRESS(Address)); 1144 .loc 1 603 3 view .LVU329 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 1145 .loc 1 604 3 view .LVU330 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 1146 .loc 1 605 3 view .LVU331 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1147 .loc 1 606 3 view .LVU332 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1148 .loc 1 608 3 view .LVU333 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1149 .loc 1 608 12 is_stmt 0 view .LVU334 1150 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1151 .loc 1 608 6 view .LVU335 1152 0010 002B cmp r3, #0 1153 0012 34D0 beq .L71 1154 .LVL77: 1155 .L65: 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1156 .loc 1 629 3 is_stmt 1 view .LVU336 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1157 .loc 1 629 17 is_stmt 0 view .LVU337 1158 0014 2423 movs r3, #36 ARM GAS /tmp/cc8UBTH4.s page 101 1159 0016 84F84130 strb r3, [r4, #65] 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1160 .loc 1 632 3 is_stmt 1 view .LVU338 1161 001a 2268 ldr r2, [r4] 1162 001c D368 ldr r3, [r2, #12] 1163 001e 23F40053 bic r3, r3, #8192 1164 0022 D360 str r3, [r2, #12] 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1165 .loc 1 635 3 view .LVU339 1166 0024 2046 mov r0, r4 1167 0026 FFF7FEFF bl UART_SetConfig 1168 .LVL78: 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); 1169 .loc 1 640 3 view .LVU340 1170 002a 2268 ldr r2, [r4] 1171 002c 1369 ldr r3, [r2, #16] 1172 002e 23F49043 bic r3, r3, #18432 1173 0032 1361 str r3, [r2, #16] 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1174 .loc 1 641 3 view .LVU341 1175 0034 2268 ldr r2, [r4] 1176 0036 5369 ldr r3, [r2, #20] 1177 0038 23F02A03 bic r3, r3, #42 1178 003c 5361 str r3, [r2, #20] 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 1179 .loc 1 644 3 view .LVU342 1180 003e 2268 ldr r2, [r4] 1181 0040 1369 ldr r3, [r2, #16] 1182 0042 23F00F03 bic r3, r3, #15 1183 0046 1361 str r3, [r2, #16] 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1184 .loc 1 645 3 view .LVU343 1185 0048 2368 ldr r3, [r4] 1186 004a 1969 ldr r1, [r3, #16] 1187 004c 0D43 orrs r5, r5, r1 1188 004e 1D61 str r5, [r3, #16] 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 1189 .loc 1 648 3 view .LVU344 1190 0050 2268 ldr r2, [r4] 1191 0052 D368 ldr r3, [r2, #12] 1192 0054 23F40063 bic r3, r3, #2048 1193 0058 D360 str r3, [r2, #12] 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1194 .loc 1 649 3 view .LVU345 1195 005a 2368 ldr r3, [r4] 1196 005c DA68 ldr r2, [r3, #12] 1197 005e 1643 orrs r6, r6, r2 1198 .LVL79: 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1199 .loc 1 649 3 is_stmt 0 view .LVU346 1200 0060 DE60 str r6, [r3, #12] 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1201 .loc 1 652 3 is_stmt 1 view .LVU347 1202 0062 2268 ldr r2, [r4] 1203 0064 D368 ldr r3, [r2, #12] 1204 0066 43F40053 orr r3, r3, #8192 1205 006a D360 str r3, [r2, #12] ARM GAS /tmp/cc8UBTH4.s page 102 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1206 .loc 1 655 3 view .LVU348 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1207 .loc 1 655 20 is_stmt 0 view .LVU349 1208 006c 0020 movs r0, #0 1209 006e 6064 str r0, [r4, #68] 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1210 .loc 1 656 3 is_stmt 1 view .LVU350 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1211 .loc 1 656 17 is_stmt 0 view .LVU351 1212 0070 2023 movs r3, #32 1213 0072 84F84130 strb r3, [r4, #65] 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1214 .loc 1 657 3 is_stmt 1 view .LVU352 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1215 .loc 1 657 18 is_stmt 0 view .LVU353 1216 0076 84F84230 strb r3, [r4, #66] 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1217 .loc 1 658 3 is_stmt 1 view .LVU354 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1218 .loc 1 658 22 is_stmt 0 view .LVU355 1219 007a 6063 str r0, [r4, #52] 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1220 .loc 1 660 3 is_stmt 1 view .LVU356 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1221 .loc 1 661 1 is_stmt 0 view .LVU357 1222 007c 70BD pop {r4, r5, r6, pc} 1223 .LVL80: 1224 .L71: 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1225 .loc 1 611 5 is_stmt 1 view .LVU358 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1226 .loc 1 611 17 is_stmt 0 view .LVU359 1227 007e 80F84030 strb r3, [r0, #64] 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1228 .loc 1 625 5 is_stmt 1 view .LVU360 1229 0082 FFF7FEFF bl HAL_UART_MspInit 1230 .LVL81: 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1231 .loc 1 625 5 is_stmt 0 view .LVU361 1232 0086 C5E7 b .L65 1233 .LVL82: 1234 .L66: 1235 .LCFI12: 1236 .cfi_def_cfa_offset 0 1237 .cfi_restore 4 1238 .cfi_restore 5 1239 .cfi_restore 6 1240 .cfi_restore 14 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1241 .loc 1 596 12 view .LVU362 1242 0088 0120 movs r0, #1 1243 .LVL83: 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1244 .loc 1 661 1 view .LVU363 1245 008a 7047 bx lr 1246 .cfi_endproc ARM GAS /tmp/cc8UBTH4.s page 103 1247 .LFE137: 1249 .section .text.HAL_UART_MspDeInit,"ax",%progbits 1250 .align 1 1251 .weak HAL_UART_MspDeInit 1252 .syntax unified 1253 .thumb 1254 .thumb_func 1255 .fpu fpv4-sp-d16 1257 HAL_UART_MspDeInit: 1258 .LVL84: 1259 .LFB140: 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 1260 .loc 1 731 1 is_stmt 1 view -0 1261 .cfi_startproc 1262 @ args = 0, pretend = 0, frame = 0 1263 @ frame_needed = 0, uses_anonymous_args = 0 1264 @ link register save eliminated. 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 1265 .loc 1 733 3 view .LVU365 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1266 .loc 1 737 1 is_stmt 0 view .LVU366 1267 0000 7047 bx lr 1268 .cfi_endproc 1269 .LFE140: 1271 .section .text.HAL_UART_DeInit,"ax",%progbits 1272 .align 1 1273 .global HAL_UART_DeInit 1274 .syntax unified 1275 .thumb 1276 .thumb_func 1277 .fpu fpv4-sp-d16 1279 HAL_UART_DeInit: 1280 .LVL85: 1281 .LFB138: 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1282 .loc 1 670 1 is_stmt 1 view -0 1283 .cfi_startproc 1284 @ args = 0, pretend = 0, frame = 0 1285 @ frame_needed = 0, uses_anonymous_args = 0 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1286 .loc 1 672 3 view .LVU368 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1287 .loc 1 672 6 is_stmt 0 view .LVU369 1288 0000 B0B1 cbz r0, .L75 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1289 .loc 1 670 1 view .LVU370 1290 0002 10B5 push {r4, lr} 1291 .LCFI13: 1292 .cfi_def_cfa_offset 8 1293 .cfi_offset 4, -8 1294 .cfi_offset 14, -4 1295 0004 0446 mov r4, r0 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1296 .loc 1 678 3 is_stmt 1 view .LVU371 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1297 .loc 1 680 3 view .LVU372 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 104 1298 .loc 1 680 17 is_stmt 0 view .LVU373 1299 0006 2423 movs r3, #36 1300 0008 80F84130 strb r3, [r0, #65] 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1301 .loc 1 683 3 is_stmt 1 view .LVU374 1302 000c 0268 ldr r2, [r0] 1303 000e D368 ldr r3, [r2, #12] 1304 0010 23F40053 bic r3, r3, #8192 1305 0014 D360 str r3, [r2, #12] 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1306 .loc 1 694 3 view .LVU375 1307 0016 FFF7FEFF bl HAL_UART_MspDeInit 1308 .LVL86: 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1309 .loc 1 697 3 view .LVU376 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1310 .loc 1 697 20 is_stmt 0 view .LVU377 1311 001a 0020 movs r0, #0 1312 001c 6064 str r0, [r4, #68] 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1313 .loc 1 698 3 is_stmt 1 view .LVU378 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1314 .loc 1 698 17 is_stmt 0 view .LVU379 1315 001e 84F84100 strb r0, [r4, #65] 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1316 .loc 1 699 3 is_stmt 1 view .LVU380 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1317 .loc 1 699 18 is_stmt 0 view .LVU381 1318 0022 84F84200 strb r0, [r4, #66] 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1319 .loc 1 700 3 is_stmt 1 view .LVU382 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1320 .loc 1 700 24 is_stmt 0 view .LVU383 1321 0026 2063 str r0, [r4, #48] 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1322 .loc 1 701 3 is_stmt 1 view .LVU384 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1323 .loc 1 701 22 is_stmt 0 view .LVU385 1324 0028 6063 str r0, [r4, #52] 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1325 .loc 1 704 3 is_stmt 1 view .LVU386 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1326 .loc 1 704 3 view .LVU387 1327 002a 84F84000 strb r0, [r4, #64] 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1328 .loc 1 704 3 view .LVU388 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1329 .loc 1 706 3 view .LVU389 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1330 .loc 1 707 1 is_stmt 0 view .LVU390 1331 002e 10BD pop {r4, pc} 1332 .LVL87: 1333 .L75: 1334 .LCFI14: 1335 .cfi_def_cfa_offset 0 1336 .cfi_restore 4 1337 .cfi_restore 14 ARM GAS /tmp/cc8UBTH4.s page 105 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1338 .loc 1 674 12 view .LVU391 1339 0030 0120 movs r0, #1 1340 .LVL88: 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1341 .loc 1 707 1 view .LVU392 1342 0032 7047 bx lr 1343 .cfi_endproc 1344 .LFE138: 1346 .section .text.HAL_UART_Transmit,"ax",%progbits 1347 .align 1 1348 .global HAL_UART_Transmit 1349 .syntax unified 1350 .thumb 1351 .thumb_func 1352 .fpu fpv4-sp-d16 1354 HAL_UART_Transmit: 1355 .LVL89: 1356 .LFB141: 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1357 .loc 1 1136 1 is_stmt 1 view -0 1358 .cfi_startproc 1359 @ args = 0, pretend = 0, frame = 0 1360 @ frame_needed = 0, uses_anonymous_args = 0 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1361 .loc 1 1136 1 is_stmt 0 view .LVU394 1362 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1363 .LCFI15: 1364 .cfi_def_cfa_offset 24 1365 .cfi_offset 4, -24 1366 .cfi_offset 5, -20 1367 .cfi_offset 6, -16 1368 .cfi_offset 7, -12 1369 .cfi_offset 8, -8 1370 .cfi_offset 14, -4 1371 0004 82B0 sub sp, sp, #8 1372 .LCFI16: 1373 .cfi_def_cfa_offset 32 1374 0006 1E46 mov r6, r3 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *pdata16bits; 1375 .loc 1 1137 3 is_stmt 1 view .LVU395 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1376 .loc 1 1138 3 view .LVU396 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1377 .loc 1 1139 3 view .LVU397 1378 .LVL90: 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1379 .loc 1 1142 3 view .LVU398 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1380 .loc 1 1142 12 is_stmt 0 view .LVU399 1381 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1382 .LVL91: 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1383 .loc 1 1142 12 view .LVU400 1384 000c DBB2 uxtb r3, r3 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1385 .loc 1 1142 6 view .LVU401 ARM GAS /tmp/cc8UBTH4.s page 106 1386 000e 202B cmp r3, #32 1387 0010 56D1 bne .L89 1388 0012 0446 mov r4, r0 1389 0014 0D46 mov r5, r1 1390 0016 9046 mov r8, r2 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1391 .loc 1 1144 5 is_stmt 1 view .LVU402 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1392 .loc 1 1144 8 is_stmt 0 view .LVU403 1393 0018 0029 cmp r1, #0 1394 001a 55D0 beq .L90 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1395 .loc 1 1144 25 discriminator 1 view .LVU404 1396 001c 0AB9 cbnz r2, .L95 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1397 .loc 1 1146 15 view .LVU405 1398 001e 0120 movs r0, #1 1399 .LVL92: 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1400 .loc 1 1146 15 view .LVU406 1401 0020 4FE0 b .L81 1402 .LVL93: 1403 .L95: 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1404 .loc 1 1149 5 is_stmt 1 view .LVU407 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1405 .loc 1 1149 22 is_stmt 0 view .LVU408 1406 0022 0023 movs r3, #0 1407 0024 4364 str r3, [r0, #68] 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1408 .loc 1 1150 5 is_stmt 1 view .LVU409 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1409 .loc 1 1150 19 is_stmt 0 view .LVU410 1410 0026 2123 movs r3, #33 1411 0028 80F84130 strb r3, [r0, #65] 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1412 .loc 1 1153 5 is_stmt 1 view .LVU411 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1413 .loc 1 1153 17 is_stmt 0 view .LVU412 1414 002c FFF7FEFF bl HAL_GetTick 1415 .LVL94: 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1416 .loc 1 1153 17 view .LVU413 1417 0030 0746 mov r7, r0 1418 .LVL95: 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1419 .loc 1 1155 5 is_stmt 1 view .LVU414 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1420 .loc 1 1155 23 is_stmt 0 view .LVU415 1421 0032 A4F82480 strh r8, [r4, #36] @ movhi 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1422 .loc 1 1156 5 is_stmt 1 view .LVU416 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1423 .loc 1 1156 24 is_stmt 0 view .LVU417 1424 0036 A4F82680 strh r8, [r4, #38] @ movhi 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1425 .loc 1 1159 5 is_stmt 1 view .LVU418 ARM GAS /tmp/cc8UBTH4.s page 107 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1426 .loc 1 1159 21 is_stmt 0 view .LVU419 1427 003a A368 ldr r3, [r4, #8] 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1428 .loc 1 1159 8 view .LVU420 1429 003c B3F5805F cmp r3, #4096 1430 0040 02D0 beq .L96 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1431 .loc 1 1167 19 view .LVU421 1432 0042 4FF00008 mov r8, #0 1433 0046 14E0 b .L86 1434 .L96: 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1435 .loc 1 1159 71 discriminator 1 view .LVU422 1436 0048 2369 ldr r3, [r4, #16] 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1437 .loc 1 1159 56 discriminator 1 view .LVU423 1438 004a 2BB3 cbz r3, .L93 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1439 .loc 1 1167 19 view .LVU424 1440 004c 4FF00008 mov r8, #0 1441 0050 0FE0 b .L86 1442 .LVL96: 1443 .L98: 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1444 .loc 1 1174 9 is_stmt 1 view .LVU425 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1445 .loc 1 1174 23 is_stmt 0 view .LVU426 1446 0052 2023 movs r3, #32 1447 0054 84F84130 strb r3, [r4, #65] 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1448 .loc 1 1176 9 is_stmt 1 view .LVU427 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1449 .loc 1 1176 16 is_stmt 0 view .LVU428 1450 0058 0320 movs r0, #3 1451 005a 32E0 b .L81 1452 .L99: 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1453 .loc 1 1180 9 is_stmt 1 view .LVU429 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1454 .loc 1 1180 42 is_stmt 0 view .LVU430 1455 005c 38F8023B ldrh r3, [r8], #2 1456 .LVL97: 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1457 .loc 1 1180 14 view .LVU431 1458 0060 2268 ldr r2, [r4] 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1459 .loc 1 1180 31 view .LVU432 1460 0062 C3F30803 ubfx r3, r3, #0, #9 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1461 .loc 1 1180 29 view .LVU433 1462 0066 5360 str r3, [r2, #4] 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1463 .loc 1 1181 9 is_stmt 1 view .LVU434 1464 .LVL98: 1465 .L85: 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 108 1466 .loc 1 1188 7 view .LVU435 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1467 .loc 1 1188 12 is_stmt 0 view .LVU436 1468 0068 E28C ldrh r2, [r4, #38] 1469 006a 92B2 uxth r2, r2 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1470 .loc 1 1188 25 view .LVU437 1471 006c 013A subs r2, r2, #1 1472 006e 92B2 uxth r2, r2 1473 0070 E284 strh r2, [r4, #38] @ movhi 1474 .LVL99: 1475 .L86: 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1476 .loc 1 1170 11 is_stmt 1 view .LVU438 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1477 .loc 1 1170 17 is_stmt 0 view .LVU439 1478 0072 E38C ldrh r3, [r4, #38] 1479 0074 9BB2 uxth r3, r3 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1480 .loc 1 1170 11 view .LVU440 1481 0076 93B1 cbz r3, .L97 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1482 .loc 1 1172 7 is_stmt 1 view .LVU441 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1483 .loc 1 1172 11 is_stmt 0 view .LVU442 1484 0078 0096 str r6, [sp] 1485 007a 3B46 mov r3, r7 1486 007c 0022 movs r2, #0 1487 007e 8021 movs r1, #128 1488 0080 2046 mov r0, r4 1489 0082 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1490 .LVL100: 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1491 .loc 1 1172 10 view .LVU443 1492 0086 0028 cmp r0, #0 1493 0088 E3D1 bne .L98 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1494 .loc 1 1178 7 is_stmt 1 view .LVU444 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1495 .loc 1 1178 10 is_stmt 0 view .LVU445 1496 008a 002D cmp r5, #0 1497 008c E6D0 beq .L99 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1498 .loc 1 1185 9 is_stmt 1 view .LVU446 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1499 .loc 1 1185 41 is_stmt 0 view .LVU447 1500 008e 15F8012B ldrb r2, [r5], #1 @ zero_extendqisi2 1501 .LVL101: 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1502 .loc 1 1185 14 view .LVU448 1503 0092 2368 ldr r3, [r4] 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1504 .loc 1 1185 29 view .LVU449 1505 0094 5A60 str r2, [r3, #4] 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1506 .loc 1 1186 9 is_stmt 1 view .LVU450 1507 .LVL102: ARM GAS /tmp/cc8UBTH4.s page 109 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1508 .loc 1 1186 9 is_stmt 0 view .LVU451 1509 0096 E7E7 b .L85 1510 .LVL103: 1511 .L93: 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1512 .loc 1 1162 19 view .LVU452 1513 0098 A846 mov r8, r5 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 1514 .loc 1 1161 19 view .LVU453 1515 009a 0025 movs r5, #0 1516 .LVL104: 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 1517 .loc 1 1161 19 view .LVU454 1518 009c E9E7 b .L86 1519 .LVL105: 1520 .L97: 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1521 .loc 1 1191 5 is_stmt 1 view .LVU455 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1522 .loc 1 1191 9 is_stmt 0 view .LVU456 1523 009e 0096 str r6, [sp] 1524 00a0 3B46 mov r3, r7 1525 00a2 0022 movs r2, #0 1526 00a4 4021 movs r1, #64 1527 00a6 2046 mov r0, r4 1528 00a8 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1529 .LVL106: 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1530 .loc 1 1191 8 view .LVU457 1531 00ac 18B9 cbnz r0, .L100 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1532 .loc 1 1199 5 is_stmt 1 view .LVU458 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1533 .loc 1 1199 19 is_stmt 0 view .LVU459 1534 00ae 2023 movs r3, #32 1535 00b0 84F84130 strb r3, [r4, #65] 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1536 .loc 1 1201 5 is_stmt 1 view .LVU460 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1537 .loc 1 1201 12 is_stmt 0 view .LVU461 1538 00b4 05E0 b .L81 1539 .L100: 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1540 .loc 1 1193 7 is_stmt 1 view .LVU462 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1541 .loc 1 1193 21 is_stmt 0 view .LVU463 1542 00b6 2023 movs r3, #32 1543 00b8 84F84130 strb r3, [r4, #65] 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1544 .loc 1 1195 7 is_stmt 1 view .LVU464 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1545 .loc 1 1195 14 is_stmt 0 view .LVU465 1546 00bc 0320 movs r0, #3 1547 00be 00E0 b .L81 1548 .LVL107: 1549 .L89: ARM GAS /tmp/cc8UBTH4.s page 110 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1550 .loc 1 1205 12 view .LVU466 1551 00c0 0220 movs r0, #2 1552 .LVL108: 1553 .L81: 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1554 .loc 1 1207 1 view .LVU467 1555 00c2 02B0 add sp, sp, #8 1556 .LCFI17: 1557 .cfi_remember_state 1558 .cfi_def_cfa_offset 24 1559 @ sp needed 1560 00c4 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1561 .LVL109: 1562 .L90: 1563 .LCFI18: 1564 .cfi_restore_state 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1565 .loc 1 1146 15 view .LVU468 1566 00c8 0120 movs r0, #1 1567 .LVL110: 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1568 .loc 1 1146 15 view .LVU469 1569 00ca FAE7 b .L81 1570 .cfi_endproc 1571 .LFE141: 1573 .section .text.HAL_UART_Receive,"ax",%progbits 1574 .align 1 1575 .global HAL_UART_Receive 1576 .syntax unified 1577 .thumb 1578 .thumb_func 1579 .fpu fpv4-sp-d16 1581 HAL_UART_Receive: 1582 .LVL111: 1583 .LFB142: 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1584 .loc 1 1222 1 is_stmt 1 view -0 1585 .cfi_startproc 1586 @ args = 0, pretend = 0, frame = 0 1587 @ frame_needed = 0, uses_anonymous_args = 0 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1588 .loc 1 1222 1 is_stmt 0 view .LVU471 1589 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1590 .LCFI19: 1591 .cfi_def_cfa_offset 24 1592 .cfi_offset 4, -24 1593 .cfi_offset 5, -20 1594 .cfi_offset 6, -16 1595 .cfi_offset 7, -12 1596 .cfi_offset 8, -8 1597 .cfi_offset 14, -4 1598 0004 82B0 sub sp, sp, #8 1599 .LCFI20: 1600 .cfi_def_cfa_offset 32 1601 0006 1E46 mov r6, r3 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; ARM GAS /tmp/cc8UBTH4.s page 111 1602 .loc 1 1223 3 is_stmt 1 view .LVU472 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1603 .loc 1 1224 3 view .LVU473 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1604 .loc 1 1225 3 view .LVU474 1605 .LVL112: 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1606 .loc 1 1228 3 view .LVU475 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1607 .loc 1 1228 12 is_stmt 0 view .LVU476 1608 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 1609 .LVL113: 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1610 .loc 1 1228 12 view .LVU477 1611 000c DBB2 uxtb r3, r3 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1612 .loc 1 1228 6 view .LVU478 1613 000e 202B cmp r3, #32 1614 0010 59D1 bne .L112 1615 0012 0446 mov r4, r0 1616 0014 0D46 mov r5, r1 1617 0016 9046 mov r8, r2 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1618 .loc 1 1230 5 is_stmt 1 view .LVU479 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1619 .loc 1 1230 8 is_stmt 0 view .LVU480 1620 0018 0029 cmp r1, #0 1621 001a 58D0 beq .L113 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1622 .loc 1 1230 25 discriminator 1 view .LVU481 1623 001c 0AB9 cbnz r2, .L118 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1624 .loc 1 1232 15 view .LVU482 1625 001e 0120 movs r0, #1 1626 .LVL114: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1627 .loc 1 1232 15 view .LVU483 1628 0020 52E0 b .L102 1629 .LVL115: 1630 .L118: 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1631 .loc 1 1235 5 is_stmt 1 view .LVU484 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1632 .loc 1 1235 22 is_stmt 0 view .LVU485 1633 0022 0023 movs r3, #0 1634 0024 4364 str r3, [r0, #68] 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1635 .loc 1 1236 5 is_stmt 1 view .LVU486 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1636 .loc 1 1236 20 is_stmt 0 view .LVU487 1637 0026 2222 movs r2, #34 1638 .LVL116: 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1639 .loc 1 1236 20 view .LVU488 1640 0028 80F84220 strb r2, [r0, #66] 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1641 .loc 1 1237 5 is_stmt 1 view .LVU489 ARM GAS /tmp/cc8UBTH4.s page 112 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1642 .loc 1 1237 26 is_stmt 0 view .LVU490 1643 002c 0363 str r3, [r0, #48] 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1644 .loc 1 1240 5 is_stmt 1 view .LVU491 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1645 .loc 1 1240 17 is_stmt 0 view .LVU492 1646 002e FFF7FEFF bl HAL_GetTick 1647 .LVL117: 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1648 .loc 1 1240 17 view .LVU493 1649 0032 0746 mov r7, r0 1650 .LVL118: 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1651 .loc 1 1242 5 is_stmt 1 view .LVU494 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1652 .loc 1 1242 23 is_stmt 0 view .LVU495 1653 0034 A4F82C80 strh r8, [r4, #44] @ movhi 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1654 .loc 1 1243 5 is_stmt 1 view .LVU496 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1655 .loc 1 1243 24 is_stmt 0 view .LVU497 1656 0038 A4F82E80 strh r8, [r4, #46] @ movhi 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1657 .loc 1 1246 5 is_stmt 1 view .LVU498 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1658 .loc 1 1246 21 is_stmt 0 view .LVU499 1659 003c A368 ldr r3, [r4, #8] 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1660 .loc 1 1246 8 view .LVU500 1661 003e B3F5805F cmp r3, #4096 1662 0042 02D0 beq .L119 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1663 .loc 1 1254 19 view .LVU501 1664 0044 4FF00008 mov r8, #0 1665 0048 1CE0 b .L104 1666 .L119: 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1667 .loc 1 1246 71 discriminator 1 view .LVU502 1668 004a 2369 ldr r3, [r4, #16] 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1669 .loc 1 1246 56 discriminator 1 view .LVU503 1670 004c 13B1 cbz r3, .L116 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1671 .loc 1 1254 19 view .LVU504 1672 004e 4FF00008 mov r8, #0 1673 0052 17E0 b .L104 1674 .L116: 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1675 .loc 1 1249 19 view .LVU505 1676 0054 A846 mov r8, r5 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1677 .loc 1 1248 19 view .LVU506 1678 0056 0025 movs r5, #0 1679 .LVL119: 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1680 .loc 1 1248 19 view .LVU507 ARM GAS /tmp/cc8UBTH4.s page 113 1681 0058 14E0 b .L104 1682 .LVL120: 1683 .L121: 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1684 .loc 1 1262 9 is_stmt 1 view .LVU508 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1685 .loc 1 1262 24 is_stmt 0 view .LVU509 1686 005a 2023 movs r3, #32 1687 005c 84F84230 strb r3, [r4, #66] 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1688 .loc 1 1264 9 is_stmt 1 view .LVU510 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1689 .loc 1 1264 16 is_stmt 0 view .LVU511 1690 0060 0320 movs r0, #3 1691 0062 31E0 b .L102 1692 .L122: 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1693 .loc 1 1268 9 is_stmt 1 view .LVU512 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1694 .loc 1 1268 40 is_stmt 0 view .LVU513 1695 0064 2368 ldr r3, [r4] 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1696 .loc 1 1268 50 view .LVU514 1697 0066 5B68 ldr r3, [r3, #4] 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1698 .loc 1 1268 24 view .LVU515 1699 0068 C3F30803 ubfx r3, r3, #0, #9 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1700 .loc 1 1268 22 view .LVU516 1701 006c 28F8023B strh r3, [r8], #2 @ movhi 1702 .LVL121: 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1703 .loc 1 1269 9 is_stmt 1 view .LVU517 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1704 .loc 1 1269 9 is_stmt 0 view .LVU518 1705 0070 03E0 b .L107 1706 .L108: 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1707 .loc 1 1275 11 is_stmt 1 view .LVU519 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1708 .loc 1 1275 40 is_stmt 0 view .LVU520 1709 0072 2368 ldr r3, [r4] 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1710 .loc 1 1275 50 view .LVU521 1711 0074 5B68 ldr r3, [r3, #4] 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1712 .loc 1 1275 23 view .LVU522 1713 0076 2B70 strb r3, [r5] 1714 .L110: 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1715 .loc 1 1281 9 is_stmt 1 view .LVU523 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1716 .loc 1 1281 19 is_stmt 0 view .LVU524 1717 0078 0135 adds r5, r5, #1 1718 .LVL122: 1719 .L107: 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 114 1720 .loc 1 1283 7 is_stmt 1 view .LVU525 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1721 .loc 1 1283 12 is_stmt 0 view .LVU526 1722 007a E28D ldrh r2, [r4, #46] 1723 007c 92B2 uxth r2, r2 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1724 .loc 1 1283 25 view .LVU527 1725 007e 013A subs r2, r2, #1 1726 0080 92B2 uxth r2, r2 1727 0082 E285 strh r2, [r4, #46] @ movhi 1728 .LVL123: 1729 .L104: 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1730 .loc 1 1258 11 is_stmt 1 view .LVU528 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1731 .loc 1 1258 17 is_stmt 0 view .LVU529 1732 0084 E38D ldrh r3, [r4, #46] 1733 0086 9BB2 uxth r3, r3 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1734 .loc 1 1258 11 view .LVU530 1735 0088 C3B1 cbz r3, .L120 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1736 .loc 1 1260 7 is_stmt 1 view .LVU531 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1737 .loc 1 1260 11 is_stmt 0 view .LVU532 1738 008a 0096 str r6, [sp] 1739 008c 3B46 mov r3, r7 1740 008e 0022 movs r2, #0 1741 0090 2021 movs r1, #32 1742 0092 2046 mov r0, r4 1743 0094 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1744 .LVL124: 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1745 .loc 1 1260 10 view .LVU533 1746 0098 0028 cmp r0, #0 1747 009a DED1 bne .L121 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1748 .loc 1 1266 7 is_stmt 1 view .LVU534 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1749 .loc 1 1266 10 is_stmt 0 view .LVU535 1750 009c 002D cmp r5, #0 1751 009e E1D0 beq .L122 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1752 .loc 1 1273 9 is_stmt 1 view .LVU536 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1753 .loc 1 1273 25 is_stmt 0 view .LVU537 1754 00a0 A368 ldr r3, [r4, #8] 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1755 .loc 1 1273 12 view .LVU538 1756 00a2 B3F5805F cmp r3, #4096 1757 00a6 E4D0 beq .L108 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1758 .loc 1 1273 60 discriminator 1 view .LVU539 1759 00a8 13B9 cbnz r3, .L109 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1760 .loc 1 1273 126 discriminator 2 view .LVU540 1761 00aa 2369 ldr r3, [r4, #16] ARM GAS /tmp/cc8UBTH4.s page 115 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1762 .loc 1 1273 111 discriminator 2 view .LVU541 1763 00ac 002B cmp r3, #0 1764 00ae E0D0 beq .L108 1765 .L109: 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1766 .loc 1 1279 11 is_stmt 1 view .LVU542 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1767 .loc 1 1279 40 is_stmt 0 view .LVU543 1768 00b0 2368 ldr r3, [r4] 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1769 .loc 1 1279 50 view .LVU544 1770 00b2 5B68 ldr r3, [r3, #4] 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1771 .loc 1 1279 25 view .LVU545 1772 00b4 03F07F03 and r3, r3, #127 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1773 .loc 1 1279 23 view .LVU546 1774 00b8 2B70 strb r3, [r5] 1775 00ba DDE7 b .L110 1776 .L120: 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1777 .loc 1 1287 5 is_stmt 1 view .LVU547 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1778 .loc 1 1287 20 is_stmt 0 view .LVU548 1779 00bc 2023 movs r3, #32 1780 00be 84F84230 strb r3, [r4, #66] 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1781 .loc 1 1289 5 is_stmt 1 view .LVU549 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1782 .loc 1 1289 12 is_stmt 0 view .LVU550 1783 00c2 0020 movs r0, #0 1784 00c4 00E0 b .L102 1785 .LVL125: 1786 .L112: 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1787 .loc 1 1293 12 view .LVU551 1788 00c6 0220 movs r0, #2 1789 .LVL126: 1790 .L102: 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1791 .loc 1 1295 1 view .LVU552 1792 00c8 02B0 add sp, sp, #8 1793 .LCFI21: 1794 .cfi_remember_state 1795 .cfi_def_cfa_offset 24 1796 @ sp needed 1797 00ca BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1798 .LVL127: 1799 .L113: 1800 .LCFI22: 1801 .cfi_restore_state 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1802 .loc 1 1232 15 view .LVU553 1803 00ce 0120 movs r0, #1 1804 .LVL128: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 116 1805 .loc 1 1232 15 view .LVU554 1806 00d0 FAE7 b .L102 1807 .cfi_endproc 1808 .LFE142: 1810 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1811 .align 1 1812 .global HAL_UART_Transmit_IT 1813 .syntax unified 1814 .thumb 1815 .thumb_func 1816 .fpu fpv4-sp-d16 1818 HAL_UART_Transmit_IT: 1819 .LVL129: 1820 .LFB143: 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1821 .loc 1 1309 1 is_stmt 1 view -0 1822 .cfi_startproc 1823 @ args = 0, pretend = 0, frame = 0 1824 @ frame_needed = 0, uses_anonymous_args = 0 1825 @ link register save eliminated. 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1826 .loc 1 1311 3 view .LVU556 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1827 .loc 1 1311 12 is_stmt 0 view .LVU557 1828 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1829 0004 DBB2 uxtb r3, r3 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1830 .loc 1 1311 6 view .LVU558 1831 0006 202B cmp r3, #32 1832 0008 10D1 bne .L125 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1833 .loc 1 1313 5 is_stmt 1 view .LVU559 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1834 .loc 1 1313 8 is_stmt 0 view .LVU560 1835 000a 89B1 cbz r1, .L126 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1836 .loc 1 1313 25 discriminator 1 view .LVU561 1837 000c 92B1 cbz r2, .L127 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1838 .loc 1 1318 5 is_stmt 1 view .LVU562 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1839 .loc 1 1318 23 is_stmt 0 view .LVU563 1840 000e 0162 str r1, [r0, #32] 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1841 .loc 1 1319 5 is_stmt 1 view .LVU564 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1842 .loc 1 1319 23 is_stmt 0 view .LVU565 1843 0010 8284 strh r2, [r0, #36] @ movhi 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1844 .loc 1 1320 5 is_stmt 1 view .LVU566 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1845 .loc 1 1320 24 is_stmt 0 view .LVU567 1846 0012 C284 strh r2, [r0, #38] @ movhi 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1847 .loc 1 1322 5 is_stmt 1 view .LVU568 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1848 .loc 1 1322 22 is_stmt 0 view .LVU569 ARM GAS /tmp/cc8UBTH4.s page 117 1849 0014 0023 movs r3, #0 1850 0016 4364 str r3, [r0, #68] 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1851 .loc 1 1323 5 is_stmt 1 view .LVU570 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1852 .loc 1 1323 19 is_stmt 0 view .LVU571 1853 0018 2122 movs r2, #33 1854 .LVL130: 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1855 .loc 1 1323 19 view .LVU572 1856 001a 80F84120 strb r2, [r0, #65] 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1857 .loc 1 1326 5 is_stmt 1 view .LVU573 1858 001e 0168 ldr r1, [r0] 1859 .LVL131: 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1860 .loc 1 1326 5 is_stmt 0 view .LVU574 1861 0020 CA68 ldr r2, [r1, #12] 1862 0022 42F08002 orr r2, r2, #128 1863 0026 CA60 str r2, [r1, #12] 1864 .LVL132: 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1865 .loc 1 1328 5 is_stmt 1 view .LVU575 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1866 .loc 1 1328 12 is_stmt 0 view .LVU576 1867 0028 1846 mov r0, r3 1868 .LVL133: 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1869 .loc 1 1328 12 view .LVU577 1870 002a 7047 bx lr 1871 .LVL134: 1872 .L125: 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1873 .loc 1 1332 12 view .LVU578 1874 002c 0220 movs r0, #2 1875 .LVL135: 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1876 .loc 1 1332 12 view .LVU579 1877 002e 7047 bx lr 1878 .LVL136: 1879 .L126: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1880 .loc 1 1315 14 view .LVU580 1881 0030 0120 movs r0, #1 1882 .LVL137: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1883 .loc 1 1315 14 view .LVU581 1884 0032 7047 bx lr 1885 .LVL138: 1886 .L127: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1887 .loc 1 1315 14 view .LVU582 1888 0034 0120 movs r0, #1 1889 .LVL139: 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1890 .loc 1 1334 1 view .LVU583 1891 0036 7047 bx lr ARM GAS /tmp/cc8UBTH4.s page 118 1892 .cfi_endproc 1893 .LFE143: 1895 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1896 .align 1 1897 .global HAL_UART_Transmit_DMA 1898 .syntax unified 1899 .thumb 1900 .thumb_func 1901 .fpu fpv4-sp-d16 1903 HAL_UART_Transmit_DMA: 1904 .LVL140: 1905 .LFB145: 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1906 .loc 1 1380 1 is_stmt 1 view -0 1907 .cfi_startproc 1908 @ args = 0, pretend = 0, frame = 0 1909 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1910 .loc 1 1380 1 is_stmt 0 view .LVU585 1911 0000 38B5 push {r3, r4, r5, lr} 1912 .LCFI23: 1913 .cfi_def_cfa_offset 16 1914 .cfi_offset 3, -16 1915 .cfi_offset 4, -12 1916 .cfi_offset 5, -8 1917 .cfi_offset 14, -4 1918 0002 1346 mov r3, r2 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1919 .loc 1 1381 3 is_stmt 1 view .LVU586 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1920 .loc 1 1384 3 view .LVU587 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1921 .loc 1 1384 12 is_stmt 0 view .LVU588 1922 0004 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 1923 .LVL141: 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1924 .loc 1 1384 12 view .LVU589 1925 0008 D2B2 uxtb r2, r2 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1926 .loc 1 1384 6 view .LVU590 1927 000a 202A cmp r2, #32 1928 000c 36D1 bne .L132 1929 000e 0446 mov r4, r0 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1930 .loc 1 1386 5 is_stmt 1 view .LVU591 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1931 .loc 1 1386 8 is_stmt 0 view .LVU592 1932 0010 0029 cmp r1, #0 1933 0012 35D0 beq .L133 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1934 .loc 1 1386 25 discriminator 1 view .LVU593 1935 0014 0BB9 cbnz r3, .L136 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1936 .loc 1 1388 14 view .LVU594 1937 0016 0120 movs r0, #1 1938 .LVL142: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 119 1939 .loc 1 1388 14 view .LVU595 1940 0018 31E0 b .L129 1941 .LVL143: 1942 .L136: 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1943 .loc 1 1391 5 is_stmt 1 view .LVU596 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1944 .loc 1 1391 23 is_stmt 0 view .LVU597 1945 001a 0162 str r1, [r0, #32] 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1946 .loc 1 1392 5 is_stmt 1 view .LVU598 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1947 .loc 1 1392 23 is_stmt 0 view .LVU599 1948 001c 8384 strh r3, [r0, #36] @ movhi 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1949 .loc 1 1393 5 is_stmt 1 view .LVU600 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1950 .loc 1 1393 24 is_stmt 0 view .LVU601 1951 001e C384 strh r3, [r0, #38] @ movhi 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1952 .loc 1 1395 5 is_stmt 1 view .LVU602 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1953 .loc 1 1395 22 is_stmt 0 view .LVU603 1954 0020 0022 movs r2, #0 1955 0022 4264 str r2, [r0, #68] 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1956 .loc 1 1396 5 is_stmt 1 view .LVU604 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1957 .loc 1 1396 19 is_stmt 0 view .LVU605 1958 0024 2120 movs r0, #33 1959 .LVL144: 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1960 .loc 1 1396 19 view .LVU606 1961 0026 84F84100 strb r0, [r4, #65] 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1962 .loc 1 1399 5 is_stmt 1 view .LVU607 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1963 .loc 1 1399 10 is_stmt 0 view .LVU608 1964 002a A06B ldr r0, [r4, #56] 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1965 .loc 1 1399 37 view .LVU609 1966 002c 154D ldr r5, .L137 1967 002e C563 str r5, [r0, #60] 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1968 .loc 1 1402 5 is_stmt 1 view .LVU610 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1969 .loc 1 1402 10 is_stmt 0 view .LVU611 1970 0030 A06B ldr r0, [r4, #56] 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1971 .loc 1 1402 41 view .LVU612 1972 0032 154D ldr r5, .L137+4 1973 0034 0564 str r5, [r0, #64] 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1974 .loc 1 1405 5 is_stmt 1 view .LVU613 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1975 .loc 1 1405 10 is_stmt 0 view .LVU614 1976 0036 A06B ldr r0, [r4, #56] ARM GAS /tmp/cc8UBTH4.s page 120 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1977 .loc 1 1405 38 view .LVU615 1978 0038 144D ldr r5, .L137+8 1979 003a C564 str r5, [r0, #76] 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1980 .loc 1 1408 5 is_stmt 1 view .LVU616 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1981 .loc 1 1408 10 is_stmt 0 view .LVU617 1982 003c A06B ldr r0, [r4, #56] 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1983 .loc 1 1408 38 view .LVU618 1984 003e 0265 str r2, [r0, #80] 1411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmatx, *(const uint32_t *)tmp, (uint32_t)&huart->Instance->DR, Siz 1985 .loc 1 1411 5 is_stmt 1 view .LVU619 1986 .LVL145: 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1987 .loc 1 1412 5 view .LVU620 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1988 .loc 1 1412 81 is_stmt 0 view .LVU621 1989 0040 2268 ldr r2, [r4] 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1990 .loc 1 1412 9 view .LVU622 1991 0042 0432 adds r2, r2, #4 1992 0044 A06B ldr r0, [r4, #56] 1993 0046 FFF7FEFF bl HAL_DMA_Start_IT 1994 .LVL146: 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1995 .loc 1 1412 8 view .LVU623 1996 004a 30B1 cbz r0, .L130 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1997 .loc 1 1415 7 is_stmt 1 view .LVU624 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1998 .loc 1 1415 24 is_stmt 0 view .LVU625 1999 004c 1023 movs r3, #16 2000 004e 6364 str r3, [r4, #68] 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2001 .loc 1 1418 7 is_stmt 1 view .LVU626 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2002 .loc 1 1418 21 is_stmt 0 view .LVU627 2003 0050 2023 movs r3, #32 2004 0052 84F84130 strb r3, [r4, #65] 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2005 .loc 1 1420 7 is_stmt 1 view .LVU628 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2006 .loc 1 1420 14 is_stmt 0 view .LVU629 2007 0056 0120 movs r0, #1 2008 0058 11E0 b .L129 2009 .L130: 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2010 .loc 1 1423 5 is_stmt 1 view .LVU630 2011 005a 2368 ldr r3, [r4] 2012 005c 6FF04002 mvn r2, #64 2013 0060 1A60 str r2, [r3] 2014 .L131: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2015 .loc 1 1427 5 discriminator 1 view .LVU631 2016 .LBB331: ARM GAS /tmp/cc8UBTH4.s page 121 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2017 .loc 1 1427 5 discriminator 1 view .LVU632 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2018 .loc 1 1427 5 discriminator 1 view .LVU633 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2019 .loc 1 1427 5 discriminator 1 view .LVU634 2020 0062 2268 ldr r2, [r4] 2021 .LVL147: 2022 .LBB332: 2023 .LBI332: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2024 .loc 2 476 31 discriminator 1 view .LVU635 2025 .LBB333: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2026 .loc 2 478 5 discriminator 1 view .LVU636 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2027 .loc 2 480 4 discriminator 1 view .LVU637 2028 0064 02F11403 add r3, r2, #20 2029 .LVL148: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2030 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU638 2031 .syntax unified 2032 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2033 0068 53E8003F ldrex r3, [r3] 2034 @ 0 "" 2 2035 .LVL149: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2036 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU639 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2037 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU640 2038 .thumb 2039 .syntax unified 2040 .LBE333: 2041 .LBE332: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2042 .loc 1 1427 5 discriminator 1 view .LVU641 2043 006c 43F08003 orr r3, r3, #128 2044 .LVL150: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2045 .loc 1 1427 5 is_stmt 1 discriminator 1 view .LVU642 2046 .LBB334: 2047 .LBI334: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2048 .loc 2 527 31 discriminator 1 view .LVU643 2049 .LBB335: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2050 .loc 2 529 4 discriminator 1 view .LVU644 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2051 .loc 2 531 4 discriminator 1 view .LVU645 2052 0070 1432 adds r2, r2, #20 2053 .LVL151: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2054 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU646 2055 .syntax unified 2056 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2057 0072 42E80031 strex r1, r3, [r2] 2058 @ 0 "" 2 ARM GAS /tmp/cc8UBTH4.s page 122 2059 .LVL152: 2060 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU647 2061 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU648 2062 .thumb 2063 .syntax unified 2064 .LBE335: 2065 .LBE334: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2066 .loc 1 1427 5 discriminator 1 view .LVU649 2067 0076 0029 cmp r1, #0 2068 0078 F3D1 bne .L131 2069 007a 00E0 b .L129 2070 .LVL153: 2071 .L132: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2072 .loc 1 1427 5 discriminator 1 view .LVU650 2073 .LBE331: 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2074 .loc 1 1433 12 view .LVU651 2075 007c 0220 movs r0, #2 2076 .LVL154: 2077 .L129: 1435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2078 .loc 1 1435 1 view .LVU652 2079 007e 38BD pop {r3, r4, r5, pc} 2080 .LVL155: 2081 .L133: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2082 .loc 1 1388 14 view .LVU653 2083 0080 0120 movs r0, #1 2084 .LVL156: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2085 .loc 1 1388 14 view .LVU654 2086 0082 FCE7 b .L129 2087 .L138: 2088 .align 2 2089 .L137: 2090 0084 00000000 .word UART_DMATransmitCplt 2091 0088 00000000 .word UART_DMATxHalfCplt 2092 008c 00000000 .word UART_DMAError 2093 .cfi_endproc 2094 .LFE145: 2096 .section .text.HAL_UART_DMAPause,"ax",%progbits 2097 .align 1 2098 .global HAL_UART_DMAPause 2099 .syntax unified 2100 .thumb 2101 .thumb_func 2102 .fpu fpv4-sp-d16 2104 HAL_UART_DMAPause: 2105 .LVL157: 2106 .LFB147: 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2107 .loc 1 1477 1 is_stmt 1 view -0 2108 .cfi_startproc 2109 @ args = 0, pretend = 0, frame = 0 2110 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc8UBTH4.s page 123 2111 @ link register save eliminated. 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2112 .loc 1 1478 3 view .LVU656 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2113 .loc 1 1480 3 view .LVU657 1480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2114 .loc 1 1480 16 is_stmt 0 view .LVU658 2115 0000 0368 ldr r3, [r0] 2116 0002 5A69 ldr r2, [r3, #20] 2117 0004 02F08002 and r2, r2, #128 2118 .LVL158: 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2119 .loc 1 1481 3 is_stmt 1 view .LVU659 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2120 .loc 1 1481 13 is_stmt 0 view .LVU660 2121 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2122 000c DBB2 uxtb r3, r3 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2123 .loc 1 1481 6 view .LVU661 2124 000e 212B cmp r3, #33 2125 0010 0AD0 beq .L146 2126 .LVL159: 2127 .L140: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2128 .loc 1 1484 5 is_stmt 1 discriminator 2 view .LVU662 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2129 .loc 1 1487 3 discriminator 2 view .LVU663 1487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2130 .loc 1 1487 16 is_stmt 0 discriminator 2 view .LVU664 2131 0012 0368 ldr r3, [r0] 2132 0014 5A69 ldr r2, [r3, #20] 2133 0016 02F04002 and r2, r2, #64 2134 .LVL160: 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2135 .loc 1 1488 3 is_stmt 1 discriminator 2 view .LVU665 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2136 .loc 1 1488 13 is_stmt 0 discriminator 2 view .LVU666 2137 001a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2138 001e DBB2 uxtb r3, r3 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2139 .loc 1 1488 6 discriminator 2 view .LVU667 2140 0020 222B cmp r3, #34 2141 0022 10D0 beq .L147 2142 .LVL161: 2143 .L142: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2144 .loc 1 1495 5 is_stmt 1 discriminator 2 view .LVU668 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2145 .loc 1 1498 3 discriminator 2 view .LVU669 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2146 .loc 1 1499 1 is_stmt 0 discriminator 2 view .LVU670 2147 0024 0020 movs r0, #0 2148 .LVL162: 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2149 .loc 1 1499 1 discriminator 2 view .LVU671 2150 0026 7047 bx lr 2151 .LVL163: ARM GAS /tmp/cc8UBTH4.s page 124 2152 .L146: 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2153 .loc 1 1481 49 discriminator 1 view .LVU672 2154 0028 002A cmp r2, #0 2155 002a F2D0 beq .L140 2156 .LVL164: 2157 .L141: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2158 .loc 1 1484 5 is_stmt 1 discriminator 1 view .LVU673 2159 .LBB336: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2160 .loc 1 1484 5 discriminator 1 view .LVU674 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2161 .loc 1 1484 5 discriminator 1 view .LVU675 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2162 .loc 1 1484 5 discriminator 1 view .LVU676 2163 002c 0268 ldr r2, [r0] 2164 .LVL165: 2165 .LBB337: 2166 .LBI337: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2167 .loc 2 476 31 discriminator 1 view .LVU677 2168 .LBB338: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2169 .loc 2 478 5 discriminator 1 view .LVU678 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2170 .loc 2 480 4 discriminator 1 view .LVU679 2171 002e 02F11403 add r3, r2, #20 2172 .LVL166: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2173 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU680 2174 .syntax unified 2175 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2176 0032 53E8003F ldrex r3, [r3] 2177 @ 0 "" 2 2178 .LVL167: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2179 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU681 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2180 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU682 2181 .thumb 2182 .syntax unified 2183 .LBE338: 2184 .LBE337: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2185 .loc 1 1484 5 discriminator 1 view .LVU683 2186 0036 23F08003 bic r3, r3, #128 2187 .LVL168: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2188 .loc 1 1484 5 is_stmt 1 discriminator 1 view .LVU684 2189 .LBB339: 2190 .LBI339: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2191 .loc 2 527 31 discriminator 1 view .LVU685 2192 .LBB340: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2193 .loc 2 529 4 discriminator 1 view .LVU686 ARM GAS /tmp/cc8UBTH4.s page 125 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2194 .loc 2 531 4 discriminator 1 view .LVU687 2195 003a 1432 adds r2, r2, #20 2196 .LVL169: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2197 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU688 2198 .syntax unified 2199 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2200 003c 42E80031 strex r1, r3, [r2] 2201 @ 0 "" 2 2202 .LVL170: 2203 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU689 2204 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU690 2205 .thumb 2206 .syntax unified 2207 .LBE340: 2208 .LBE339: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2209 .loc 1 1484 5 discriminator 1 view .LVU691 2210 0040 0029 cmp r1, #0 2211 0042 F3D1 bne .L141 2212 0044 E5E7 b .L140 2213 .LVL171: 2214 .L147: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2215 .loc 1 1484 5 discriminator 1 view .LVU692 2216 .LBE336: 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2217 .loc 1 1488 50 discriminator 1 view .LVU693 2218 0046 002A cmp r2, #0 2219 0048 ECD0 beq .L142 2220 .LVL172: 2221 .L143: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2222 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU694 2223 .LBB341: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2224 .loc 1 1491 5 discriminator 1 view .LVU695 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2225 .loc 1 1491 5 discriminator 1 view .LVU696 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2226 .loc 1 1491 5 discriminator 1 view .LVU697 2227 004a 0268 ldr r2, [r0] 2228 .LVL173: 2229 .LBB342: 2230 .LBI342: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2231 .loc 2 476 31 discriminator 1 view .LVU698 2232 .LBB343: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2233 .loc 2 478 5 discriminator 1 view .LVU699 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2234 .loc 2 480 4 discriminator 1 view .LVU700 2235 004c 02F10C03 add r3, r2, #12 2236 .LVL174: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2237 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU701 ARM GAS /tmp/cc8UBTH4.s page 126 2238 .syntax unified 2239 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2240 0050 53E8003F ldrex r3, [r3] 2241 @ 0 "" 2 2242 .LVL175: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2243 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU702 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2244 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU703 2245 .thumb 2246 .syntax unified 2247 .LBE343: 2248 .LBE342: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2249 .loc 1 1491 5 discriminator 1 view .LVU704 2250 0054 23F48073 bic r3, r3, #256 2251 .LVL176: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2252 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU705 2253 .LBB344: 2254 .LBI344: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2255 .loc 2 527 31 discriminator 1 view .LVU706 2256 .LBB345: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2257 .loc 2 529 4 discriminator 1 view .LVU707 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2258 .loc 2 531 4 discriminator 1 view .LVU708 2259 0058 0C32 adds r2, r2, #12 2260 .LVL177: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2261 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU709 2262 .syntax unified 2263 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2264 005a 42E80031 strex r1, r3, [r2] 2265 @ 0 "" 2 2266 .LVL178: 2267 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU710 2268 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU711 2269 .thumb 2270 .syntax unified 2271 .LBE345: 2272 .LBE344: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2273 .loc 1 1491 5 discriminator 1 view .LVU712 2274 005e 0029 cmp r1, #0 2275 0060 F3D1 bne .L143 2276 .LVL179: 2277 .L144: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2278 .loc 1 1491 5 discriminator 1 view .LVU713 2279 .LBE341: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2280 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU714 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2281 .loc 1 1492 5 discriminator 1 view .LVU715 2282 .LBB346: ARM GAS /tmp/cc8UBTH4.s page 127 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2283 .loc 1 1492 5 discriminator 1 view .LVU716 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2284 .loc 1 1492 5 discriminator 1 view .LVU717 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2285 .loc 1 1492 5 discriminator 1 view .LVU718 2286 0062 0268 ldr r2, [r0] 2287 .LVL180: 2288 .LBB347: 2289 .LBI347: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2290 .loc 2 476 31 discriminator 1 view .LVU719 2291 .LBB348: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2292 .loc 2 478 5 discriminator 1 view .LVU720 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2293 .loc 2 480 4 discriminator 1 view .LVU721 2294 0064 02F11403 add r3, r2, #20 2295 .LVL181: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2296 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU722 2297 .syntax unified 2298 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2299 0068 53E8003F ldrex r3, [r3] 2300 @ 0 "" 2 2301 .LVL182: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2302 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU723 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2303 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU724 2304 .thumb 2305 .syntax unified 2306 .LBE348: 2307 .LBE347: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2308 .loc 1 1492 5 discriminator 1 view .LVU725 2309 006c 23F00103 bic r3, r3, #1 2310 .LVL183: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2311 .loc 1 1492 5 is_stmt 1 discriminator 1 view .LVU726 2312 .LBB349: 2313 .LBI349: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2314 .loc 2 527 31 discriminator 1 view .LVU727 2315 .LBB350: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2316 .loc 2 529 4 discriminator 1 view .LVU728 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2317 .loc 2 531 4 discriminator 1 view .LVU729 2318 0070 1432 adds r2, r2, #20 2319 .LVL184: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2320 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU730 2321 .syntax unified 2322 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2323 0072 42E80031 strex r1, r3, [r2] 2324 @ 0 "" 2 ARM GAS /tmp/cc8UBTH4.s page 128 2325 .LVL185: 2326 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU731 2327 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU732 2328 .thumb 2329 .syntax unified 2330 .LBE350: 2331 .LBE349: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2332 .loc 1 1492 5 discriminator 1 view .LVU733 2333 0076 0029 cmp r1, #0 2334 0078 F3D1 bne .L144 2335 .LVL186: 2336 .L145: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2337 .loc 1 1492 5 discriminator 1 view .LVU734 2338 .LBE346: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2339 .loc 1 1492 5 is_stmt 1 discriminator 1 view .LVU735 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2340 .loc 1 1495 5 discriminator 1 view .LVU736 2341 .LBB351: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2342 .loc 1 1495 5 discriminator 1 view .LVU737 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2343 .loc 1 1495 5 discriminator 1 view .LVU738 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2344 .loc 1 1495 5 discriminator 1 view .LVU739 2345 007a 0268 ldr r2, [r0] 2346 .LVL187: 2347 .LBB352: 2348 .LBI352: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2349 .loc 2 476 31 discriminator 1 view .LVU740 2350 .LBB353: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2351 .loc 2 478 5 discriminator 1 view .LVU741 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2352 .loc 2 480 4 discriminator 1 view .LVU742 2353 007c 02F11403 add r3, r2, #20 2354 .LVL188: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2355 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU743 2356 .syntax unified 2357 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2358 0080 53E8003F ldrex r3, [r3] 2359 @ 0 "" 2 2360 .LVL189: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2361 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU744 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2362 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU745 2363 .thumb 2364 .syntax unified 2365 .LBE353: 2366 .LBE352: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2367 .loc 1 1495 5 discriminator 1 view .LVU746 ARM GAS /tmp/cc8UBTH4.s page 129 2368 0084 23F04003 bic r3, r3, #64 2369 .LVL190: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2370 .loc 1 1495 5 is_stmt 1 discriminator 1 view .LVU747 2371 .LBB354: 2372 .LBI354: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2373 .loc 2 527 31 discriminator 1 view .LVU748 2374 .LBB355: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2375 .loc 2 529 4 discriminator 1 view .LVU749 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2376 .loc 2 531 4 discriminator 1 view .LVU750 2377 0088 1432 adds r2, r2, #20 2378 .LVL191: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2379 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU751 2380 .syntax unified 2381 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2382 008a 42E80031 strex r1, r3, [r2] 2383 @ 0 "" 2 2384 .LVL192: 2385 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU752 2386 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU753 2387 .thumb 2388 .syntax unified 2389 .LBE355: 2390 .LBE354: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2391 .loc 1 1495 5 discriminator 1 view .LVU754 2392 008e 0029 cmp r1, #0 2393 0090 F3D1 bne .L145 2394 0092 C7E7 b .L142 2395 .LBE351: 2396 .cfi_endproc 2397 .LFE147: 2399 .section .text.HAL_UART_DMAResume,"ax",%progbits 2400 .align 1 2401 .global HAL_UART_DMAResume 2402 .syntax unified 2403 .thumb 2404 .thumb_func 2405 .fpu fpv4-sp-d16 2407 HAL_UART_DMAResume: 2408 .LVL193: 2409 .LFB148: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2410 .loc 1 1508 1 is_stmt 1 view -0 2411 .cfi_startproc 2412 @ args = 0, pretend = 0, frame = 8 2413 @ frame_needed = 0, uses_anonymous_args = 0 2414 @ link register save eliminated. 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2415 .loc 1 1510 3 view .LVU756 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2416 .loc 1 1510 12 is_stmt 0 view .LVU757 2417 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/cc8UBTH4.s page 130 2418 0004 DBB2 uxtb r3, r3 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2419 .loc 1 1510 6 view .LVU758 2420 0006 212B cmp r3, #33 2421 0008 06D0 beq .L150 2422 .L149: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2423 .loc 1 1513 5 is_stmt 1 discriminator 2 view .LVU759 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2424 .loc 1 1516 3 discriminator 2 view .LVU760 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2425 .loc 1 1516 12 is_stmt 0 discriminator 2 view .LVU761 2426 000a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2427 000e DBB2 uxtb r3, r3 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2428 .loc 1 1516 6 discriminator 2 view .LVU762 2429 0010 222B cmp r3, #34 2430 0012 0ED0 beq .L160 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2431 .loc 1 1529 5 is_stmt 1 view .LVU763 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2432 .loc 1 1532 3 view .LVU764 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2433 .loc 1 1533 1 is_stmt 0 view .LVU765 2434 0014 0020 movs r0, #0 2435 .LVL194: 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2436 .loc 1 1533 1 view .LVU766 2437 0016 7047 bx lr 2438 .LVL195: 2439 .L150: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2440 .loc 1 1513 5 is_stmt 1 discriminator 1 view .LVU767 2441 .LBB356: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2442 .loc 1 1513 5 discriminator 1 view .LVU768 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2443 .loc 1 1513 5 discriminator 1 view .LVU769 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2444 .loc 1 1513 5 discriminator 1 view .LVU770 2445 0018 0268 ldr r2, [r0] 2446 .LVL196: 2447 .LBB357: 2448 .LBI357: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2449 .loc 2 476 31 discriminator 1 view .LVU771 2450 .LBB358: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2451 .loc 2 478 5 discriminator 1 view .LVU772 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2452 .loc 2 480 4 discriminator 1 view .LVU773 2453 001a 02F11403 add r3, r2, #20 2454 .LVL197: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2455 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU774 2456 .syntax unified 2457 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS /tmp/cc8UBTH4.s page 131 2458 001e 53E8003F ldrex r3, [r3] 2459 @ 0 "" 2 2460 .LVL198: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2461 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU775 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2462 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU776 2463 .thumb 2464 .syntax unified 2465 .LBE358: 2466 .LBE357: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2467 .loc 1 1513 5 discriminator 1 view .LVU777 2468 0022 43F08003 orr r3, r3, #128 2469 .LVL199: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2470 .loc 1 1513 5 is_stmt 1 discriminator 1 view .LVU778 2471 .LBB359: 2472 .LBI359: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2473 .loc 2 527 31 discriminator 1 view .LVU779 2474 .LBB360: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2475 .loc 2 529 4 discriminator 1 view .LVU780 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2476 .loc 2 531 4 discriminator 1 view .LVU781 2477 0026 1432 adds r2, r2, #20 2478 .LVL200: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2479 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU782 2480 .syntax unified 2481 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2482 0028 42E80031 strex r1, r3, [r2] 2483 @ 0 "" 2 2484 .LVL201: 2485 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU783 2486 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU784 2487 .thumb 2488 .syntax unified 2489 .LBE360: 2490 .LBE359: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2491 .loc 1 1513 5 discriminator 1 view .LVU785 2492 002c 0029 cmp r1, #0 2493 002e F3D1 bne .L150 2494 0030 EBE7 b .L149 2495 .LVL202: 2496 .L160: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2497 .loc 1 1513 5 discriminator 1 view .LVU786 2498 .LBE356: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2499 .loc 1 1508 1 view .LVU787 2500 0032 82B0 sub sp, sp, #8 2501 .LCFI24: 2502 .cfi_def_cfa_offset 8 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 132 2503 .loc 1 1519 5 is_stmt 1 view .LVU788 2504 .LBB361: 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2505 .loc 1 1519 5 view .LVU789 2506 0034 0023 movs r3, #0 2507 0036 0193 str r3, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2508 .loc 1 1519 5 view .LVU790 2509 0038 0368 ldr r3, [r0] 2510 003a 1A68 ldr r2, [r3] 2511 003c 0192 str r2, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2512 .loc 1 1519 5 view .LVU791 2513 003e 5B68 ldr r3, [r3, #4] 2514 0040 0193 str r3, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2515 .loc 1 1519 5 view .LVU792 2516 0042 019B ldr r3, [sp, #4] 2517 .LBE361: 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2518 .loc 1 1519 5 view .LVU793 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2519 .loc 1 1522 5 view .LVU794 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2520 .loc 1 1522 20 is_stmt 0 view .LVU795 2521 0044 0369 ldr r3, [r0, #16] 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2522 .loc 1 1522 8 view .LVU796 2523 0046 5BB1 cbz r3, .L154 2524 .L153: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2525 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU797 2526 .LBB362: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2527 .loc 1 1524 7 discriminator 1 view .LVU798 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2528 .loc 1 1524 7 discriminator 1 view .LVU799 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2529 .loc 1 1524 7 discriminator 1 view .LVU800 2530 0048 0268 ldr r2, [r0] 2531 .LVL203: 2532 .LBB363: 2533 .LBI363: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2534 .loc 2 476 31 discriminator 1 view .LVU801 2535 .LBB364: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2536 .loc 2 478 5 discriminator 1 view .LVU802 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2537 .loc 2 480 4 discriminator 1 view .LVU803 2538 004a 02F10C03 add r3, r2, #12 2539 .LVL204: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2540 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU804 2541 .syntax unified 2542 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2543 004e 53E8003F ldrex r3, [r3] ARM GAS /tmp/cc8UBTH4.s page 133 2544 @ 0 "" 2 2545 .LVL205: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2546 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU805 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2547 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU806 2548 .thumb 2549 .syntax unified 2550 .LBE364: 2551 .LBE363: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2552 .loc 1 1524 7 discriminator 1 view .LVU807 2553 0052 43F48073 orr r3, r3, #256 2554 .LVL206: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2555 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU808 2556 .LBB365: 2557 .LBI365: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2558 .loc 2 527 31 discriminator 1 view .LVU809 2559 .LBB366: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2560 .loc 2 529 4 discriminator 1 view .LVU810 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2561 .loc 2 531 4 discriminator 1 view .LVU811 2562 0056 0C32 adds r2, r2, #12 2563 .LVL207: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2564 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU812 2565 .syntax unified 2566 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2567 0058 42E80031 strex r1, r3, [r2] 2568 @ 0 "" 2 2569 .LVL208: 2570 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU813 2571 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU814 2572 .thumb 2573 .syntax unified 2574 .LBE366: 2575 .LBE365: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2576 .loc 1 1524 7 discriminator 1 view .LVU815 2577 005c 0029 cmp r1, #0 2578 005e F3D1 bne .L153 2579 .LVL209: 2580 .L154: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2581 .loc 1 1524 7 discriminator 1 view .LVU816 2582 .LBE362: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2583 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU817 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2584 .loc 1 1526 5 discriminator 1 view .LVU818 2585 .LBB367: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2586 .loc 1 1526 5 discriminator 1 view .LVU819 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 134 2587 .loc 1 1526 5 discriminator 1 view .LVU820 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2588 .loc 1 1526 5 discriminator 1 view .LVU821 2589 0060 0268 ldr r2, [r0] 2590 .LVL210: 2591 .LBB368: 2592 .LBI368: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2593 .loc 2 476 31 discriminator 1 view .LVU822 2594 .LBB369: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2595 .loc 2 478 5 discriminator 1 view .LVU823 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2596 .loc 2 480 4 discriminator 1 view .LVU824 2597 0062 02F11403 add r3, r2, #20 2598 .LVL211: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2599 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU825 2600 .syntax unified 2601 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2602 0066 53E8003F ldrex r3, [r3] 2603 @ 0 "" 2 2604 .LVL212: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2605 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU826 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2606 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU827 2607 .thumb 2608 .syntax unified 2609 .LBE369: 2610 .LBE368: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2611 .loc 1 1526 5 discriminator 1 view .LVU828 2612 006a 43F00103 orr r3, r3, #1 2613 .LVL213: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2614 .loc 1 1526 5 is_stmt 1 discriminator 1 view .LVU829 2615 .LBB370: 2616 .LBI370: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2617 .loc 2 527 31 discriminator 1 view .LVU830 2618 .LBB371: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2619 .loc 2 529 4 discriminator 1 view .LVU831 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2620 .loc 2 531 4 discriminator 1 view .LVU832 2621 006e 1432 adds r2, r2, #20 2622 .LVL214: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2623 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU833 2624 .syntax unified 2625 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2626 0070 42E80031 strex r1, r3, [r2] 2627 @ 0 "" 2 2628 .LVL215: 2629 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU834 2630 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU835 ARM GAS /tmp/cc8UBTH4.s page 135 2631 .thumb 2632 .syntax unified 2633 .LBE371: 2634 .LBE370: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2635 .loc 1 1526 5 discriminator 1 view .LVU836 2636 0074 0029 cmp r1, #0 2637 0076 F3D1 bne .L154 2638 .LVL216: 2639 .L155: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2640 .loc 1 1526 5 discriminator 1 view .LVU837 2641 .LBE367: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2642 .loc 1 1526 5 is_stmt 1 discriminator 1 view .LVU838 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2643 .loc 1 1529 5 discriminator 1 view .LVU839 2644 .LBB372: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2645 .loc 1 1529 5 discriminator 1 view .LVU840 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2646 .loc 1 1529 5 discriminator 1 view .LVU841 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2647 .loc 1 1529 5 discriminator 1 view .LVU842 2648 0078 0268 ldr r2, [r0] 2649 .LVL217: 2650 .LBB373: 2651 .LBI373: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2652 .loc 2 476 31 discriminator 1 view .LVU843 2653 .LBB374: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2654 .loc 2 478 5 discriminator 1 view .LVU844 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2655 .loc 2 480 4 discriminator 1 view .LVU845 2656 007a 02F11403 add r3, r2, #20 2657 .LVL218: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2658 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU846 2659 .syntax unified 2660 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2661 007e 53E8003F ldrex r3, [r3] 2662 @ 0 "" 2 2663 .LVL219: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2664 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU847 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2665 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU848 2666 .thumb 2667 .syntax unified 2668 .LBE374: 2669 .LBE373: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2670 .loc 1 1529 5 discriminator 1 view .LVU849 2671 0082 43F04003 orr r3, r3, #64 2672 .LVL220: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 136 2673 .loc 1 1529 5 is_stmt 1 discriminator 1 view .LVU850 2674 .LBB375: 2675 .LBI375: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2676 .loc 2 527 31 discriminator 1 view .LVU851 2677 .LBB376: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2678 .loc 2 529 4 discriminator 1 view .LVU852 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2679 .loc 2 531 4 discriminator 1 view .LVU853 2680 0086 1432 adds r2, r2, #20 2681 .LVL221: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2682 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU854 2683 .syntax unified 2684 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2685 0088 42E80031 strex r1, r3, [r2] 2686 @ 0 "" 2 2687 .LVL222: 2688 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU855 2689 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU856 2690 .thumb 2691 .syntax unified 2692 .LBE376: 2693 .LBE375: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2694 .loc 1 1529 5 discriminator 1 view .LVU857 2695 008c 0029 cmp r1, #0 2696 008e F3D1 bne .L155 2697 .LBE372: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2698 .loc 1 1529 5 is_stmt 1 discriminator 2 view .LVU858 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2699 .loc 1 1532 3 discriminator 2 view .LVU859 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2700 .loc 1 1533 1 is_stmt 0 discriminator 2 view .LVU860 2701 0090 0020 movs r0, #0 2702 .LVL223: 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2703 .loc 1 1533 1 discriminator 2 view .LVU861 2704 0092 02B0 add sp, sp, #8 2705 .LCFI25: 2706 .cfi_def_cfa_offset 0 2707 @ sp needed 2708 0094 7047 bx lr 2709 .cfi_endproc 2710 .LFE148: 2712 .section .text.HAL_UART_DMAStop,"ax",%progbits 2713 .align 1 2714 .global HAL_UART_DMAStop 2715 .syntax unified 2716 .thumb 2717 .thumb_func 2718 .fpu fpv4-sp-d16 2720 HAL_UART_DMAStop: 2721 .LVL224: 2722 .LFB149: ARM GAS /tmp/cc8UBTH4.s page 137 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2723 .loc 1 1542 1 is_stmt 1 view -0 2724 .cfi_startproc 2725 @ args = 0, pretend = 0, frame = 0 2726 @ frame_needed = 0, uses_anonymous_args = 0 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2727 .loc 1 1542 1 is_stmt 0 view .LVU863 2728 0000 10B5 push {r4, lr} 2729 .LCFI26: 2730 .cfi_def_cfa_offset 8 2731 .cfi_offset 4, -8 2732 .cfi_offset 14, -4 2733 0002 0446 mov r4, r0 1543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* The Lock is not implemented on this API to allow the user application 2734 .loc 1 1543 3 is_stmt 1 view .LVU864 2735 .LVL225: 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2736 .loc 1 1551 3 view .LVU865 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2737 .loc 1 1551 16 is_stmt 0 view .LVU866 2738 0004 0368 ldr r3, [r0] 2739 0006 5A69 ldr r2, [r3, #20] 2740 .LVL226: 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2741 .loc 1 1552 3 is_stmt 1 view .LVU867 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2742 .loc 1 1552 13 is_stmt 0 view .LVU868 2743 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2744 000c DBB2 uxtb r3, r3 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2745 .loc 1 1552 6 view .LVU869 2746 000e 212B cmp r3, #33 2747 0010 0AD0 beq .L169 2748 .LVL227: 2749 .L162: 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2750 .loc 1 1565 3 is_stmt 1 view .LVU870 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2751 .loc 1 1565 16 is_stmt 0 view .LVU871 2752 0012 2368 ldr r3, [r4] 2753 0014 5A69 ldr r2, [r3, #20] 2754 0016 02F04002 and r2, r2, #64 2755 .LVL228: 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2756 .loc 1 1566 3 is_stmt 1 view .LVU872 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2757 .loc 1 1566 13 is_stmt 0 view .LVU873 2758 001a 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 2759 001e DBB2 uxtb r3, r3 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2760 .loc 1 1566 6 view .LVU874 2761 0020 222B cmp r3, #34 2762 0022 19D0 beq .L170 2763 .LVL229: 2764 .L165: 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2765 .loc 1 1578 3 is_stmt 1 view .LVU875 ARM GAS /tmp/cc8UBTH4.s page 138 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2766 .loc 1 1579 1 is_stmt 0 view .LVU876 2767 0024 0020 movs r0, #0 2768 0026 10BD pop {r4, pc} 2769 .LVL230: 2770 .L169: 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2771 .loc 1 1579 1 view .LVU877 2772 0028 02F08002 and r2, r2, #128 2773 .LVL231: 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2774 .loc 1 1552 49 discriminator 1 view .LVU878 2775 002c 002A cmp r2, #0 2776 002e F0D0 beq .L162 2777 .L163: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2778 .loc 1 1554 5 is_stmt 1 discriminator 1 view .LVU879 2779 .LBB377: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2780 .loc 1 1554 5 discriminator 1 view .LVU880 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2781 .loc 1 1554 5 discriminator 1 view .LVU881 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2782 .loc 1 1554 5 discriminator 1 view .LVU882 2783 0030 2268 ldr r2, [r4] 2784 .LVL232: 2785 .LBB378: 2786 .LBI378: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2787 .loc 2 476 31 discriminator 1 view .LVU883 2788 .LBB379: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2789 .loc 2 478 5 discriminator 1 view .LVU884 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2790 .loc 2 480 4 discriminator 1 view .LVU885 2791 0032 02F11403 add r3, r2, #20 2792 .LVL233: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2793 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU886 2794 .syntax unified 2795 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2796 0036 53E8003F ldrex r3, [r3] 2797 @ 0 "" 2 2798 .LVL234: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2799 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU887 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2800 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU888 2801 .thumb 2802 .syntax unified 2803 .LBE379: 2804 .LBE378: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2805 .loc 1 1554 5 discriminator 1 view .LVU889 2806 003a 23F08003 bic r3, r3, #128 2807 .LVL235: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 139 2808 .loc 1 1554 5 is_stmt 1 discriminator 1 view .LVU890 2809 .LBB380: 2810 .LBI380: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2811 .loc 2 527 31 discriminator 1 view .LVU891 2812 .LBB381: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2813 .loc 2 529 4 discriminator 1 view .LVU892 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2814 .loc 2 531 4 discriminator 1 view .LVU893 2815 003e 1432 adds r2, r2, #20 2816 .LVL236: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2817 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU894 2818 .syntax unified 2819 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2820 0040 42E80031 strex r1, r3, [r2] 2821 @ 0 "" 2 2822 .LVL237: 2823 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU895 2824 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU896 2825 .thumb 2826 .syntax unified 2827 .LBE381: 2828 .LBE380: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2829 .loc 1 1554 5 discriminator 1 view .LVU897 2830 0044 0029 cmp r1, #0 2831 0046 F3D1 bne .L163 2832 .LBE377: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2833 .loc 1 1554 5 is_stmt 1 discriminator 2 view .LVU898 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2834 .loc 1 1557 5 discriminator 2 view .LVU899 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2835 .loc 1 1557 14 is_stmt 0 discriminator 2 view .LVU900 2836 0048 A06B ldr r0, [r4, #56] 2837 .LVL238: 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2838 .loc 1 1557 8 discriminator 2 view .LVU901 2839 004a 08B1 cbz r0, .L164 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2840 .loc 1 1559 7 is_stmt 1 view .LVU902 2841 004c FFF7FEFF bl HAL_DMA_Abort 2842 .LVL239: 2843 .L164: 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2844 .loc 1 1561 5 view .LVU903 2845 0050 2046 mov r0, r4 2846 0052 FFF7FEFF bl UART_EndTxTransfer 2847 .LVL240: 2848 0056 DCE7 b .L162 2849 .LVL241: 2850 .L170: 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2851 .loc 1 1566 50 is_stmt 0 discriminator 1 view .LVU904 2852 0058 002A cmp r2, #0 ARM GAS /tmp/cc8UBTH4.s page 140 2853 005a E3D0 beq .L165 2854 .LVL242: 2855 .L166: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2856 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU905 2857 .LBB382: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2858 .loc 1 1568 5 discriminator 1 view .LVU906 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2859 .loc 1 1568 5 discriminator 1 view .LVU907 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2860 .loc 1 1568 5 discriminator 1 view .LVU908 2861 005c 2268 ldr r2, [r4] 2862 .LVL243: 2863 .LBB383: 2864 .LBI383: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2865 .loc 2 476 31 discriminator 1 view .LVU909 2866 .LBB384: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2867 .loc 2 478 5 discriminator 1 view .LVU910 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2868 .loc 2 480 4 discriminator 1 view .LVU911 2869 005e 02F11403 add r3, r2, #20 2870 .LVL244: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2871 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU912 2872 .syntax unified 2873 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2874 0062 53E8003F ldrex r3, [r3] 2875 @ 0 "" 2 2876 .LVL245: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2877 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU913 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2878 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU914 2879 .thumb 2880 .syntax unified 2881 .LBE384: 2882 .LBE383: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2883 .loc 1 1568 5 discriminator 1 view .LVU915 2884 0066 23F04003 bic r3, r3, #64 2885 .LVL246: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2886 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU916 2887 .LBB385: 2888 .LBI385: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2889 .loc 2 527 31 discriminator 1 view .LVU917 2890 .LBB386: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2891 .loc 2 529 4 discriminator 1 view .LVU918 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2892 .loc 2 531 4 discriminator 1 view .LVU919 2893 006a 1432 adds r2, r2, #20 2894 .LVL247: ARM GAS /tmp/cc8UBTH4.s page 141 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2895 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU920 2896 .syntax unified 2897 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2898 006c 42E80031 strex r1, r3, [r2] 2899 @ 0 "" 2 2900 .LVL248: 2901 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU921 2902 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU922 2903 .thumb 2904 .syntax unified 2905 .LBE386: 2906 .LBE385: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2907 .loc 1 1568 5 discriminator 1 view .LVU923 2908 0070 0029 cmp r1, #0 2909 0072 F3D1 bne .L166 2910 .LBE382: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2911 .loc 1 1568 5 is_stmt 1 discriminator 2 view .LVU924 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2912 .loc 1 1571 5 discriminator 2 view .LVU925 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2913 .loc 1 1571 14 is_stmt 0 discriminator 2 view .LVU926 2914 0074 E06B ldr r0, [r4, #60] 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2915 .loc 1 1571 8 discriminator 2 view .LVU927 2916 0076 08B1 cbz r0, .L167 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2917 .loc 1 1573 7 is_stmt 1 view .LVU928 2918 0078 FFF7FEFF bl HAL_DMA_Abort 2919 .LVL249: 2920 .L167: 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2921 .loc 1 1575 5 view .LVU929 2922 007c 2046 mov r0, r4 2923 007e FFF7FEFF bl UART_EndRxTransfer 2924 .LVL250: 2925 0082 CFE7 b .L165 2926 .cfi_endproc 2927 .LFE149: 2929 .section .text.HAL_UARTEx_ReceiveToIdle,"ax",%progbits 2930 .align 1 2931 .global HAL_UARTEx_ReceiveToIdle 2932 .syntax unified 2933 .thumb 2934 .thumb_func 2935 .fpu fpv4-sp-d16 2937 HAL_UARTEx_ReceiveToIdle: 2938 .LVL251: 2939 .LFB150: 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 2940 .loc 1 1598 1 view -0 2941 .cfi_startproc 2942 @ args = 4, pretend = 0, frame = 8 2943 @ frame_needed = 0, uses_anonymous_args = 0 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; ARM GAS /tmp/cc8UBTH4.s page 142 2944 .loc 1 1598 1 is_stmt 0 view .LVU931 2945 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 2946 .LCFI27: 2947 .cfi_def_cfa_offset 28 2948 .cfi_offset 4, -28 2949 .cfi_offset 5, -24 2950 .cfi_offset 6, -20 2951 .cfi_offset 7, -16 2952 .cfi_offset 8, -12 2953 .cfi_offset 9, -8 2954 .cfi_offset 14, -4 2955 0004 83B0 sub sp, sp, #12 2956 .LCFI28: 2957 .cfi_def_cfa_offset 40 2958 0006 1E46 mov r6, r3 2959 0008 0A9F ldr r7, [sp, #40] 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 2960 .loc 1 1599 3 is_stmt 1 view .LVU932 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart; 2961 .loc 1 1600 3 view .LVU933 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2962 .loc 1 1601 3 view .LVU934 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2963 .loc 1 1604 3 view .LVU935 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2964 .loc 1 1604 12 is_stmt 0 view .LVU936 2965 000a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2966 .LVL252: 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2967 .loc 1 1604 12 view .LVU937 2968 000e DBB2 uxtb r3, r3 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2969 .loc 1 1604 6 view .LVU938 2970 0010 202B cmp r3, #32 2971 0012 7FD1 bne .L185 2972 0014 0446 mov r4, r0 2973 0016 0D46 mov r5, r1 2974 0018 9146 mov r9, r2 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2975 .loc 1 1606 5 is_stmt 1 view .LVU939 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2976 .loc 1 1606 8 is_stmt 0 view .LVU940 2977 001a 0029 cmp r1, #0 2978 001c 7ED0 beq .L186 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2979 .loc 1 1606 25 discriminator 1 view .LVU941 2980 001e 0AB9 cbnz r2, .L191 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2981 .loc 1 1608 15 view .LVU942 2982 0020 0120 movs r0, #1 2983 .LVL253: 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2984 .loc 1 1608 15 view .LVU943 2985 0022 78E0 b .L172 2986 .LVL254: 2987 .L191: 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; ARM GAS /tmp/cc8UBTH4.s page 143 2988 .loc 1 1611 5 is_stmt 1 view .LVU944 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 2989 .loc 1 1611 22 is_stmt 0 view .LVU945 2990 0024 0023 movs r3, #0 2991 0026 4364 str r3, [r0, #68] 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2992 .loc 1 1612 5 is_stmt 1 view .LVU946 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2993 .loc 1 1612 20 is_stmt 0 view .LVU947 2994 0028 2222 movs r2, #34 2995 .LVL255: 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2996 .loc 1 1612 20 view .LVU948 2997 002a 80F84220 strb r2, [r0, #66] 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 2998 .loc 1 1613 5 is_stmt 1 view .LVU949 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 2999 .loc 1 1613 26 is_stmt 0 view .LVU950 3000 002e 0122 movs r2, #1 3001 0030 0263 str r2, [r0, #48] 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3002 .loc 1 1614 5 is_stmt 1 view .LVU951 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3003 .loc 1 1614 24 is_stmt 0 view .LVU952 3004 0032 4363 str r3, [r0, #52] 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3005 .loc 1 1617 5 is_stmt 1 view .LVU953 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3006 .loc 1 1617 17 is_stmt 0 view .LVU954 3007 0034 FFF7FEFF bl HAL_GetTick 3008 .LVL256: 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3009 .loc 1 1617 17 view .LVU955 3010 0038 8046 mov r8, r0 3011 .LVL257: 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 3012 .loc 1 1619 5 is_stmt 1 view .LVU956 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 3013 .loc 1 1619 24 is_stmt 0 view .LVU957 3014 003a A4F82C90 strh r9, [r4, #44] @ movhi 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3015 .loc 1 1620 5 is_stmt 1 view .LVU958 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3016 .loc 1 1620 24 is_stmt 0 view .LVU959 3017 003e A4F82E90 strh r9, [r4, #46] @ movhi 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3018 .loc 1 1623 5 is_stmt 1 view .LVU960 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3019 .loc 1 1623 21 is_stmt 0 view .LVU961 3020 0042 A368 ldr r3, [r4, #8] 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3021 .loc 1 1623 8 view .LVU962 3022 0044 B3F5805F cmp r3, #4096 3023 0048 04D0 beq .L192 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3024 .loc 1 1631 19 view .LVU963 3025 004a 4FF00009 mov r9, #0 ARM GAS /tmp/cc8UBTH4.s page 144 3026 .LVL258: 3027 .L173: 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3028 .loc 1 1635 5 is_stmt 1 view .LVU964 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3029 .loc 1 1635 12 is_stmt 0 view .LVU965 3030 004e 0023 movs r3, #0 3031 0050 3380 strh r3, [r6] @ movhi 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3032 .loc 1 1638 5 is_stmt 1 view .LVU966 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3033 .loc 1 1638 11 is_stmt 0 view .LVU967 3034 0052 22E0 b .L174 3035 .LVL259: 3036 .L192: 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3037 .loc 1 1623 71 discriminator 1 view .LVU968 3038 0054 2369 ldr r3, [r4, #16] 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3039 .loc 1 1623 56 discriminator 1 view .LVU969 3040 0056 13B1 cbz r3, .L189 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3041 .loc 1 1631 19 view .LVU970 3042 0058 4FF00009 mov r9, #0 3043 005c F7E7 b .L173 3044 .L189: 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3045 .loc 1 1626 19 view .LVU971 3046 005e A946 mov r9, r5 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 3047 .loc 1 1625 19 view .LVU972 3048 0060 0025 movs r5, #0 3049 .LVL260: 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 3050 .loc 1 1625 19 view .LVU973 3051 0062 F4E7 b .L173 3052 .LVL261: 3053 .L195: 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3054 .loc 1 1650 11 is_stmt 1 view .LVU974 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3055 .loc 1 1650 30 is_stmt 0 view .LVU975 3056 0064 0223 movs r3, #2 3057 0066 6363 str r3, [r4, #52] 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3058 .loc 1 1651 11 is_stmt 1 view .LVU976 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3059 .loc 1 1651 26 is_stmt 0 view .LVU977 3060 0068 2023 movs r3, #32 3061 006a 84F84230 strb r3, [r4, #66] 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3062 .loc 1 1653 11 is_stmt 1 view .LVU978 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3063 .loc 1 1653 18 is_stmt 0 view .LVU979 3064 006e 0020 movs r0, #0 3065 0070 51E0 b .L172 3066 .L196: ARM GAS /tmp/cc8UBTH4.s page 145 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3067 .loc 1 1662 11 is_stmt 1 view .LVU980 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3068 .loc 1 1662 52 is_stmt 0 view .LVU981 3069 0072 5368 ldr r3, [r2, #4] 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3070 .loc 1 1662 26 view .LVU982 3071 0074 C3F30803 ubfx r3, r3, #0, #9 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3072 .loc 1 1662 24 view .LVU983 3073 0078 29F8023B strh r3, [r9], #2 @ movhi 3074 .LVL262: 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3075 .loc 1 1663 11 is_stmt 1 view .LVU984 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3076 .loc 1 1663 11 is_stmt 0 view .LVU985 3077 007c 02E0 b .L178 3078 .L179: 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3079 .loc 1 1669 13 is_stmt 1 view .LVU986 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3080 .loc 1 1669 52 is_stmt 0 view .LVU987 3081 007e 5368 ldr r3, [r2, #4] 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3082 .loc 1 1669 25 view .LVU988 3083 0080 2B70 strb r3, [r5] 3084 .L181: 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3085 .loc 1 1676 11 is_stmt 1 view .LVU989 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3086 .loc 1 1676 21 is_stmt 0 view .LVU990 3087 0082 0135 adds r5, r5, #1 3088 .LVL263: 3089 .L178: 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 3090 .loc 1 1679 9 is_stmt 1 view .LVU991 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 3091 .loc 1 1679 16 is_stmt 0 view .LVU992 3092 0084 3388 ldrh r3, [r6] 3093 0086 0133 adds r3, r3, #1 3094 0088 3380 strh r3, [r6] @ movhi 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3095 .loc 1 1680 9 is_stmt 1 view .LVU993 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3096 .loc 1 1680 14 is_stmt 0 view .LVU994 3097 008a E38D ldrh r3, [r4, #46] 3098 008c 9BB2 uxth r3, r3 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3099 .loc 1 1680 27 view .LVU995 3100 008e 013B subs r3, r3, #1 3101 0090 9BB2 uxth r3, r3 3102 0092 E385 strh r3, [r4, #46] @ movhi 3103 .L176: 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3104 .loc 1 1684 7 is_stmt 1 view .LVU996 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3105 .loc 1 1684 10 is_stmt 0 view .LVU997 ARM GAS /tmp/cc8UBTH4.s page 146 3106 0094 B7F1FF3F cmp r7, #-1 3107 0098 25D1 bne .L193 3108 .L174: 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3109 .loc 1 1638 11 is_stmt 1 view .LVU998 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3110 .loc 1 1638 17 is_stmt 0 view .LVU999 3111 009a E28D ldrh r2, [r4, #46] 3112 009c 92B2 uxth r2, r2 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3113 .loc 1 1638 11 view .LVU1000 3114 009e 002A cmp r2, #0 3115 00a0 2ED0 beq .L194 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3116 .loc 1 1641 7 is_stmt 1 view .LVU1001 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3117 .loc 1 1641 11 is_stmt 0 view .LVU1002 3118 00a2 2268 ldr r2, [r4] 3119 00a4 1368 ldr r3, [r2] 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3120 .loc 1 1641 10 view .LVU1003 3121 00a6 13F0100F tst r3, #16 3122 00aa 09D0 beq .L175 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3123 .loc 1 1644 9 is_stmt 1 view .LVU1004 3124 .LBB387: 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3125 .loc 1 1644 9 view .LVU1005 3126 00ac 0023 movs r3, #0 3127 00ae 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3128 .loc 1 1644 9 view .LVU1006 3129 00b0 1368 ldr r3, [r2] 3130 00b2 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3131 .loc 1 1644 9 view .LVU1007 3132 00b4 5368 ldr r3, [r2, #4] 3133 00b6 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3134 .loc 1 1644 9 view .LVU1008 3135 00b8 019B ldr r3, [sp, #4] 3136 .LBE387: 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3137 .loc 1 1644 9 view .LVU1009 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3138 .loc 1 1648 9 view .LVU1010 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3139 .loc 1 1648 13 is_stmt 0 view .LVU1011 3140 00ba 3388 ldrh r3, [r6] 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3141 .loc 1 1648 12 view .LVU1012 3142 00bc 002B cmp r3, #0 3143 00be D1D1 bne .L195 3144 .L175: 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3145 .loc 1 1658 7 is_stmt 1 view .LVU1013 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 147 3146 .loc 1 1658 11 is_stmt 0 view .LVU1014 3147 00c0 1368 ldr r3, [r2] 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3148 .loc 1 1658 10 view .LVU1015 3149 00c2 13F0200F tst r3, #32 3150 00c6 E5D0 beq .L176 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3151 .loc 1 1660 9 is_stmt 1 view .LVU1016 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3152 .loc 1 1660 12 is_stmt 0 view .LVU1017 3153 00c8 002D cmp r5, #0 3154 00ca D2D0 beq .L196 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3155 .loc 1 1667 11 is_stmt 1 view .LVU1018 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3156 .loc 1 1667 27 is_stmt 0 view .LVU1019 3157 00cc A368 ldr r3, [r4, #8] 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3158 .loc 1 1667 14 view .LVU1020 3159 00ce B3F5805F cmp r3, #4096 3160 00d2 D4D0 beq .L179 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3161 .loc 1 1667 62 discriminator 1 view .LVU1021 3162 00d4 13B9 cbnz r3, .L180 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3163 .loc 1 1667 128 discriminator 2 view .LVU1022 3164 00d6 2369 ldr r3, [r4, #16] 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3165 .loc 1 1667 113 discriminator 2 view .LVU1023 3166 00d8 002B cmp r3, #0 3167 00da D0D0 beq .L179 3168 .L180: 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3169 .loc 1 1673 13 is_stmt 1 view .LVU1024 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3170 .loc 1 1673 52 is_stmt 0 view .LVU1025 3171 00dc 5368 ldr r3, [r2, #4] 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3172 .loc 1 1673 27 view .LVU1026 3173 00de 03F07F03 and r3, r3, #127 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3174 .loc 1 1673 25 view .LVU1027 3175 00e2 2B70 strb r3, [r5] 3176 00e4 CDE7 b .L181 3177 .L193: 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3178 .loc 1 1686 9 is_stmt 1 view .LVU1028 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3179 .loc 1 1686 15 is_stmt 0 view .LVU1029 3180 00e6 FFF7FEFF bl HAL_GetTick 3181 .LVL264: 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3182 .loc 1 1686 29 view .LVU1030 3183 00ea A0EB0800 sub r0, r0, r8 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3184 .loc 1 1686 12 view .LVU1031 3185 00ee B842 cmp r0, r7 ARM GAS /tmp/cc8UBTH4.s page 148 3186 00f0 01D8 bhi .L183 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3187 .loc 1 1686 53 discriminator 1 view .LVU1032 3188 00f2 002F cmp r7, #0 3189 00f4 D1D1 bne .L174 3190 .L183: 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3191 .loc 1 1688 11 is_stmt 1 view .LVU1033 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3192 .loc 1 1688 26 is_stmt 0 view .LVU1034 3193 00f6 2023 movs r3, #32 3194 00f8 84F84230 strb r3, [r4, #66] 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3195 .loc 1 1690 11 is_stmt 1 view .LVU1035 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3196 .loc 1 1690 18 is_stmt 0 view .LVU1036 3197 00fc 0320 movs r0, #3 3198 00fe 0AE0 b .L172 3199 .L194: 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3200 .loc 1 1696 5 is_stmt 1 view .LVU1037 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3201 .loc 1 1696 19 is_stmt 0 view .LVU1038 3202 0100 A38D ldrh r3, [r4, #44] 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3203 .loc 1 1696 39 view .LVU1039 3204 0102 E28D ldrh r2, [r4, #46] 3205 0104 92B2 uxth r2, r2 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3206 .loc 1 1696 32 view .LVU1040 3207 0106 9B1A subs r3, r3, r2 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3208 .loc 1 1696 12 view .LVU1041 3209 0108 3380 strh r3, [r6] @ movhi 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3210 .loc 1 1698 5 is_stmt 1 view .LVU1042 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3211 .loc 1 1698 20 is_stmt 0 view .LVU1043 3212 010a 2023 movs r3, #32 3213 010c 84F84230 strb r3, [r4, #66] 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3214 .loc 1 1700 5 is_stmt 1 view .LVU1044 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3215 .loc 1 1700 12 is_stmt 0 view .LVU1045 3216 0110 0020 movs r0, #0 3217 0112 00E0 b .L172 3218 .LVL265: 3219 .L185: 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3220 .loc 1 1704 12 view .LVU1046 3221 0114 0220 movs r0, #2 3222 .LVL266: 3223 .L172: 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3224 .loc 1 1706 1 view .LVU1047 3225 0116 03B0 add sp, sp, #12 3226 .LCFI29: ARM GAS /tmp/cc8UBTH4.s page 149 3227 .cfi_remember_state 3228 .cfi_def_cfa_offset 28 3229 @ sp needed 3230 0118 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 3231 .LVL267: 3232 .L186: 3233 .LCFI30: 3234 .cfi_restore_state 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3235 .loc 1 1608 15 view .LVU1048 3236 011c 0120 movs r0, #1 3237 .LVL268: 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3238 .loc 1 1608 15 view .LVU1049 3239 011e FAE7 b .L172 3240 .cfi_endproc 3241 .LFE150: 3243 .section .text.HAL_UARTEx_GetRxEventType,"ax",%progbits 3244 .align 1 3245 .global HAL_UARTEx_GetRxEventType 3246 .syntax unified 3247 .thumb 3248 .thumb_func 3249 .fpu fpv4-sp-d16 3251 HAL_UARTEx_GetRxEventType: 3252 .LVL269: 3253 .LFB153: 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return Rx Event type value, as stored in UART handle */ 3254 .loc 1 1847 1 is_stmt 1 view -0 3255 .cfi_startproc 3256 @ args = 0, pretend = 0, frame = 0 3257 @ frame_needed = 0, uses_anonymous_args = 0 3258 @ link register save eliminated. 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3259 .loc 1 1849 3 view .LVU1051 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3260 .loc 1 1849 15 is_stmt 0 view .LVU1052 3261 0000 406B ldr r0, [r0, #52] 3262 .LVL270: 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3263 .loc 1 1850 1 view .LVU1053 3264 0002 7047 bx lr 3265 .cfi_endproc 3266 .LFE153: 3268 .section .text.HAL_UART_Abort,"ax",%progbits 3269 .align 1 3270 .global HAL_UART_Abort 3271 .syntax unified 3272 .thumb 3273 .thumb_func 3274 .fpu fpv4-sp-d16 3276 HAL_UART_Abort: 3277 .LVL271: 3278 .LFB154: 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3279 .loc 1 1865 1 is_stmt 1 view -0 3280 .cfi_startproc ARM GAS /tmp/cc8UBTH4.s page 150 3281 @ args = 0, pretend = 0, frame = 0 3282 @ frame_needed = 0, uses_anonymous_args = 0 1865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE, TCIE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3283 .loc 1 1865 1 is_stmt 0 view .LVU1055 3284 0000 10B5 push {r4, lr} 3285 .LCFI31: 3286 .cfi_def_cfa_offset 8 3287 .cfi_offset 4, -8 3288 .cfi_offset 14, -4 3289 0002 0446 mov r4, r0 3290 .L199: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3291 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1056 3292 .LBB388: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3293 .loc 1 1867 3 discriminator 1 view .LVU1057 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3294 .loc 1 1867 3 discriminator 1 view .LVU1058 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3295 .loc 1 1867 3 discriminator 1 view .LVU1059 3296 0004 2268 ldr r2, [r4] 3297 .LVL272: 3298 .LBB389: 3299 .LBI389: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3300 .loc 2 476 31 discriminator 1 view .LVU1060 3301 .LBB390: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3302 .loc 2 478 5 discriminator 1 view .LVU1061 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3303 .loc 2 480 4 discriminator 1 view .LVU1062 3304 0006 02F10C03 add r3, r2, #12 3305 .LVL273: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3306 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1063 3307 .syntax unified 3308 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3309 000a 53E8003F ldrex r3, [r3] 3310 @ 0 "" 2 3311 .LVL274: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3312 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1064 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3313 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1065 3314 .thumb 3315 .syntax unified 3316 .LBE390: 3317 .LBE389: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3318 .loc 1 1867 3 discriminator 1 view .LVU1066 3319 000e 23F4F073 bic r3, r3, #480 3320 .LVL275: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3321 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1067 3322 .LBB391: 3323 .LBI391: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS /tmp/cc8UBTH4.s page 151 3324 .loc 2 527 31 discriminator 1 view .LVU1068 3325 .LBB392: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3326 .loc 2 529 4 discriminator 1 view .LVU1069 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3327 .loc 2 531 4 discriminator 1 view .LVU1070 3328 0012 0C32 adds r2, r2, #12 3329 .LVL276: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3330 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1071 3331 .syntax unified 3332 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3333 0014 42E80031 strex r1, r3, [r2] 3334 @ 0 "" 2 3335 .LVL277: 3336 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1072 3337 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1073 3338 .thumb 3339 .syntax unified 3340 .LBE392: 3341 .LBE391: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3342 .loc 1 1867 3 discriminator 1 view .LVU1074 3343 0018 0029 cmp r1, #0 3344 001a F3D1 bne .L199 3345 .LVL278: 3346 .L200: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3347 .loc 1 1867 3 discriminator 1 view .LVU1075 3348 .LBE388: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3349 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1076 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3350 .loc 1 1868 3 discriminator 1 view .LVU1077 3351 .LBB393: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3352 .loc 1 1868 3 discriminator 1 view .LVU1078 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3353 .loc 1 1868 3 discriminator 1 view .LVU1079 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3354 .loc 1 1868 3 discriminator 1 view .LVU1080 3355 001c 2268 ldr r2, [r4] 3356 .LVL279: 3357 .LBB394: 3358 .LBI394: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3359 .loc 2 476 31 discriminator 1 view .LVU1081 3360 .LBB395: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3361 .loc 2 478 5 discriminator 1 view .LVU1082 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3362 .loc 2 480 4 discriminator 1 view .LVU1083 3363 001e 02F11403 add r3, r2, #20 3364 .LVL280: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3365 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1084 3366 .syntax unified ARM GAS /tmp/cc8UBTH4.s page 152 3367 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3368 0022 53E8003F ldrex r3, [r3] 3369 @ 0 "" 2 3370 .LVL281: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3371 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1085 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3372 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1086 3373 .thumb 3374 .syntax unified 3375 .LBE395: 3376 .LBE394: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3377 .loc 1 1868 3 discriminator 1 view .LVU1087 3378 0026 23F00103 bic r3, r3, #1 3379 .LVL282: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3380 .loc 1 1868 3 is_stmt 1 discriminator 1 view .LVU1088 3381 .LBB396: 3382 .LBI396: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3383 .loc 2 527 31 discriminator 1 view .LVU1089 3384 .LBB397: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3385 .loc 2 529 4 discriminator 1 view .LVU1090 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3386 .loc 2 531 4 discriminator 1 view .LVU1091 3387 002a 1432 adds r2, r2, #20 3388 .LVL283: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3389 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1092 3390 .syntax unified 3391 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3392 002c 42E80031 strex r1, r3, [r2] 3393 @ 0 "" 2 3394 .LVL284: 3395 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1093 3396 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1094 3397 .thumb 3398 .syntax unified 3399 .LBE397: 3400 .LBE396: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3401 .loc 1 1868 3 discriminator 1 view .LVU1095 3402 0030 0029 cmp r1, #0 3403 0032 F3D1 bne .L200 3404 .LBE393: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3405 .loc 1 1868 3 is_stmt 1 discriminator 2 view .LVU1096 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3406 .loc 1 1871 3 discriminator 2 view .LVU1097 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3407 .loc 1 1871 12 is_stmt 0 discriminator 2 view .LVU1098 3408 0034 236B ldr r3, [r4, #48] 3409 .LVL285: 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3410 .loc 1 1871 6 discriminator 2 view .LVU1099 ARM GAS /tmp/cc8UBTH4.s page 153 3411 0036 012B cmp r3, #1 3412 0038 3CD0 beq .L202 3413 .L201: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3414 .loc 1 1873 5 is_stmt 1 discriminator 2 view .LVU1100 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3415 .loc 1 1877 3 discriminator 2 view .LVU1101 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3416 .loc 1 1877 7 is_stmt 0 discriminator 2 view .LVU1102 3417 003a 2368 ldr r3, [r4] 3418 003c 5B69 ldr r3, [r3, #20] 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3419 .loc 1 1877 6 discriminator 2 view .LVU1103 3420 003e 13F0800F tst r3, #128 3421 0042 13D0 beq .L203 3422 .L204: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3423 .loc 1 1879 5 is_stmt 1 discriminator 1 view .LVU1104 3424 .LBB398: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3425 .loc 1 1879 5 discriminator 1 view .LVU1105 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3426 .loc 1 1879 5 discriminator 1 view .LVU1106 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3427 .loc 1 1879 5 discriminator 1 view .LVU1107 3428 0044 2268 ldr r2, [r4] 3429 .LVL286: 3430 .LBB399: 3431 .LBI399: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3432 .loc 2 476 31 discriminator 1 view .LVU1108 3433 .LBB400: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3434 .loc 2 478 5 discriminator 1 view .LVU1109 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3435 .loc 2 480 4 discriminator 1 view .LVU1110 3436 0046 02F11403 add r3, r2, #20 3437 .LVL287: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3438 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1111 3439 .syntax unified 3440 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3441 004a 53E8003F ldrex r3, [r3] 3442 @ 0 "" 2 3443 .LVL288: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3444 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1112 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3445 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1113 3446 .thumb 3447 .syntax unified 3448 .LBE400: 3449 .LBE399: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3450 .loc 1 1879 5 discriminator 1 view .LVU1114 3451 004e 23F08003 bic r3, r3, #128 3452 .LVL289: ARM GAS /tmp/cc8UBTH4.s page 154 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3453 .loc 1 1879 5 is_stmt 1 discriminator 1 view .LVU1115 3454 .LBB401: 3455 .LBI401: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3456 .loc 2 527 31 discriminator 1 view .LVU1116 3457 .LBB402: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3458 .loc 2 529 4 discriminator 1 view .LVU1117 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3459 .loc 2 531 4 discriminator 1 view .LVU1118 3460 0052 1432 adds r2, r2, #20 3461 .LVL290: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3462 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1119 3463 .syntax unified 3464 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3465 0054 42E80031 strex r1, r3, [r2] 3466 @ 0 "" 2 3467 .LVL291: 3468 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1120 3469 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1121 3470 .thumb 3471 .syntax unified 3472 .LBE402: 3473 .LBE401: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3474 .loc 1 1879 5 discriminator 1 view .LVU1122 3475 0058 0029 cmp r1, #0 3476 005a F3D1 bne .L204 3477 .LBE398: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3478 .loc 1 1879 5 is_stmt 1 discriminator 2 view .LVU1123 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3479 .loc 1 1882 5 discriminator 2 view .LVU1124 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3480 .loc 1 1882 14 is_stmt 0 discriminator 2 view .LVU1125 3481 005c A36B ldr r3, [r4, #56] 3482 .LVL292: 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3483 .loc 1 1882 8 discriminator 2 view .LVU1126 3484 005e 2BB1 cbz r3, .L203 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3485 .loc 1 1886 7 is_stmt 1 view .LVU1127 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3486 .loc 1 1886 40 is_stmt 0 view .LVU1128 3487 0060 0022 movs r2, #0 3488 0062 1A65 str r2, [r3, #80] 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3489 .loc 1 1888 7 is_stmt 1 view .LVU1129 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3490 .loc 1 1888 11 is_stmt 0 view .LVU1130 3491 0064 A06B ldr r0, [r4, #56] 3492 .LVL293: 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3493 .loc 1 1888 11 view .LVU1131 3494 0066 FFF7FEFF bl HAL_DMA_Abort ARM GAS /tmp/cc8UBTH4.s page 155 3495 .LVL294: 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3496 .loc 1 1888 10 view .LVU1132 3497 006a 80BB cbnz r0, .L209 3498 .L203: 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3499 .loc 1 1902 3 is_stmt 1 view .LVU1133 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3500 .loc 1 1902 7 is_stmt 0 view .LVU1134 3501 006c 2368 ldr r3, [r4] 3502 006e 5B69 ldr r3, [r3, #20] 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3503 .loc 1 1902 6 view .LVU1135 3504 0070 13F0400F tst r3, #64 3505 0074 13D0 beq .L206 3506 .L207: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3507 .loc 1 1904 5 is_stmt 1 discriminator 1 view .LVU1136 3508 .LBB403: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3509 .loc 1 1904 5 discriminator 1 view .LVU1137 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3510 .loc 1 1904 5 discriminator 1 view .LVU1138 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3511 .loc 1 1904 5 discriminator 1 view .LVU1139 3512 0076 2268 ldr r2, [r4] 3513 .LVL295: 3514 .LBB404: 3515 .LBI404: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3516 .loc 2 476 31 discriminator 1 view .LVU1140 3517 .LBB405: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3518 .loc 2 478 5 discriminator 1 view .LVU1141 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3519 .loc 2 480 4 discriminator 1 view .LVU1142 3520 0078 02F11403 add r3, r2, #20 3521 .LVL296: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3522 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1143 3523 .syntax unified 3524 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3525 007c 53E8003F ldrex r3, [r3] 3526 @ 0 "" 2 3527 .LVL297: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3528 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1144 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3529 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1145 3530 .thumb 3531 .syntax unified 3532 .LBE405: 3533 .LBE404: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3534 .loc 1 1904 5 discriminator 1 view .LVU1146 3535 0080 23F04003 bic r3, r3, #64 3536 .LVL298: ARM GAS /tmp/cc8UBTH4.s page 156 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3537 .loc 1 1904 5 is_stmt 1 discriminator 1 view .LVU1147 3538 .LBB406: 3539 .LBI406: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3540 .loc 2 527 31 discriminator 1 view .LVU1148 3541 .LBB407: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3542 .loc 2 529 4 discriminator 1 view .LVU1149 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3543 .loc 2 531 4 discriminator 1 view .LVU1150 3544 0084 1432 adds r2, r2, #20 3545 .LVL299: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3546 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1151 3547 .syntax unified 3548 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3549 0086 42E80031 strex r1, r3, [r2] 3550 @ 0 "" 2 3551 .LVL300: 3552 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1152 3553 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1153 3554 .thumb 3555 .syntax unified 3556 .LBE407: 3557 .LBE406: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3558 .loc 1 1904 5 discriminator 1 view .LVU1154 3559 008a 0029 cmp r1, #0 3560 008c F3D1 bne .L207 3561 .LBE403: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3562 .loc 1 1904 5 is_stmt 1 discriminator 2 view .LVU1155 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3563 .loc 1 1907 5 discriminator 2 view .LVU1156 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3564 .loc 1 1907 14 is_stmt 0 discriminator 2 view .LVU1157 3565 008e E36B ldr r3, [r4, #60] 3566 .LVL301: 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3567 .loc 1 1907 8 discriminator 2 view .LVU1158 3568 0090 2BB1 cbz r3, .L206 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3569 .loc 1 1911 7 is_stmt 1 view .LVU1159 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3570 .loc 1 1911 40 is_stmt 0 view .LVU1160 3571 0092 0022 movs r2, #0 3572 0094 1A65 str r2, [r3, #80] 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3573 .loc 1 1913 7 is_stmt 1 view .LVU1161 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3574 .loc 1 1913 11 is_stmt 0 view .LVU1162 3575 0096 E06B ldr r0, [r4, #60] 3576 0098 FFF7FEFF bl HAL_DMA_Abort 3577 .LVL302: 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3578 .loc 1 1913 10 view .LVU1163 ARM GAS /tmp/cc8UBTH4.s page 157 3579 009c 00BB cbnz r0, .L210 3580 .L206: 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3581 .loc 1 1927 3 is_stmt 1 view .LVU1164 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3582 .loc 1 1927 22 is_stmt 0 view .LVU1165 3583 009e 0020 movs r0, #0 3584 00a0 E084 strh r0, [r4, #38] @ movhi 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3585 .loc 1 1928 3 is_stmt 1 view .LVU1166 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3586 .loc 1 1928 22 is_stmt 0 view .LVU1167 3587 00a2 E085 strh r0, [r4, #46] @ movhi 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3588 .loc 1 1931 3 is_stmt 1 view .LVU1168 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3589 .loc 1 1931 20 is_stmt 0 view .LVU1169 3590 00a4 6064 str r0, [r4, #68] 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3591 .loc 1 1934 3 is_stmt 1 view .LVU1170 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3592 .loc 1 1934 18 is_stmt 0 view .LVU1171 3593 00a6 2023 movs r3, #32 3594 00a8 84F84230 strb r3, [r4, #66] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3595 .loc 1 1935 3 is_stmt 1 view .LVU1172 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3596 .loc 1 1935 17 is_stmt 0 view .LVU1173 3597 00ac 84F84130 strb r3, [r4, #65] 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3598 .loc 1 1936 3 is_stmt 1 view .LVU1174 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3599 .loc 1 1936 24 is_stmt 0 view .LVU1175 3600 00b0 2063 str r0, [r4, #48] 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3601 .loc 1 1938 3 is_stmt 1 view .LVU1176 3602 .L205: 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3603 .loc 1 1939 1 is_stmt 0 view .LVU1177 3604 00b2 10BD pop {r4, pc} 3605 .LVL303: 3606 .L202: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3607 .loc 1 1873 5 is_stmt 1 discriminator 1 view .LVU1178 3608 .LBB408: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3609 .loc 1 1873 5 discriminator 1 view .LVU1179 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3610 .loc 1 1873 5 discriminator 1 view .LVU1180 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3611 .loc 1 1873 5 discriminator 1 view .LVU1181 3612 00b4 2268 ldr r2, [r4] 3613 .LVL304: 3614 .LBB409: 3615 .LBI409: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3616 .loc 2 476 31 discriminator 1 view .LVU1182 ARM GAS /tmp/cc8UBTH4.s page 158 3617 .LBB410: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3618 .loc 2 478 5 discriminator 1 view .LVU1183 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3619 .loc 2 480 4 discriminator 1 view .LVU1184 3620 00b6 02F10C03 add r3, r2, #12 3621 .LVL305: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3622 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1185 3623 .syntax unified 3624 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3625 00ba 53E8003F ldrex r3, [r3] 3626 @ 0 "" 2 3627 .LVL306: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3628 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1186 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3629 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1187 3630 .thumb 3631 .syntax unified 3632 .LBE410: 3633 .LBE409: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3634 .loc 1 1873 5 discriminator 1 view .LVU1188 3635 00be 23F01003 bic r3, r3, #16 3636 .LVL307: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3637 .loc 1 1873 5 is_stmt 1 discriminator 1 view .LVU1189 3638 .LBB411: 3639 .LBI411: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3640 .loc 2 527 31 discriminator 1 view .LVU1190 3641 .LBB412: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3642 .loc 2 529 4 discriminator 1 view .LVU1191 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3643 .loc 2 531 4 discriminator 1 view .LVU1192 3644 00c2 0C32 adds r2, r2, #12 3645 .LVL308: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3646 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1193 3647 .syntax unified 3648 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3649 00c4 42E80031 strex r1, r3, [r2] 3650 @ 0 "" 2 3651 .LVL309: 3652 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1194 3653 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1195 3654 .thumb 3655 .syntax unified 3656 .LBE412: 3657 .LBE411: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3658 .loc 1 1873 5 discriminator 1 view .LVU1196 3659 00c8 0029 cmp r1, #0 3660 00ca F3D1 bne .L202 3661 00cc B5E7 b .L201 ARM GAS /tmp/cc8UBTH4.s page 159 3662 .LVL310: 3663 .L209: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3664 .loc 1 1873 5 discriminator 1 view .LVU1197 3665 .LBE408: 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3666 .loc 1 1890 9 is_stmt 1 view .LVU1198 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3667 .loc 1 1890 13 is_stmt 0 view .LVU1199 3668 00ce A06B ldr r0, [r4, #56] 3669 00d0 FFF7FEFF bl HAL_DMA_GetError 3670 .LVL311: 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3671 .loc 1 1890 12 view .LVU1200 3672 00d4 2028 cmp r0, #32 3673 00d6 C9D1 bne .L203 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3674 .loc 1 1893 11 is_stmt 1 view .LVU1201 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3675 .loc 1 1893 28 is_stmt 0 view .LVU1202 3676 00d8 1023 movs r3, #16 3677 00da 6364 str r3, [r4, #68] 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3678 .loc 1 1895 11 is_stmt 1 view .LVU1203 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3679 .loc 1 1895 18 is_stmt 0 view .LVU1204 3680 00dc 0320 movs r0, #3 3681 00de E8E7 b .L205 3682 .L210: 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3683 .loc 1 1915 9 is_stmt 1 view .LVU1205 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3684 .loc 1 1915 13 is_stmt 0 view .LVU1206 3685 00e0 E06B ldr r0, [r4, #60] 3686 00e2 FFF7FEFF bl HAL_DMA_GetError 3687 .LVL312: 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3688 .loc 1 1915 12 view .LVU1207 3689 00e6 2028 cmp r0, #32 3690 00e8 D9D1 bne .L206 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3691 .loc 1 1918 11 is_stmt 1 view .LVU1208 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3692 .loc 1 1918 28 is_stmt 0 view .LVU1209 3693 00ea 1023 movs r3, #16 3694 00ec 6364 str r3, [r4, #68] 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3695 .loc 1 1920 11 is_stmt 1 view .LVU1210 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3696 .loc 1 1920 18 is_stmt 0 view .LVU1211 3697 00ee 0320 movs r0, #3 3698 00f0 DFE7 b .L205 3699 .cfi_endproc 3700 .LFE154: 3702 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 3703 .align 1 3704 .global HAL_UART_AbortTransmit ARM GAS /tmp/cc8UBTH4.s page 160 3705 .syntax unified 3706 .thumb 3707 .thumb_func 3708 .fpu fpv4-sp-d16 3710 HAL_UART_AbortTransmit: 3711 .LVL313: 3712 .LFB155: 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3713 .loc 1 1954 1 is_stmt 1 view -0 3714 .cfi_startproc 3715 @ args = 0, pretend = 0, frame = 0 3716 @ frame_needed = 0, uses_anonymous_args = 0 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3717 .loc 1 1954 1 is_stmt 0 view .LVU1213 3718 0000 10B5 push {r4, lr} 3719 .LCFI32: 3720 .cfi_def_cfa_offset 8 3721 .cfi_offset 4, -8 3722 .cfi_offset 14, -4 3723 0002 0446 mov r4, r0 3724 .L212: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3725 .loc 1 1956 3 is_stmt 1 discriminator 1 view .LVU1214 3726 .LBB413: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3727 .loc 1 1956 3 discriminator 1 view .LVU1215 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3728 .loc 1 1956 3 discriminator 1 view .LVU1216 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3729 .loc 1 1956 3 discriminator 1 view .LVU1217 3730 0004 2268 ldr r2, [r4] 3731 .LVL314: 3732 .LBB414: 3733 .LBI414: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3734 .loc 2 476 31 discriminator 1 view .LVU1218 3735 .LBB415: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3736 .loc 2 478 5 discriminator 1 view .LVU1219 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3737 .loc 2 480 4 discriminator 1 view .LVU1220 3738 0006 02F10C03 add r3, r2, #12 3739 .LVL315: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3740 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1221 3741 .syntax unified 3742 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3743 000a 53E8003F ldrex r3, [r3] 3744 @ 0 "" 2 3745 .LVL316: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3746 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1222 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3747 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1223 3748 .thumb 3749 .syntax unified 3750 .LBE415: ARM GAS /tmp/cc8UBTH4.s page 161 3751 .LBE414: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3752 .loc 1 1956 3 discriminator 1 view .LVU1224 3753 000e 23F0C003 bic r3, r3, #192 3754 .LVL317: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3755 .loc 1 1956 3 is_stmt 1 discriminator 1 view .LVU1225 3756 .LBB416: 3757 .LBI416: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3758 .loc 2 527 31 discriminator 1 view .LVU1226 3759 .LBB417: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3760 .loc 2 529 4 discriminator 1 view .LVU1227 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3761 .loc 2 531 4 discriminator 1 view .LVU1228 3762 0012 0C32 adds r2, r2, #12 3763 .LVL318: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3764 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1229 3765 .syntax unified 3766 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3767 0014 42E80031 strex r1, r3, [r2] 3768 @ 0 "" 2 3769 .LVL319: 3770 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1230 3771 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1231 3772 .thumb 3773 .syntax unified 3774 .LBE417: 3775 .LBE416: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3776 .loc 1 1956 3 discriminator 1 view .LVU1232 3777 0018 0029 cmp r1, #0 3778 001a F3D1 bne .L212 3779 .LBE413: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3780 .loc 1 1956 3 is_stmt 1 discriminator 2 view .LVU1233 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3781 .loc 1 1959 3 discriminator 2 view .LVU1234 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3782 .loc 1 1959 7 is_stmt 0 discriminator 2 view .LVU1235 3783 001c 2368 ldr r3, [r4] 3784 .LVL320: 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3785 .loc 1 1959 7 discriminator 2 view .LVU1236 3786 001e 5B69 ldr r3, [r3, #20] 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3787 .loc 1 1959 6 discriminator 2 view .LVU1237 3788 0020 13F0800F tst r3, #128 3789 0024 13D0 beq .L213 3790 .L214: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3791 .loc 1 1961 5 is_stmt 1 discriminator 1 view .LVU1238 3792 .LBB418: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3793 .loc 1 1961 5 discriminator 1 view .LVU1239 ARM GAS /tmp/cc8UBTH4.s page 162 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3794 .loc 1 1961 5 discriminator 1 view .LVU1240 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3795 .loc 1 1961 5 discriminator 1 view .LVU1241 3796 0026 2268 ldr r2, [r4] 3797 .LVL321: 3798 .LBB419: 3799 .LBI419: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3800 .loc 2 476 31 discriminator 1 view .LVU1242 3801 .LBB420: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3802 .loc 2 478 5 discriminator 1 view .LVU1243 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3803 .loc 2 480 4 discriminator 1 view .LVU1244 3804 0028 02F11403 add r3, r2, #20 3805 .LVL322: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3806 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1245 3807 .syntax unified 3808 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3809 002c 53E8003F ldrex r3, [r3] 3810 @ 0 "" 2 3811 .LVL323: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3812 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1246 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3813 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1247 3814 .thumb 3815 .syntax unified 3816 .LBE420: 3817 .LBE419: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3818 .loc 1 1961 5 discriminator 1 view .LVU1248 3819 0030 23F08003 bic r3, r3, #128 3820 .LVL324: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3821 .loc 1 1961 5 is_stmt 1 discriminator 1 view .LVU1249 3822 .LBB421: 3823 .LBI421: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3824 .loc 2 527 31 discriminator 1 view .LVU1250 3825 .LBB422: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3826 .loc 2 529 4 discriminator 1 view .LVU1251 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3827 .loc 2 531 4 discriminator 1 view .LVU1252 3828 0034 1432 adds r2, r2, #20 3829 .LVL325: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3830 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1253 3831 .syntax unified 3832 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3833 0036 42E80031 strex r1, r3, [r2] 3834 @ 0 "" 2 3835 .LVL326: 3836 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1254 ARM GAS /tmp/cc8UBTH4.s page 163 3837 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1255 3838 .thumb 3839 .syntax unified 3840 .LBE422: 3841 .LBE421: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3842 .loc 1 1961 5 discriminator 1 view .LVU1256 3843 003a 0029 cmp r1, #0 3844 003c F3D1 bne .L214 3845 .LBE418: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3846 .loc 1 1961 5 is_stmt 1 discriminator 2 view .LVU1257 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3847 .loc 1 1964 5 discriminator 2 view .LVU1258 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3848 .loc 1 1964 14 is_stmt 0 discriminator 2 view .LVU1259 3849 003e A36B ldr r3, [r4, #56] 3850 .LVL327: 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3851 .loc 1 1964 8 discriminator 2 view .LVU1260 3852 0040 2BB1 cbz r3, .L213 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3853 .loc 1 1968 7 is_stmt 1 view .LVU1261 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3854 .loc 1 1968 40 is_stmt 0 view .LVU1262 3855 0042 0022 movs r2, #0 3856 0044 1A65 str r2, [r3, #80] 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3857 .loc 1 1970 7 is_stmt 1 view .LVU1263 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3858 .loc 1 1970 11 is_stmt 0 view .LVU1264 3859 0046 A06B ldr r0, [r4, #56] 3860 .LVL328: 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3861 .loc 1 1970 11 view .LVU1265 3862 0048 FFF7FEFF bl HAL_DMA_Abort 3863 .LVL329: 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3864 .loc 1 1970 10 view .LVU1266 3865 004c 28B9 cbnz r0, .L217 3866 .L213: 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3867 .loc 1 1984 3 is_stmt 1 view .LVU1267 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3868 .loc 1 1984 22 is_stmt 0 view .LVU1268 3869 004e 0020 movs r0, #0 3870 0050 E084 strh r0, [r4, #38] @ movhi 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3871 .loc 1 1987 3 is_stmt 1 view .LVU1269 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3872 .loc 1 1987 17 is_stmt 0 view .LVU1270 3873 0052 2023 movs r3, #32 3874 0054 84F84130 strb r3, [r4, #65] 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3875 .loc 1 1989 3 is_stmt 1 view .LVU1271 3876 .L215: 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 164 3877 .loc 1 1990 1 is_stmt 0 view .LVU1272 3878 0058 10BD pop {r4, pc} 3879 .LVL330: 3880 .L217: 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3881 .loc 1 1972 9 is_stmt 1 view .LVU1273 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3882 .loc 1 1972 13 is_stmt 0 view .LVU1274 3883 005a A06B ldr r0, [r4, #56] 3884 005c FFF7FEFF bl HAL_DMA_GetError 3885 .LVL331: 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3886 .loc 1 1972 12 view .LVU1275 3887 0060 2028 cmp r0, #32 3888 0062 F4D1 bne .L213 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3889 .loc 1 1975 11 is_stmt 1 view .LVU1276 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3890 .loc 1 1975 28 is_stmt 0 view .LVU1277 3891 0064 1023 movs r3, #16 3892 0066 6364 str r3, [r4, #68] 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3893 .loc 1 1977 11 is_stmt 1 view .LVU1278 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3894 .loc 1 1977 18 is_stmt 0 view .LVU1279 3895 0068 0320 movs r0, #3 3896 006a F5E7 b .L215 3897 .cfi_endproc 3898 .LFE155: 3900 .section .text.HAL_UART_AbortReceive,"ax",%progbits 3901 .align 1 3902 .global HAL_UART_AbortReceive 3903 .syntax unified 3904 .thumb 3905 .thumb_func 3906 .fpu fpv4-sp-d16 3908 HAL_UART_AbortReceive: 3909 .LVL332: 3910 .LFB156: 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3911 .loc 1 2005 1 is_stmt 1 view -0 3912 .cfi_startproc 3913 @ args = 0, pretend = 0, frame = 0 3914 @ frame_needed = 0, uses_anonymous_args = 0 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3915 .loc 1 2005 1 is_stmt 0 view .LVU1281 3916 0000 10B5 push {r4, lr} 3917 .LCFI33: 3918 .cfi_def_cfa_offset 8 3919 .cfi_offset 4, -8 3920 .cfi_offset 14, -4 3921 0002 0446 mov r4, r0 3922 .L219: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3923 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1282 3924 .LBB423: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); ARM GAS /tmp/cc8UBTH4.s page 165 3925 .loc 1 2007 3 discriminator 1 view .LVU1283 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3926 .loc 1 2007 3 discriminator 1 view .LVU1284 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3927 .loc 1 2007 3 discriminator 1 view .LVU1285 3928 0004 2268 ldr r2, [r4] 3929 .LVL333: 3930 .LBB424: 3931 .LBI424: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3932 .loc 2 476 31 discriminator 1 view .LVU1286 3933 .LBB425: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3934 .loc 2 478 5 discriminator 1 view .LVU1287 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3935 .loc 2 480 4 discriminator 1 view .LVU1288 3936 0006 02F10C03 add r3, r2, #12 3937 .LVL334: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3938 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1289 3939 .syntax unified 3940 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3941 000a 53E8003F ldrex r3, [r3] 3942 @ 0 "" 2 3943 .LVL335: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3944 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1290 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3945 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1291 3946 .thumb 3947 .syntax unified 3948 .LBE425: 3949 .LBE424: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3950 .loc 1 2007 3 discriminator 1 view .LVU1292 3951 000e 23F49073 bic r3, r3, #288 3952 .LVL336: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3953 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1293 3954 .LBB426: 3955 .LBI426: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3956 .loc 2 527 31 discriminator 1 view .LVU1294 3957 .LBB427: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3958 .loc 2 529 4 discriminator 1 view .LVU1295 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3959 .loc 2 531 4 discriminator 1 view .LVU1296 3960 0012 0C32 adds r2, r2, #12 3961 .LVL337: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3962 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1297 3963 .syntax unified 3964 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3965 0014 42E80031 strex r1, r3, [r2] 3966 @ 0 "" 2 3967 .LVL338: ARM GAS /tmp/cc8UBTH4.s page 166 3968 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1298 3969 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1299 3970 .thumb 3971 .syntax unified 3972 .LBE427: 3973 .LBE426: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3974 .loc 1 2007 3 discriminator 1 view .LVU1300 3975 0018 0029 cmp r1, #0 3976 001a F3D1 bne .L219 3977 .LVL339: 3978 .L220: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3979 .loc 1 2007 3 discriminator 1 view .LVU1301 3980 .LBE423: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3981 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1302 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3982 .loc 1 2008 3 discriminator 1 view .LVU1303 3983 .LBB428: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3984 .loc 1 2008 3 discriminator 1 view .LVU1304 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3985 .loc 1 2008 3 discriminator 1 view .LVU1305 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3986 .loc 1 2008 3 discriminator 1 view .LVU1306 3987 001c 2268 ldr r2, [r4] 3988 .LVL340: 3989 .LBB429: 3990 .LBI429: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3991 .loc 2 476 31 discriminator 1 view .LVU1307 3992 .LBB430: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3993 .loc 2 478 5 discriminator 1 view .LVU1308 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3994 .loc 2 480 4 discriminator 1 view .LVU1309 3995 001e 02F11403 add r3, r2, #20 3996 .LVL341: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3997 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1310 3998 .syntax unified 3999 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4000 0022 53E8003F ldrex r3, [r3] 4001 @ 0 "" 2 4002 .LVL342: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4003 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1311 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4004 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1312 4005 .thumb 4006 .syntax unified 4007 .LBE430: 4008 .LBE429: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4009 .loc 1 2008 3 discriminator 1 view .LVU1313 4010 0026 23F00103 bic r3, r3, #1 ARM GAS /tmp/cc8UBTH4.s page 167 4011 .LVL343: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4012 .loc 1 2008 3 is_stmt 1 discriminator 1 view .LVU1314 4013 .LBB431: 4014 .LBI431: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4015 .loc 2 527 31 discriminator 1 view .LVU1315 4016 .LBB432: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4017 .loc 2 529 4 discriminator 1 view .LVU1316 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4018 .loc 2 531 4 discriminator 1 view .LVU1317 4019 002a 1432 adds r2, r2, #20 4020 .LVL344: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4021 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1318 4022 .syntax unified 4023 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4024 002c 42E80031 strex r1, r3, [r2] 4025 @ 0 "" 2 4026 .LVL345: 4027 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1319 4028 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1320 4029 .thumb 4030 .syntax unified 4031 .LBE432: 4032 .LBE431: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4033 .loc 1 2008 3 discriminator 1 view .LVU1321 4034 0030 0029 cmp r1, #0 4035 0032 F3D1 bne .L220 4036 .LBE428: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4037 .loc 1 2008 3 is_stmt 1 discriminator 2 view .LVU1322 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4038 .loc 1 2011 3 discriminator 2 view .LVU1323 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4039 .loc 1 2011 12 is_stmt 0 discriminator 2 view .LVU1324 4040 0034 236B ldr r3, [r4, #48] 4041 .LVL346: 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4042 .loc 1 2011 6 discriminator 2 view .LVU1325 4043 0036 012B cmp r3, #1 4044 0038 1FD0 beq .L222 4045 .L221: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4046 .loc 1 2013 5 is_stmt 1 discriminator 2 view .LVU1326 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4047 .loc 1 2017 3 discriminator 2 view .LVU1327 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4048 .loc 1 2017 7 is_stmt 0 discriminator 2 view .LVU1328 4049 003a 2368 ldr r3, [r4] 4050 003c 5B69 ldr r3, [r3, #20] 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4051 .loc 1 2017 6 discriminator 2 view .LVU1329 4052 003e 13F0400F tst r3, #64 4053 0042 13D0 beq .L223 ARM GAS /tmp/cc8UBTH4.s page 168 4054 .L224: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4055 .loc 1 2019 5 is_stmt 1 discriminator 1 view .LVU1330 4056 .LBB433: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4057 .loc 1 2019 5 discriminator 1 view .LVU1331 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4058 .loc 1 2019 5 discriminator 1 view .LVU1332 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4059 .loc 1 2019 5 discriminator 1 view .LVU1333 4060 0044 2268 ldr r2, [r4] 4061 .LVL347: 4062 .LBB434: 4063 .LBI434: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4064 .loc 2 476 31 discriminator 1 view .LVU1334 4065 .LBB435: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4066 .loc 2 478 5 discriminator 1 view .LVU1335 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4067 .loc 2 480 4 discriminator 1 view .LVU1336 4068 0046 02F11403 add r3, r2, #20 4069 .LVL348: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4070 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1337 4071 .syntax unified 4072 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4073 004a 53E8003F ldrex r3, [r3] 4074 @ 0 "" 2 4075 .LVL349: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4076 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1338 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4077 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1339 4078 .thumb 4079 .syntax unified 4080 .LBE435: 4081 .LBE434: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4082 .loc 1 2019 5 discriminator 1 view .LVU1340 4083 004e 23F04003 bic r3, r3, #64 4084 .LVL350: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4085 .loc 1 2019 5 is_stmt 1 discriminator 1 view .LVU1341 4086 .LBB436: 4087 .LBI436: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4088 .loc 2 527 31 discriminator 1 view .LVU1342 4089 .LBB437: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4090 .loc 2 529 4 discriminator 1 view .LVU1343 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4091 .loc 2 531 4 discriminator 1 view .LVU1344 4092 0052 1432 adds r2, r2, #20 4093 .LVL351: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4094 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1345 ARM GAS /tmp/cc8UBTH4.s page 169 4095 .syntax unified 4096 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4097 0054 42E80031 strex r1, r3, [r2] 4098 @ 0 "" 2 4099 .LVL352: 4100 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1346 4101 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1347 4102 .thumb 4103 .syntax unified 4104 .LBE437: 4105 .LBE436: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4106 .loc 1 2019 5 discriminator 1 view .LVU1348 4107 0058 0029 cmp r1, #0 4108 005a F3D1 bne .L224 4109 .LBE433: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4110 .loc 1 2019 5 is_stmt 1 discriminator 2 view .LVU1349 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4111 .loc 1 2022 5 discriminator 2 view .LVU1350 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4112 .loc 1 2022 14 is_stmt 0 discriminator 2 view .LVU1351 4113 005c E36B ldr r3, [r4, #60] 4114 .LVL353: 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4115 .loc 1 2022 8 discriminator 2 view .LVU1352 4116 005e 2BB1 cbz r3, .L223 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4117 .loc 1 2026 7 is_stmt 1 view .LVU1353 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4118 .loc 1 2026 40 is_stmt 0 view .LVU1354 4119 0060 0022 movs r2, #0 4120 0062 1A65 str r2, [r3, #80] 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4121 .loc 1 2028 7 is_stmt 1 view .LVU1355 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4122 .loc 1 2028 11 is_stmt 0 view .LVU1356 4123 0064 E06B ldr r0, [r4, #60] 4124 .LVL354: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4125 .loc 1 2028 11 view .LVU1357 4126 0066 FFF7FEFF bl HAL_DMA_Abort 4127 .LVL355: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4128 .loc 1 2028 10 view .LVU1358 4129 006a 98B9 cbnz r0, .L227 4130 .L223: 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4131 .loc 1 2042 3 is_stmt 1 view .LVU1359 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4132 .loc 1 2042 22 is_stmt 0 view .LVU1360 4133 006c 0020 movs r0, #0 4134 006e E085 strh r0, [r4, #46] @ movhi 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4135 .loc 1 2045 3 is_stmt 1 view .LVU1361 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4136 .loc 1 2045 18 is_stmt 0 view .LVU1362 ARM GAS /tmp/cc8UBTH4.s page 170 4137 0070 2023 movs r3, #32 4138 0072 84F84230 strb r3, [r4, #66] 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4139 .loc 1 2046 3 is_stmt 1 view .LVU1363 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4140 .loc 1 2046 24 is_stmt 0 view .LVU1364 4141 0076 2063 str r0, [r4, #48] 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4142 .loc 1 2048 3 is_stmt 1 view .LVU1365 4143 .L225: 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4144 .loc 1 2049 1 is_stmt 0 view .LVU1366 4145 0078 10BD pop {r4, pc} 4146 .LVL356: 4147 .L222: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4148 .loc 1 2013 5 is_stmt 1 discriminator 1 view .LVU1367 4149 .LBB438: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4150 .loc 1 2013 5 discriminator 1 view .LVU1368 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4151 .loc 1 2013 5 discriminator 1 view .LVU1369 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4152 .loc 1 2013 5 discriminator 1 view .LVU1370 4153 007a 2268 ldr r2, [r4] 4154 .LVL357: 4155 .LBB439: 4156 .LBI439: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4157 .loc 2 476 31 discriminator 1 view .LVU1371 4158 .LBB440: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4159 .loc 2 478 5 discriminator 1 view .LVU1372 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4160 .loc 2 480 4 discriminator 1 view .LVU1373 4161 007c 02F10C03 add r3, r2, #12 4162 .LVL358: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4163 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1374 4164 .syntax unified 4165 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4166 0080 53E8003F ldrex r3, [r3] 4167 @ 0 "" 2 4168 .LVL359: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4169 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1375 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4170 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1376 4171 .thumb 4172 .syntax unified 4173 .LBE440: 4174 .LBE439: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4175 .loc 1 2013 5 discriminator 1 view .LVU1377 4176 0084 23F01003 bic r3, r3, #16 4177 .LVL360: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 171 4178 .loc 1 2013 5 is_stmt 1 discriminator 1 view .LVU1378 4179 .LBB441: 4180 .LBI441: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4181 .loc 2 527 31 discriminator 1 view .LVU1379 4182 .LBB442: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4183 .loc 2 529 4 discriminator 1 view .LVU1380 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4184 .loc 2 531 4 discriminator 1 view .LVU1381 4185 0088 0C32 adds r2, r2, #12 4186 .LVL361: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4187 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1382 4188 .syntax unified 4189 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4190 008a 42E80031 strex r1, r3, [r2] 4191 @ 0 "" 2 4192 .LVL362: 4193 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1383 4194 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1384 4195 .thumb 4196 .syntax unified 4197 .LBE442: 4198 .LBE441: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4199 .loc 1 2013 5 discriminator 1 view .LVU1385 4200 008e 0029 cmp r1, #0 4201 0090 F3D1 bne .L222 4202 0092 D2E7 b .L221 4203 .LVL363: 4204 .L227: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4205 .loc 1 2013 5 discriminator 1 view .LVU1386 4206 .LBE438: 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4207 .loc 1 2030 9 is_stmt 1 view .LVU1387 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4208 .loc 1 2030 13 is_stmt 0 view .LVU1388 4209 0094 E06B ldr r0, [r4, #60] 4210 0096 FFF7FEFF bl HAL_DMA_GetError 4211 .LVL364: 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4212 .loc 1 2030 12 view .LVU1389 4213 009a 2028 cmp r0, #32 4214 009c E6D1 bne .L223 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4215 .loc 1 2033 11 is_stmt 1 view .LVU1390 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4216 .loc 1 2033 28 is_stmt 0 view .LVU1391 4217 009e 1023 movs r3, #16 4218 00a0 6364 str r3, [r4, #68] 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4219 .loc 1 2035 11 is_stmt 1 view .LVU1392 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4220 .loc 1 2035 18 is_stmt 0 view .LVU1393 4221 00a2 0320 movs r0, #3 ARM GAS /tmp/cc8UBTH4.s page 172 4222 00a4 E8E7 b .L225 4223 .cfi_endproc 4224 .LFE156: 4226 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 4227 .align 1 4228 .weak HAL_UART_TxCpltCallback 4229 .syntax unified 4230 .thumb 4231 .thumb_func 4232 .fpu fpv4-sp-d16 4234 HAL_UART_TxCpltCallback: 4235 .LVL365: 4236 .LFB161: 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4237 .loc 1 2620 1 is_stmt 1 view -0 4238 .cfi_startproc 4239 @ args = 0, pretend = 0, frame = 0 4240 @ frame_needed = 0, uses_anonymous_args = 0 4241 @ link register save eliminated. 2622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 4242 .loc 1 2622 3 view .LVU1395 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4243 .loc 1 2626 1 is_stmt 0 view .LVU1396 4244 0000 7047 bx lr 4245 .cfi_endproc 4246 .LFE161: 4248 .section .text.UART_DMATransmitCplt,"ax",%progbits 4249 .align 1 4250 .syntax unified 4251 .thumb 4252 .thumb_func 4253 .fpu fpv4-sp-d16 4255 UART_DMATransmitCplt: 4256 .LVL366: 4257 .LFB177: 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4258 .loc 1 3016 1 is_stmt 1 view -0 4259 .cfi_startproc 4260 @ args = 0, pretend = 0, frame = 0 4261 @ frame_needed = 0, uses_anonymous_args = 0 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4262 .loc 1 3016 1 is_stmt 0 view .LVU1398 4263 0000 08B5 push {r3, lr} 4264 .LCFI34: 4265 .cfi_def_cfa_offset 8 4266 .cfi_offset 3, -8 4267 .cfi_offset 14, -4 4268 0002 0346 mov r3, r0 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 4269 .loc 1 3017 3 is_stmt 1 view .LVU1399 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 4270 .loc 1 3017 23 is_stmt 0 view .LVU1400 4271 0004 806B ldr r0, [r0, #56] 4272 .LVL367: 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4273 .loc 1 3019 3 is_stmt 1 view .LVU1401 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 173 4274 .loc 1 3019 12 is_stmt 0 view .LVU1402 4275 0006 1B68 ldr r3, [r3] 4276 .LVL368: 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4277 .loc 1 3019 22 view .LVU1403 4278 0008 1B68 ldr r3, [r3] 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4279 .loc 1 3019 6 view .LVU1404 4280 000a 13F4807F tst r3, #256 4281 000e 1AD1 bne .L230 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4282 .loc 1 3021 5 is_stmt 1 view .LVU1405 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4283 .loc 1 3021 24 is_stmt 0 view .LVU1406 4284 0010 0023 movs r3, #0 4285 0012 C384 strh r3, [r0, #38] @ movhi 4286 .L231: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4287 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1407 4288 .LBB443: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4289 .loc 1 3025 5 discriminator 1 view .LVU1408 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4290 .loc 1 3025 5 discriminator 1 view .LVU1409 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4291 .loc 1 3025 5 discriminator 1 view .LVU1410 4292 0014 0268 ldr r2, [r0] 4293 .LVL369: 4294 .LBB444: 4295 .LBI444: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4296 .loc 2 476 31 discriminator 1 view .LVU1411 4297 .LBB445: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4298 .loc 2 478 5 discriminator 1 view .LVU1412 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4299 .loc 2 480 4 discriminator 1 view .LVU1413 4300 0016 02F11403 add r3, r2, #20 4301 .LVL370: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4302 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1414 4303 .syntax unified 4304 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4305 001a 53E8003F ldrex r3, [r3] 4306 @ 0 "" 2 4307 .LVL371: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4308 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1415 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4309 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1416 4310 .thumb 4311 .syntax unified 4312 .LBE445: 4313 .LBE444: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4314 .loc 1 3025 5 discriminator 1 view .LVU1417 4315 001e 23F08003 bic r3, r3, #128 ARM GAS /tmp/cc8UBTH4.s page 174 4316 .LVL372: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4317 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1418 4318 .LBB446: 4319 .LBI446: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4320 .loc 2 527 31 discriminator 1 view .LVU1419 4321 .LBB447: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4322 .loc 2 529 4 discriminator 1 view .LVU1420 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4323 .loc 2 531 4 discriminator 1 view .LVU1421 4324 0022 1432 adds r2, r2, #20 4325 .LVL373: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4326 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1422 4327 .syntax unified 4328 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4329 0024 42E80031 strex r1, r3, [r2] 4330 @ 0 "" 2 4331 .LVL374: 4332 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1423 4333 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1424 4334 .thumb 4335 .syntax unified 4336 .LBE447: 4337 .LBE446: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4338 .loc 1 3025 5 discriminator 1 view .LVU1425 4339 0028 0029 cmp r1, #0 4340 002a F3D1 bne .L231 4341 .LVL375: 4342 .L232: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4343 .loc 1 3025 5 discriminator 1 view .LVU1426 4344 .LBE443: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4345 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1427 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4346 .loc 1 3028 5 discriminator 1 view .LVU1428 4347 .LBB448: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4348 .loc 1 3028 5 discriminator 1 view .LVU1429 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4349 .loc 1 3028 5 discriminator 1 view .LVU1430 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4350 .loc 1 3028 5 discriminator 1 view .LVU1431 4351 002c 0268 ldr r2, [r0] 4352 .LVL376: 4353 .LBB449: 4354 .LBI449: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4355 .loc 2 476 31 discriminator 1 view .LVU1432 4356 .LBB450: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4357 .loc 2 478 5 discriminator 1 view .LVU1433 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc8UBTH4.s page 175 4358 .loc 2 480 4 discriminator 1 view .LVU1434 4359 002e 02F10C03 add r3, r2, #12 4360 .LVL377: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4361 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1435 4362 .syntax unified 4363 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4364 0032 53E8003F ldrex r3, [r3] 4365 @ 0 "" 2 4366 .LVL378: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4367 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1436 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4368 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1437 4369 .thumb 4370 .syntax unified 4371 .LBE450: 4372 .LBE449: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4373 .loc 1 3028 5 discriminator 1 view .LVU1438 4374 0036 43F04003 orr r3, r3, #64 4375 .LVL379: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4376 .loc 1 3028 5 is_stmt 1 discriminator 1 view .LVU1439 4377 .LBB451: 4378 .LBI451: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4379 .loc 2 527 31 discriminator 1 view .LVU1440 4380 .LBB452: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4381 .loc 2 529 4 discriminator 1 view .LVU1441 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4382 .loc 2 531 4 discriminator 1 view .LVU1442 4383 003a 0C32 adds r2, r2, #12 4384 .LVL380: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4385 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1443 4386 .syntax unified 4387 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4388 003c 42E80031 strex r1, r3, [r2] 4389 @ 0 "" 2 4390 .LVL381: 4391 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1444 4392 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1445 4393 .thumb 4394 .syntax unified 4395 .LBE452: 4396 .LBE451: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4397 .loc 1 3028 5 discriminator 1 view .LVU1446 4398 0040 0029 cmp r1, #0 4399 0042 F3D1 bne .L232 4400 .LVL382: 4401 .L229: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4402 .loc 1 3028 5 discriminator 1 view .LVU1447 4403 .LBE448: ARM GAS /tmp/cc8UBTH4.s page 176 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4404 .loc 1 3042 1 view .LVU1448 4405 0044 08BD pop {r3, pc} 4406 .LVL383: 4407 .L230: 3039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4408 .loc 1 3039 5 is_stmt 1 view .LVU1449 4409 0046 FFF7FEFF bl HAL_UART_TxCpltCallback 4410 .LVL384: 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4411 .loc 1 3042 1 is_stmt 0 view .LVU1450 4412 004a FBE7 b .L229 4413 .cfi_endproc 4414 .LFE177: 4416 .section .text.UART_EndTransmit_IT,"ax",%progbits 4417 .align 1 4418 .syntax unified 4419 .thumb 4420 .thumb_func 4421 .fpu fpv4-sp-d16 4423 UART_EndTransmit_IT: 4424 .LVL385: 4425 .LFB193: 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 4426 .loc 1 3604 1 is_stmt 1 view -0 4427 .cfi_startproc 4428 @ args = 0, pretend = 0, frame = 0 4429 @ frame_needed = 0, uses_anonymous_args = 0 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 4430 .loc 1 3604 1 is_stmt 0 view .LVU1452 4431 0000 08B5 push {r3, lr} 4432 .LCFI35: 4433 .cfi_def_cfa_offset 8 4434 .cfi_offset 3, -8 4435 .cfi_offset 14, -4 3606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4436 .loc 1 3606 3 is_stmt 1 view .LVU1453 4437 0002 0168 ldr r1, [r0] 4438 0004 CA68 ldr r2, [r1, #12] 4439 0006 22F04002 bic r2, r2, #64 4440 000a CA60 str r2, [r1, #12] 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4441 .loc 1 3609 3 view .LVU1454 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4442 .loc 1 3609 17 is_stmt 0 view .LVU1455 4443 000c 2022 movs r2, #32 4444 000e 80F84120 strb r2, [r0, #65] 3616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4445 .loc 1 3616 3 is_stmt 1 view .LVU1456 4446 0012 FFF7FEFF bl HAL_UART_TxCpltCallback 4447 .LVL386: 3619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4448 .loc 1 3619 3 view .LVU1457 3620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4449 .loc 1 3620 1 is_stmt 0 view .LVU1458 4450 0016 0020 movs r0, #0 4451 0018 08BD pop {r3, pc} ARM GAS /tmp/cc8UBTH4.s page 177 4452 .cfi_endproc 4453 .LFE193: 4455 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 4456 .align 1 4457 .weak HAL_UART_TxHalfCpltCallback 4458 .syntax unified 4459 .thumb 4460 .thumb_func 4461 .fpu fpv4-sp-d16 4463 HAL_UART_TxHalfCpltCallback: 4464 .LVL387: 4465 .LFB162: 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4466 .loc 1 2635 1 is_stmt 1 view -0 4467 .cfi_startproc 4468 @ args = 0, pretend = 0, frame = 0 4469 @ frame_needed = 0, uses_anonymous_args = 0 4470 @ link register save eliminated. 2637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 4471 .loc 1 2637 3 view .LVU1460 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4472 .loc 1 2641 1 is_stmt 0 view .LVU1461 4473 0000 7047 bx lr 4474 .cfi_endproc 4475 .LFE162: 4477 .section .text.UART_DMATxHalfCplt,"ax",%progbits 4478 .align 1 4479 .syntax unified 4480 .thumb 4481 .thumb_func 4482 .fpu fpv4-sp-d16 4484 UART_DMATxHalfCplt: 4485 .LVL388: 4486 .LFB178: 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4487 .loc 1 3051 1 is_stmt 1 view -0 4488 .cfi_startproc 4489 @ args = 0, pretend = 0, frame = 0 4490 @ frame_needed = 0, uses_anonymous_args = 0 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4491 .loc 1 3051 1 is_stmt 0 view .LVU1463 4492 0000 08B5 push {r3, lr} 4493 .LCFI36: 4494 .cfi_def_cfa_offset 8 4495 .cfi_offset 3, -8 4496 .cfi_offset 14, -4 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4497 .loc 1 3052 3 is_stmt 1 view .LVU1464 4498 .LVL389: 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4499 .loc 1 3059 3 view .LVU1465 4500 0002 806B ldr r0, [r0, #56] 4501 .LVL390: 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4502 .loc 1 3059 3 is_stmt 0 view .LVU1466 4503 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 4504 .LVL391: ARM GAS /tmp/cc8UBTH4.s page 178 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4505 .loc 1 3061 1 view .LVU1467 4506 0008 08BD pop {r3, pc} 4507 .cfi_endproc 4508 .LFE178: 4510 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 4511 .align 1 4512 .weak HAL_UART_RxCpltCallback 4513 .syntax unified 4514 .thumb 4515 .thumb_func 4516 .fpu fpv4-sp-d16 4518 HAL_UART_RxCpltCallback: 4519 .LVL392: 4520 .LFB163: 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4521 .loc 1 2650 1 is_stmt 1 view -0 4522 .cfi_startproc 4523 @ args = 0, pretend = 0, frame = 0 4524 @ frame_needed = 0, uses_anonymous_args = 0 4525 @ link register save eliminated. 2652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 4526 .loc 1 2652 3 view .LVU1469 2656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4527 .loc 1 2656 1 is_stmt 0 view .LVU1470 4528 0000 7047 bx lr 4529 .cfi_endproc 4530 .LFE163: 4532 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits 4533 .align 1 4534 .weak HAL_UART_RxHalfCpltCallback 4535 .syntax unified 4536 .thumb 4537 .thumb_func 4538 .fpu fpv4-sp-d16 4540 HAL_UART_RxHalfCpltCallback: 4541 .LVL393: 4542 .LFB164: 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4543 .loc 1 2665 1 is_stmt 1 view -0 4544 .cfi_startproc 4545 @ args = 0, pretend = 0, frame = 0 4546 @ frame_needed = 0, uses_anonymous_args = 0 4547 @ link register save eliminated. 2667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 4548 .loc 1 2667 3 view .LVU1472 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4549 .loc 1 2671 1 is_stmt 0 view .LVU1473 4550 0000 7047 bx lr 4551 .cfi_endproc 4552 .LFE164: 4554 .section .text.HAL_UART_ErrorCallback,"ax",%progbits 4555 .align 1 4556 .weak HAL_UART_ErrorCallback 4557 .syntax unified 4558 .thumb 4559 .thumb_func ARM GAS /tmp/cc8UBTH4.s page 179 4560 .fpu fpv4-sp-d16 4562 HAL_UART_ErrorCallback: 4563 .LVL394: 4564 .LFB165: 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4565 .loc 1 2680 1 is_stmt 1 view -0 4566 .cfi_startproc 4567 @ args = 0, pretend = 0, frame = 0 4568 @ frame_needed = 0, uses_anonymous_args = 0 4569 @ link register save eliminated. 2682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* NOTE: This function should not be modified, when the callback is needed, 4570 .loc 1 2682 3 view .LVU1475 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4571 .loc 1 2686 1 is_stmt 0 view .LVU1476 4572 0000 7047 bx lr 4573 .cfi_endproc 4574 .LFE165: 4576 .section .text.UART_DMAError,"ax",%progbits 4577 .align 1 4578 .syntax unified 4579 .thumb 4580 .thumb_func 4581 .fpu fpv4-sp-d16 4583 UART_DMAError: 4584 .LVL395: 4585 .LFB181: 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 4586 .loc 1 3171 1 is_stmt 1 view -0 4587 .cfi_startproc 4588 @ args = 0, pretend = 0, frame = 0 4589 @ frame_needed = 0, uses_anonymous_args = 0 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 4590 .loc 1 3171 1 is_stmt 0 view .LVU1478 4591 0000 10B5 push {r4, lr} 4592 .LCFI37: 4593 .cfi_def_cfa_offset 8 4594 .cfi_offset 4, -8 4595 .cfi_offset 14, -4 3172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4596 .loc 1 3172 3 is_stmt 1 view .LVU1479 4597 .LVL396: 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4598 .loc 1 3173 3 view .LVU1480 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4599 .loc 1 3173 23 is_stmt 0 view .LVU1481 4600 0002 846B ldr r4, [r0, #56] 4601 .LVL397: 3176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 4602 .loc 1 3176 3 is_stmt 1 view .LVU1482 3176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 4603 .loc 1 3176 16 is_stmt 0 view .LVU1483 4604 0004 2368 ldr r3, [r4] 4605 0006 5A69 ldr r2, [r3, #20] 4606 .LVL398: 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4607 .loc 1 3177 3 is_stmt 1 view .LVU1484 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 180 4608 .loc 1 3177 13 is_stmt 0 view .LVU1485 4609 0008 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4610 000c DBB2 uxtb r3, r3 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4611 .loc 1 3177 6 view .LVU1486 4612 000e 212B cmp r3, #33 4613 0010 10D0 beq .L247 4614 .LVL399: 4615 .L244: 3184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 4616 .loc 1 3184 3 is_stmt 1 view .LVU1487 3184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 4617 .loc 1 3184 16 is_stmt 0 view .LVU1488 4618 0012 2368 ldr r3, [r4] 4619 0014 5A69 ldr r2, [r3, #20] 4620 0016 02F04002 and r2, r2, #64 4621 .LVL400: 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4622 .loc 1 3185 3 is_stmt 1 view .LVU1489 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4623 .loc 1 3185 13 is_stmt 0 view .LVU1490 4624 001a 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 4625 001e DBB2 uxtb r3, r3 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4626 .loc 1 3185 6 view .LVU1491 4627 0020 222B cmp r3, #34 4628 0022 11D0 beq .L248 4629 .LVL401: 4630 .L245: 3191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4631 .loc 1 3191 3 is_stmt 1 view .LVU1492 3191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4632 .loc 1 3191 20 is_stmt 0 view .LVU1493 4633 0024 636C ldr r3, [r4, #68] 4634 0026 43F01003 orr r3, r3, #16 4635 002a 6364 str r3, [r4, #68] 3197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4636 .loc 1 3197 3 is_stmt 1 view .LVU1494 4637 002c 2046 mov r0, r4 4638 002e FFF7FEFF bl HAL_UART_ErrorCallback 4639 .LVL402: 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4640 .loc 1 3199 1 is_stmt 0 view .LVU1495 4641 0032 10BD pop {r4, pc} 4642 .LVL403: 4643 .L247: 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4644 .loc 1 3199 1 view .LVU1496 4645 0034 02F08002 and r2, r2, #128 4646 .LVL404: 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4647 .loc 1 3177 49 discriminator 1 view .LVU1497 4648 0038 002A cmp r2, #0 4649 003a EAD0 beq .L244 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 4650 .loc 1 3179 5 is_stmt 1 view .LVU1498 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); ARM GAS /tmp/cc8UBTH4.s page 181 4651 .loc 1 3179 24 is_stmt 0 view .LVU1499 4652 003c 0023 movs r3, #0 4653 003e E384 strh r3, [r4, #38] @ movhi 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4654 .loc 1 3180 5 is_stmt 1 view .LVU1500 4655 0040 2046 mov r0, r4 4656 .LVL405: 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4657 .loc 1 3180 5 is_stmt 0 view .LVU1501 4658 0042 FFF7FEFF bl UART_EndTxTransfer 4659 .LVL406: 4660 0046 E4E7 b .L244 4661 .LVL407: 4662 .L248: 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4663 .loc 1 3185 50 discriminator 1 view .LVU1502 4664 0048 002A cmp r2, #0 4665 004a EBD0 beq .L245 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 4666 .loc 1 3187 5 is_stmt 1 view .LVU1503 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 4667 .loc 1 3187 24 is_stmt 0 view .LVU1504 4668 004c 0023 movs r3, #0 4669 004e E385 strh r3, [r4, #46] @ movhi 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4670 .loc 1 3188 5 is_stmt 1 view .LVU1505 4671 0050 2046 mov r0, r4 4672 0052 FFF7FEFF bl UART_EndRxTransfer 4673 .LVL408: 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4674 .loc 1 3188 5 is_stmt 0 view .LVU1506 4675 0056 E5E7 b .L245 4676 .cfi_endproc 4677 .LFE181: 4679 .section .text.UART_DMAAbortOnError,"ax",%progbits 4680 .align 1 4681 .syntax unified 4682 .thumb 4683 .thumb_func 4684 .fpu fpv4-sp-d16 4686 UART_DMAAbortOnError: 4687 .LVL409: 4688 .LFB187: 3395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4689 .loc 1 3395 1 is_stmt 1 view -0 4690 .cfi_startproc 4691 @ args = 0, pretend = 0, frame = 0 4692 @ frame_needed = 0, uses_anonymous_args = 0 3395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4693 .loc 1 3395 1 is_stmt 0 view .LVU1508 4694 0000 08B5 push {r3, lr} 4695 .LCFI38: 4696 .cfi_def_cfa_offset 8 4697 .cfi_offset 3, -8 4698 .cfi_offset 14, -4 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4699 .loc 1 3396 3 is_stmt 1 view .LVU1509 ARM GAS /tmp/cc8UBTH4.s page 182 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4700 .loc 1 3396 23 is_stmt 0 view .LVU1510 4701 0002 806B ldr r0, [r0, #56] 4702 .LVL410: 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4703 .loc 1 3397 3 is_stmt 1 view .LVU1511 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4704 .loc 1 3397 22 is_stmt 0 view .LVU1512 4705 0004 0023 movs r3, #0 4706 0006 C385 strh r3, [r0, #46] @ movhi 3404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4707 .loc 1 3404 3 is_stmt 1 view .LVU1513 4708 0008 FFF7FEFF bl HAL_UART_ErrorCallback 4709 .LVL411: 3406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4710 .loc 1 3406 1 is_stmt 0 view .LVU1514 4711 000c 08BD pop {r3, pc} 4712 .cfi_endproc 4713 .LFE187: 4715 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 4716 .align 1 4717 .weak HAL_UART_AbortCpltCallback 4718 .syntax unified 4719 .thumb 4720 .thumb_func 4721 .fpu fpv4-sp-d16 4723 HAL_UART_AbortCpltCallback: 4724 .LVL412: 4725 .LFB166: 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4726 .loc 1 2694 1 is_stmt 1 view -0 4727 .cfi_startproc 4728 @ args = 0, pretend = 0, frame = 0 4729 @ frame_needed = 0, uses_anonymous_args = 0 4730 @ link register save eliminated. 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4731 .loc 1 2696 3 view .LVU1516 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4732 .loc 1 2701 1 is_stmt 0 view .LVU1517 4733 0000 7047 bx lr 4734 .cfi_endproc 4735 .LFE166: 4737 .section .text.HAL_UART_Abort_IT,"ax",%progbits 4738 .align 1 4739 .global HAL_UART_Abort_IT 4740 .syntax unified 4741 .thumb 4742 .thumb_func 4743 .fpu fpv4-sp-d16 4745 HAL_UART_Abort_IT: 4746 .LVL413: 4747 .LFB157: 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 4748 .loc 1 2066 1 is_stmt 1 view -0 4749 .cfi_startproc 4750 @ args = 0, pretend = 0, frame = 0 4751 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc8UBTH4.s page 183 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 4752 .loc 1 2066 1 is_stmt 0 view .LVU1519 4753 0000 38B5 push {r3, r4, r5, lr} 4754 .LCFI39: 4755 .cfi_def_cfa_offset 16 4756 .cfi_offset 3, -16 4757 .cfi_offset 4, -12 4758 .cfi_offset 5, -8 4759 .cfi_offset 14, -4 4760 0002 0446 mov r4, r0 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4761 .loc 1 2067 3 is_stmt 1 view .LVU1520 4762 .LVL414: 4763 .L253: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4764 .loc 1 2070 3 discriminator 1 view .LVU1521 4765 .LBB453: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4766 .loc 1 2070 3 discriminator 1 view .LVU1522 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4767 .loc 1 2070 3 discriminator 1 view .LVU1523 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4768 .loc 1 2070 3 discriminator 1 view .LVU1524 4769 0004 2268 ldr r2, [r4] 4770 .LVL415: 4771 .LBB454: 4772 .LBI454: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4773 .loc 2 476 31 discriminator 1 view .LVU1525 4774 .LBB455: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4775 .loc 2 478 5 discriminator 1 view .LVU1526 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4776 .loc 2 480 4 discriminator 1 view .LVU1527 4777 0006 02F10C03 add r3, r2, #12 4778 .LVL416: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4779 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1528 4780 .syntax unified 4781 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4782 000a 53E8003F ldrex r3, [r3] 4783 @ 0 "" 2 4784 .LVL417: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4785 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1529 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4786 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1530 4787 .thumb 4788 .syntax unified 4789 .LBE455: 4790 .LBE454: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4791 .loc 1 2070 3 discriminator 1 view .LVU1531 4792 000e 23F4F073 bic r3, r3, #480 4793 .LVL418: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4794 .loc 1 2070 3 is_stmt 1 discriminator 1 view .LVU1532 ARM GAS /tmp/cc8UBTH4.s page 184 4795 .LBB456: 4796 .LBI456: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4797 .loc 2 527 31 discriminator 1 view .LVU1533 4798 .LBB457: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4799 .loc 2 529 4 discriminator 1 view .LVU1534 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4800 .loc 2 531 4 discriminator 1 view .LVU1535 4801 0012 0C32 adds r2, r2, #12 4802 .LVL419: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4803 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1536 4804 .syntax unified 4805 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4806 0014 42E80031 strex r1, r3, [r2] 4807 @ 0 "" 2 4808 .LVL420: 4809 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1537 4810 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1538 4811 .thumb 4812 .syntax unified 4813 .LBE457: 4814 .LBE456: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4815 .loc 1 2070 3 discriminator 1 view .LVU1539 4816 0018 0029 cmp r1, #0 4817 001a F3D1 bne .L253 4818 .LVL421: 4819 .L254: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4820 .loc 1 2070 3 discriminator 1 view .LVU1540 4821 .LBE453: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4822 .loc 1 2070 3 is_stmt 1 discriminator 1 view .LVU1541 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4823 .loc 1 2071 3 discriminator 1 view .LVU1542 4824 .LBB458: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4825 .loc 1 2071 3 discriminator 1 view .LVU1543 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4826 .loc 1 2071 3 discriminator 1 view .LVU1544 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4827 .loc 1 2071 3 discriminator 1 view .LVU1545 4828 001c 2268 ldr r2, [r4] 4829 .LVL422: 4830 .LBB459: 4831 .LBI459: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4832 .loc 2 476 31 discriminator 1 view .LVU1546 4833 .LBB460: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4834 .loc 2 478 5 discriminator 1 view .LVU1547 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4835 .loc 2 480 4 discriminator 1 view .LVU1548 4836 001e 02F11403 add r3, r2, #20 4837 .LVL423: ARM GAS /tmp/cc8UBTH4.s page 185 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4838 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1549 4839 .syntax unified 4840 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4841 0022 53E8003F ldrex r3, [r3] 4842 @ 0 "" 2 4843 .LVL424: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4844 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1550 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4845 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1551 4846 .thumb 4847 .syntax unified 4848 .LBE460: 4849 .LBE459: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4850 .loc 1 2071 3 discriminator 1 view .LVU1552 4851 0026 23F00103 bic r3, r3, #1 4852 .LVL425: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4853 .loc 1 2071 3 is_stmt 1 discriminator 1 view .LVU1553 4854 .LBB461: 4855 .LBI461: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4856 .loc 2 527 31 discriminator 1 view .LVU1554 4857 .LBB462: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4858 .loc 2 529 4 discriminator 1 view .LVU1555 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4859 .loc 2 531 4 discriminator 1 view .LVU1556 4860 002a 1432 adds r2, r2, #20 4861 .LVL426: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4862 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1557 4863 .syntax unified 4864 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4865 002c 42E80031 strex r1, r3, [r2] 4866 @ 0 "" 2 4867 .LVL427: 4868 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1558 4869 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1559 4870 .thumb 4871 .syntax unified 4872 .LBE462: 4873 .LBE461: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4874 .loc 1 2071 3 discriminator 1 view .LVU1560 4875 0030 0029 cmp r1, #0 4876 0032 F3D1 bne .L254 4877 .LBE458: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4878 .loc 1 2071 3 is_stmt 1 discriminator 2 view .LVU1561 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4879 .loc 1 2074 3 discriminator 2 view .LVU1562 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4880 .loc 1 2074 12 is_stmt 0 discriminator 2 view .LVU1563 4881 0034 236B ldr r3, [r4, #48] ARM GAS /tmp/cc8UBTH4.s page 186 4882 .LVL428: 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4883 .loc 1 2074 6 discriminator 2 view .LVU1564 4884 0036 012B cmp r3, #1 4885 0038 2ED0 beq .L256 4886 .L255: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4887 .loc 1 2076 5 is_stmt 1 discriminator 2 view .LVU1565 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4888 .loc 1 2082 3 discriminator 2 view .LVU1566 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4889 .loc 1 2082 12 is_stmt 0 discriminator 2 view .LVU1567 4890 003a A36B ldr r3, [r4, #56] 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4891 .loc 1 2082 6 discriminator 2 view .LVU1568 4892 003c 33B1 cbz r3, .L257 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4893 .loc 1 2086 5 is_stmt 1 view .LVU1569 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4894 .loc 1 2086 9 is_stmt 0 view .LVU1570 4895 003e 2268 ldr r2, [r4] 4896 0040 5269 ldr r2, [r2, #20] 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4897 .loc 1 2086 8 view .LVU1571 4898 0042 12F0800F tst r2, #128 4899 0046 34D0 beq .L258 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4900 .loc 1 2088 7 is_stmt 1 view .LVU1572 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4901 .loc 1 2088 40 is_stmt 0 view .LVU1573 4902 0048 344A ldr r2, .L270 4903 004a 1A65 str r2, [r3, #80] 4904 .L257: 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4905 .loc 1 2096 3 is_stmt 1 view .LVU1574 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4906 .loc 1 2096 12 is_stmt 0 view .LVU1575 4907 004c E36B ldr r3, [r4, #60] 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4908 .loc 1 2096 6 view .LVU1576 4909 004e 33B1 cbz r3, .L259 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4910 .loc 1 2100 5 is_stmt 1 view .LVU1577 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4911 .loc 1 2100 9 is_stmt 0 view .LVU1578 4912 0050 2268 ldr r2, [r4] 4913 0052 5269 ldr r2, [r2, #20] 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4914 .loc 1 2100 8 view .LVU1579 4915 0054 12F0400F tst r2, #64 4916 0058 2ED0 beq .L260 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4917 .loc 1 2102 7 is_stmt 1 view .LVU1580 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4918 .loc 1 2102 40 is_stmt 0 view .LVU1581 4919 005a 314A ldr r2, .L270+4 4920 005c 1A65 str r2, [r3, #80] ARM GAS /tmp/cc8UBTH4.s page 187 4921 .L259: 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4922 .loc 1 2111 3 is_stmt 1 view .LVU1582 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4923 .loc 1 2111 7 is_stmt 0 view .LVU1583 4924 005e 2368 ldr r3, [r4] 4925 0060 5B69 ldr r3, [r3, #20] 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4926 .loc 1 2111 6 view .LVU1584 4927 0062 13F0800F tst r3, #128 4928 0066 2AD0 beq .L267 4929 .L262: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4930 .loc 1 2114 5 is_stmt 1 discriminator 1 view .LVU1585 4931 .LBB463: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4932 .loc 1 2114 5 discriminator 1 view .LVU1586 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4933 .loc 1 2114 5 discriminator 1 view .LVU1587 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4934 .loc 1 2114 5 discriminator 1 view .LVU1588 4935 0068 2168 ldr r1, [r4] 4936 .LVL429: 4937 .LBB464: 4938 .LBI464: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4939 .loc 2 476 31 discriminator 1 view .LVU1589 4940 .LBB465: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4941 .loc 2 478 5 discriminator 1 view .LVU1590 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4942 .loc 2 480 4 discriminator 1 view .LVU1591 4943 006a 01F11403 add r3, r1, #20 4944 .LVL430: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4945 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1592 4946 .syntax unified 4947 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4948 006e 53E8003F ldrex r3, [r3] 4949 @ 0 "" 2 4950 .LVL431: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4951 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1593 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4952 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1594 4953 .thumb 4954 .syntax unified 4955 .LBE465: 4956 .LBE464: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4957 .loc 1 2114 5 discriminator 1 view .LVU1595 4958 0072 23F08003 bic r3, r3, #128 4959 .LVL432: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4960 .loc 1 2114 5 is_stmt 1 discriminator 1 view .LVU1596 4961 .LBB466: 4962 .LBI466: ARM GAS /tmp/cc8UBTH4.s page 188 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4963 .loc 2 527 31 discriminator 1 view .LVU1597 4964 .LBB467: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4965 .loc 2 529 4 discriminator 1 view .LVU1598 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4966 .loc 2 531 4 discriminator 1 view .LVU1599 4967 0076 1431 adds r1, r1, #20 4968 .LVL433: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4969 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1600 4970 .syntax unified 4971 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4972 0078 41E80032 strex r2, r3, [r1] 4973 @ 0 "" 2 4974 .thumb 4975 .syntax unified 4976 007c 1546 mov r5, r2 4977 .LVL434: 4978 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1601 4979 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1602 4980 .LBE467: 4981 .LBE466: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4982 .loc 1 2114 5 discriminator 1 view .LVU1603 4983 007e 002A cmp r2, #0 4984 0080 F2D1 bne .L262 4985 .LBE463: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4986 .loc 1 2114 5 is_stmt 1 discriminator 2 view .LVU1604 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4987 .loc 1 2117 5 discriminator 2 view .LVU1605 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4988 .loc 1 2117 14 is_stmt 0 discriminator 2 view .LVU1606 4989 0082 A06B ldr r0, [r4, #56] 4990 .LVL435: 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4991 .loc 1 2117 8 discriminator 2 view .LVU1607 4992 0084 0028 cmp r0, #0 4993 0086 42D0 beq .L268 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4994 .loc 1 2123 7 is_stmt 1 view .LVU1608 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4995 .loc 1 2123 11 is_stmt 0 view .LVU1609 4996 0088 FFF7FEFF bl HAL_DMA_Abort_IT 4997 .LVL436: 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4998 .loc 1 2123 10 view .LVU1610 4999 008c C0B1 cbz r0, .L261 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5000 .loc 1 2125 9 is_stmt 1 view .LVU1611 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5001 .loc 1 2125 14 is_stmt 0 view .LVU1612 5002 008e A36B ldr r3, [r4, #56] 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5003 .loc 1 2125 42 view .LVU1613 5004 0090 0022 movs r2, #0 ARM GAS /tmp/cc8UBTH4.s page 189 5005 0092 1A65 str r2, [r3, #80] 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5006 .loc 1 2067 12 view .LVU1614 5007 0094 0125 movs r5, #1 5008 0096 13E0 b .L261 5009 .LVL437: 5010 .L256: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5011 .loc 1 2076 5 is_stmt 1 discriminator 1 view .LVU1615 5012 .LBB468: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5013 .loc 1 2076 5 discriminator 1 view .LVU1616 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5014 .loc 1 2076 5 discriminator 1 view .LVU1617 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5015 .loc 1 2076 5 discriminator 1 view .LVU1618 5016 0098 2268 ldr r2, [r4] 5017 .LVL438: 5018 .LBB469: 5019 .LBI469: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5020 .loc 2 476 31 discriminator 1 view .LVU1619 5021 .LBB470: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5022 .loc 2 478 5 discriminator 1 view .LVU1620 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5023 .loc 2 480 4 discriminator 1 view .LVU1621 5024 009a 02F10C03 add r3, r2, #12 5025 .LVL439: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5026 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1622 5027 .syntax unified 5028 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5029 009e 53E8003F ldrex r3, [r3] 5030 @ 0 "" 2 5031 .LVL440: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5032 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1623 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5033 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1624 5034 .thumb 5035 .syntax unified 5036 .LBE470: 5037 .LBE469: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5038 .loc 1 2076 5 discriminator 1 view .LVU1625 5039 00a2 23F01003 bic r3, r3, #16 5040 .LVL441: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5041 .loc 1 2076 5 is_stmt 1 discriminator 1 view .LVU1626 5042 .LBB471: 5043 .LBI471: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5044 .loc 2 527 31 discriminator 1 view .LVU1627 5045 .LBB472: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5046 .loc 2 529 4 discriminator 1 view .LVU1628 ARM GAS /tmp/cc8UBTH4.s page 190 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5047 .loc 2 531 4 discriminator 1 view .LVU1629 5048 00a6 0C32 adds r2, r2, #12 5049 .LVL442: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5050 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1630 5051 .syntax unified 5052 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5053 00a8 42E80031 strex r1, r3, [r2] 5054 @ 0 "" 2 5055 .LVL443: 5056 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1631 5057 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1632 5058 .thumb 5059 .syntax unified 5060 .LBE472: 5061 .LBE471: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5062 .loc 1 2076 5 discriminator 1 view .LVU1633 5063 00ac 0029 cmp r1, #0 5064 00ae F3D1 bne .L256 5065 00b0 C3E7 b .L255 5066 .LVL444: 5067 .L258: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5068 .loc 1 2076 5 discriminator 1 view .LVU1634 5069 .LBE468: 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5070 .loc 1 2092 7 is_stmt 1 view .LVU1635 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5071 .loc 1 2092 40 is_stmt 0 view .LVU1636 5072 00b2 0022 movs r2, #0 5073 00b4 1A65 str r2, [r3, #80] 5074 00b6 C9E7 b .L257 5075 .L260: 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5076 .loc 1 2106 7 is_stmt 1 view .LVU1637 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5077 .loc 1 2106 40 is_stmt 0 view .LVU1638 5078 00b8 0022 movs r2, #0 5079 00ba 1A65 str r2, [r3, #80] 5080 00bc CFE7 b .L259 5081 .L267: 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5082 .loc 1 2067 12 view .LVU1639 5083 00be 0125 movs r5, #1 5084 .LVL445: 5085 .L261: 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5086 .loc 1 2135 3 is_stmt 1 view .LVU1640 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5087 .loc 1 2135 7 is_stmt 0 view .LVU1641 5088 00c0 2368 ldr r3, [r4] 5089 00c2 5B69 ldr r3, [r3, #20] 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5090 .loc 1 2135 6 view .LVU1642 5091 00c4 13F0400F tst r3, #64 ARM GAS /tmp/cc8UBTH4.s page 191 5092 00c8 23D0 beq .L263 5093 .L264: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5094 .loc 1 2137 5 is_stmt 1 discriminator 1 view .LVU1643 5095 .LBB473: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5096 .loc 1 2137 5 discriminator 1 view .LVU1644 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5097 .loc 1 2137 5 discriminator 1 view .LVU1645 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5098 .loc 1 2137 5 discriminator 1 view .LVU1646 5099 00ca 2268 ldr r2, [r4] 5100 .LVL446: 5101 .LBB474: 5102 .LBI474: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5103 .loc 2 476 31 discriminator 1 view .LVU1647 5104 .LBB475: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5105 .loc 2 478 5 discriminator 1 view .LVU1648 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5106 .loc 2 480 4 discriminator 1 view .LVU1649 5107 00cc 02F11403 add r3, r2, #20 5108 .LVL447: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5109 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1650 5110 .syntax unified 5111 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5112 00d0 53E8003F ldrex r3, [r3] 5113 @ 0 "" 2 5114 .LVL448: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5115 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1651 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5116 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1652 5117 .thumb 5118 .syntax unified 5119 .LBE475: 5120 .LBE474: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5121 .loc 1 2137 5 discriminator 1 view .LVU1653 5122 00d4 23F04003 bic r3, r3, #64 5123 .LVL449: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5124 .loc 1 2137 5 is_stmt 1 discriminator 1 view .LVU1654 5125 .LBB476: 5126 .LBI476: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5127 .loc 2 527 31 discriminator 1 view .LVU1655 5128 .LBB477: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5129 .loc 2 529 4 discriminator 1 view .LVU1656 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5130 .loc 2 531 4 discriminator 1 view .LVU1657 5131 00d8 1432 adds r2, r2, #20 5132 .LVL450: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc8UBTH4.s page 192 5133 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1658 5134 .syntax unified 5135 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5136 00da 42E80031 strex r1, r3, [r2] 5137 @ 0 "" 2 5138 .LVL451: 5139 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1659 5140 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1660 5141 .thumb 5142 .syntax unified 5143 .LBE477: 5144 .LBE476: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5145 .loc 1 2137 5 discriminator 1 view .LVU1661 5146 00de 0029 cmp r1, #0 5147 00e0 F3D1 bne .L264 5148 .LBE473: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5149 .loc 1 2137 5 is_stmt 1 discriminator 2 view .LVU1662 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5150 .loc 1 2140 5 discriminator 2 view .LVU1663 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5151 .loc 1 2140 14 is_stmt 0 discriminator 2 view .LVU1664 5152 00e2 E06B ldr r0, [r4, #60] 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5153 .loc 1 2140 8 discriminator 2 view .LVU1665 5154 00e4 A8B1 cbz r0, .L263 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5155 .loc 1 2146 7 is_stmt 1 view .LVU1666 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5156 .loc 1 2146 11 is_stmt 0 view .LVU1667 5157 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 5158 .LVL452: 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5159 .loc 1 2146 10 view .LVU1668 5160 00ea A0B1 cbz r0, .L265 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5161 .loc 1 2148 9 is_stmt 1 view .LVU1669 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5162 .loc 1 2148 14 is_stmt 0 view .LVU1670 5163 00ec E36B ldr r3, [r4, #60] 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5164 .loc 1 2148 42 view .LVU1671 5165 00ee 0022 movs r2, #0 5166 00f0 1A65 str r2, [r3, #80] 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5167 .loc 1 2149 9 is_stmt 1 view .LVU1672 5168 .LVL453: 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5169 .loc 1 2159 3 view .LVU1673 5170 .L266: 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5171 .loc 1 2162 5 view .LVU1674 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5172 .loc 1 2162 24 is_stmt 0 view .LVU1675 5173 00f2 0023 movs r3, #0 5174 00f4 E384 strh r3, [r4, #38] @ movhi ARM GAS /tmp/cc8UBTH4.s page 193 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5175 .loc 1 2163 5 is_stmt 1 view .LVU1676 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5176 .loc 1 2163 24 is_stmt 0 view .LVU1677 5177 00f6 E385 strh r3, [r4, #46] @ movhi 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5178 .loc 1 2166 5 is_stmt 1 view .LVU1678 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5179 .loc 1 2166 22 is_stmt 0 view .LVU1679 5180 00f8 6364 str r3, [r4, #68] 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5181 .loc 1 2169 5 is_stmt 1 view .LVU1680 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5182 .loc 1 2169 20 is_stmt 0 view .LVU1681 5183 00fa 2022 movs r2, #32 5184 00fc 84F84120 strb r2, [r4, #65] 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5185 .loc 1 2170 5 is_stmt 1 view .LVU1682 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5186 .loc 1 2170 20 is_stmt 0 view .LVU1683 5187 0100 84F84220 strb r2, [r4, #66] 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5188 .loc 1 2171 5 is_stmt 1 view .LVU1684 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5189 .loc 1 2171 26 is_stmt 0 view .LVU1685 5190 0104 2363 str r3, [r4, #48] 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5191 .loc 1 2179 5 is_stmt 1 view .LVU1686 5192 0106 2046 mov r0, r4 5193 0108 FFF7FEFF bl HAL_UART_AbortCpltCallback 5194 .LVL454: 5195 010c 03E0 b .L265 5196 .LVL455: 5197 .L268: 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5198 .loc 1 2067 12 is_stmt 0 view .LVU1687 5199 010e 0125 movs r5, #1 5200 0110 D6E7 b .L261 5201 .LVL456: 5202 .L263: 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5203 .loc 1 2159 3 is_stmt 1 view .LVU1688 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5204 .loc 1 2159 6 is_stmt 0 view .LVU1689 5205 0112 012D cmp r5, #1 5206 0114 EDD0 beq .L266 5207 .LVL457: 5208 .L265: 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5209 .loc 1 2183 3 is_stmt 1 view .LVU1690 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5210 .loc 1 2184 1 is_stmt 0 view .LVU1691 5211 0116 0020 movs r0, #0 5212 0118 38BD pop {r3, r4, r5, pc} 5213 .LVL458: 5214 .L271: 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 194 5215 .loc 1 2184 1 view .LVU1692 5216 011a 00BF .align 2 5217 .L270: 5218 011c 00000000 .word UART_DMATxAbortCallback 5219 0120 00000000 .word UART_DMARxAbortCallback 5220 .cfi_endproc 5221 .LFE157: 5223 .section .text.UART_DMARxAbortCallback,"ax",%progbits 5224 .align 1 5225 .syntax unified 5226 .thumb 5227 .thumb_func 5228 .fpu fpv4-sp-d16 5230 UART_DMARxAbortCallback: 5231 .LVL459: 5232 .LFB189: 3464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5233 .loc 1 3464 1 is_stmt 1 view -0 5234 .cfi_startproc 5235 @ args = 0, pretend = 0, frame = 0 5236 @ frame_needed = 0, uses_anonymous_args = 0 3464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5237 .loc 1 3464 1 is_stmt 0 view .LVU1694 5238 0000 08B5 push {r3, lr} 5239 .LCFI40: 5240 .cfi_def_cfa_offset 8 5241 .cfi_offset 3, -8 5242 .cfi_offset 14, -4 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5243 .loc 1 3465 3 is_stmt 1 view .LVU1695 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5244 .loc 1 3465 23 is_stmt 0 view .LVU1696 5245 0002 806B ldr r0, [r0, #56] 5246 .LVL460: 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5247 .loc 1 3467 3 is_stmt 1 view .LVU1697 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5248 .loc 1 3467 8 is_stmt 0 view .LVU1698 5249 0004 C36B ldr r3, [r0, #60] 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5250 .loc 1 3467 36 view .LVU1699 5251 0006 0022 movs r2, #0 5252 0008 1A65 str r2, [r3, #80] 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5253 .loc 1 3470 3 is_stmt 1 view .LVU1700 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5254 .loc 1 3470 12 is_stmt 0 view .LVU1701 5255 000a 836B ldr r3, [r0, #56] 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5256 .loc 1 3470 6 view .LVU1702 5257 000c 0BB1 cbz r3, .L273 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5258 .loc 1 3472 5 is_stmt 1 view .LVU1703 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5259 .loc 1 3472 22 is_stmt 0 view .LVU1704 5260 000e 1B6D ldr r3, [r3, #80] 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 195 5261 .loc 1 3472 8 view .LVU1705 5262 0010 5BB9 cbnz r3, .L272 5263 .L273: 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5264 .loc 1 3479 3 is_stmt 1 view .LVU1706 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5265 .loc 1 3479 22 is_stmt 0 view .LVU1707 5266 0012 0023 movs r3, #0 5267 0014 C384 strh r3, [r0, #38] @ movhi 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5268 .loc 1 3480 3 is_stmt 1 view .LVU1708 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5269 .loc 1 3480 22 is_stmt 0 view .LVU1709 5270 0016 C385 strh r3, [r0, #46] @ movhi 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5271 .loc 1 3483 3 is_stmt 1 view .LVU1710 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5272 .loc 1 3483 20 is_stmt 0 view .LVU1711 5273 0018 4364 str r3, [r0, #68] 3486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5274 .loc 1 3486 3 is_stmt 1 view .LVU1712 3486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5275 .loc 1 3486 18 is_stmt 0 view .LVU1713 5276 001a 2022 movs r2, #32 5277 001c 80F84120 strb r2, [r0, #65] 3487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5278 .loc 1 3487 3 is_stmt 1 view .LVU1714 3487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5279 .loc 1 3487 18 is_stmt 0 view .LVU1715 5280 0020 80F84220 strb r2, [r0, #66] 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5281 .loc 1 3488 3 is_stmt 1 view .LVU1716 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5282 .loc 1 3488 24 is_stmt 0 view .LVU1717 5283 0024 0363 str r3, [r0, #48] 3496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5284 .loc 1 3496 3 is_stmt 1 view .LVU1718 5285 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 5286 .LVL461: 5287 .L272: 3498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5288 .loc 1 3498 1 is_stmt 0 view .LVU1719 5289 002a 08BD pop {r3, pc} 5290 .cfi_endproc 5291 .LFE189: 5293 .section .text.UART_DMATxAbortCallback,"ax",%progbits 5294 .align 1 5295 .syntax unified 5296 .thumb 5297 .thumb_func 5298 .fpu fpv4-sp-d16 5300 UART_DMATxAbortCallback: 5301 .LVL462: 5302 .LFB188: 3418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5303 .loc 1 3418 1 is_stmt 1 view -0 5304 .cfi_startproc ARM GAS /tmp/cc8UBTH4.s page 196 5305 @ args = 0, pretend = 0, frame = 0 5306 @ frame_needed = 0, uses_anonymous_args = 0 3418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5307 .loc 1 3418 1 is_stmt 0 view .LVU1721 5308 0000 08B5 push {r3, lr} 5309 .LCFI41: 5310 .cfi_def_cfa_offset 8 5311 .cfi_offset 3, -8 5312 .cfi_offset 14, -4 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5313 .loc 1 3419 3 is_stmt 1 view .LVU1722 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5314 .loc 1 3419 23 is_stmt 0 view .LVU1723 5315 0002 806B ldr r0, [r0, #56] 5316 .LVL463: 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5317 .loc 1 3421 3 is_stmt 1 view .LVU1724 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5318 .loc 1 3421 8 is_stmt 0 view .LVU1725 5319 0004 836B ldr r3, [r0, #56] 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5320 .loc 1 3421 36 view .LVU1726 5321 0006 0022 movs r2, #0 5322 0008 1A65 str r2, [r3, #80] 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5323 .loc 1 3424 3 is_stmt 1 view .LVU1727 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5324 .loc 1 3424 12 is_stmt 0 view .LVU1728 5325 000a C36B ldr r3, [r0, #60] 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5326 .loc 1 3424 6 view .LVU1729 5327 000c 0BB1 cbz r3, .L277 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5328 .loc 1 3426 5 is_stmt 1 view .LVU1730 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5329 .loc 1 3426 22 is_stmt 0 view .LVU1731 5330 000e 1B6D ldr r3, [r3, #80] 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5331 .loc 1 3426 8 view .LVU1732 5332 0010 5BB9 cbnz r3, .L276 5333 .L277: 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5334 .loc 1 3433 3 is_stmt 1 view .LVU1733 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5335 .loc 1 3433 22 is_stmt 0 view .LVU1734 5336 0012 0023 movs r3, #0 5337 0014 C384 strh r3, [r0, #38] @ movhi 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5338 .loc 1 3434 3 is_stmt 1 view .LVU1735 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5339 .loc 1 3434 22 is_stmt 0 view .LVU1736 5340 0016 C385 strh r3, [r0, #46] @ movhi 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5341 .loc 1 3437 3 is_stmt 1 view .LVU1737 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5342 .loc 1 3437 20 is_stmt 0 view .LVU1738 5343 0018 4364 str r3, [r0, #68] ARM GAS /tmp/cc8UBTH4.s page 197 3440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5344 .loc 1 3440 3 is_stmt 1 view .LVU1739 3440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5345 .loc 1 3440 18 is_stmt 0 view .LVU1740 5346 001a 2022 movs r2, #32 5347 001c 80F84120 strb r2, [r0, #65] 3441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5348 .loc 1 3441 3 is_stmt 1 view .LVU1741 3441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5349 .loc 1 3441 18 is_stmt 0 view .LVU1742 5350 0020 80F84220 strb r2, [r0, #66] 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5351 .loc 1 3442 3 is_stmt 1 view .LVU1743 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5352 .loc 1 3442 24 is_stmt 0 view .LVU1744 5353 0024 0363 str r3, [r0, #48] 3450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5354 .loc 1 3450 3 is_stmt 1 view .LVU1745 5355 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 5356 .LVL464: 5357 .L276: 3452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5358 .loc 1 3452 1 is_stmt 0 view .LVU1746 5359 002a 08BD pop {r3, pc} 5360 .cfi_endproc 5361 .LFE188: 5363 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 5364 .align 1 5365 .weak HAL_UART_AbortTransmitCpltCallback 5366 .syntax unified 5367 .thumb 5368 .thumb_func 5369 .fpu fpv4-sp-d16 5371 HAL_UART_AbortTransmitCpltCallback: 5372 .LVL465: 5373 .LFB167: 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 5374 .loc 1 2709 1 is_stmt 1 view -0 5375 .cfi_startproc 5376 @ args = 0, pretend = 0, frame = 0 5377 @ frame_needed = 0, uses_anonymous_args = 0 5378 @ link register save eliminated. 2711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5379 .loc 1 2711 3 view .LVU1748 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5380 .loc 1 2716 1 is_stmt 0 view .LVU1749 5381 0000 7047 bx lr 5382 .cfi_endproc 5383 .LFE167: 5385 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 5386 .align 1 5387 .global HAL_UART_AbortTransmit_IT 5388 .syntax unified 5389 .thumb 5390 .thumb_func 5391 .fpu fpv4-sp-d16 5393 HAL_UART_AbortTransmit_IT: ARM GAS /tmp/cc8UBTH4.s page 198 5394 .LVL466: 5395 .LFB158: 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 5396 .loc 1 2201 1 is_stmt 1 view -0 5397 .cfi_startproc 5398 @ args = 0, pretend = 0, frame = 0 5399 @ frame_needed = 0, uses_anonymous_args = 0 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 5400 .loc 1 2201 1 is_stmt 0 view .LVU1751 5401 0000 10B5 push {r4, lr} 5402 .LCFI42: 5403 .cfi_def_cfa_offset 8 5404 .cfi_offset 4, -8 5405 .cfi_offset 14, -4 5406 0002 0446 mov r4, r0 5407 .L282: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5408 .loc 1 2203 3 is_stmt 1 discriminator 1 view .LVU1752 5409 .LBB478: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5410 .loc 1 2203 3 discriminator 1 view .LVU1753 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5411 .loc 1 2203 3 discriminator 1 view .LVU1754 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5412 .loc 1 2203 3 discriminator 1 view .LVU1755 5413 0004 2268 ldr r2, [r4] 5414 .LVL467: 5415 .LBB479: 5416 .LBI479: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5417 .loc 2 476 31 discriminator 1 view .LVU1756 5418 .LBB480: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5419 .loc 2 478 5 discriminator 1 view .LVU1757 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5420 .loc 2 480 4 discriminator 1 view .LVU1758 5421 0006 02F10C03 add r3, r2, #12 5422 .LVL468: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5423 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1759 5424 .syntax unified 5425 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5426 000a 53E8003F ldrex r3, [r3] 5427 @ 0 "" 2 5428 .LVL469: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5429 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1760 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5430 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1761 5431 .thumb 5432 .syntax unified 5433 .LBE480: 5434 .LBE479: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5435 .loc 1 2203 3 discriminator 1 view .LVU1762 5436 000e 23F0C003 bic r3, r3, #192 5437 .LVL470: ARM GAS /tmp/cc8UBTH4.s page 199 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5438 .loc 1 2203 3 is_stmt 1 discriminator 1 view .LVU1763 5439 .LBB481: 5440 .LBI481: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5441 .loc 2 527 31 discriminator 1 view .LVU1764 5442 .LBB482: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5443 .loc 2 529 4 discriminator 1 view .LVU1765 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5444 .loc 2 531 4 discriminator 1 view .LVU1766 5445 0012 0C32 adds r2, r2, #12 5446 .LVL471: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5447 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1767 5448 .syntax unified 5449 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5450 0014 42E80031 strex r1, r3, [r2] 5451 @ 0 "" 2 5452 .LVL472: 5453 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1768 5454 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1769 5455 .thumb 5456 .syntax unified 5457 .LBE482: 5458 .LBE481: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5459 .loc 1 2203 3 discriminator 1 view .LVU1770 5460 0018 0029 cmp r1, #0 5461 001a F3D1 bne .L282 5462 .LBE478: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5463 .loc 1 2203 3 is_stmt 1 discriminator 2 view .LVU1771 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5464 .loc 1 2206 3 discriminator 2 view .LVU1772 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5465 .loc 1 2206 7 is_stmt 0 discriminator 2 view .LVU1773 5466 001c 2368 ldr r3, [r4] 5467 .LVL473: 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5468 .loc 1 2206 7 discriminator 2 view .LVU1774 5469 001e 5B69 ldr r3, [r3, #20] 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5470 .loc 1 2206 6 discriminator 2 view .LVU1775 5471 0020 13F0800F tst r3, #128 5472 0024 20D0 beq .L283 5473 .L284: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5474 .loc 1 2208 5 is_stmt 1 discriminator 1 view .LVU1776 5475 .LBB483: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5476 .loc 1 2208 5 discriminator 1 view .LVU1777 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5477 .loc 1 2208 5 discriminator 1 view .LVU1778 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5478 .loc 1 2208 5 discriminator 1 view .LVU1779 5479 0026 2268 ldr r2, [r4] ARM GAS /tmp/cc8UBTH4.s page 200 5480 .LVL474: 5481 .LBB484: 5482 .LBI484: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5483 .loc 2 476 31 discriminator 1 view .LVU1780 5484 .LBB485: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5485 .loc 2 478 5 discriminator 1 view .LVU1781 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5486 .loc 2 480 4 discriminator 1 view .LVU1782 5487 0028 02F11403 add r3, r2, #20 5488 .LVL475: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5489 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1783 5490 .syntax unified 5491 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5492 002c 53E8003F ldrex r3, [r3] 5493 @ 0 "" 2 5494 .LVL476: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5495 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1784 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5496 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1785 5497 .thumb 5498 .syntax unified 5499 .LBE485: 5500 .LBE484: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5501 .loc 1 2208 5 discriminator 1 view .LVU1786 5502 0030 23F08003 bic r3, r3, #128 5503 .LVL477: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5504 .loc 1 2208 5 is_stmt 1 discriminator 1 view .LVU1787 5505 .LBB486: 5506 .LBI486: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5507 .loc 2 527 31 discriminator 1 view .LVU1788 5508 .LBB487: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5509 .loc 2 529 4 discriminator 1 view .LVU1789 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5510 .loc 2 531 4 discriminator 1 view .LVU1790 5511 0034 1432 adds r2, r2, #20 5512 .LVL478: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5513 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1791 5514 .syntax unified 5515 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5516 0036 42E80031 strex r1, r3, [r2] 5517 @ 0 "" 2 5518 .LVL479: 5519 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1792 5520 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1793 5521 .thumb 5522 .syntax unified 5523 .LBE487: 5524 .LBE486: ARM GAS /tmp/cc8UBTH4.s page 201 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5525 .loc 1 2208 5 discriminator 1 view .LVU1794 5526 003a 0029 cmp r1, #0 5527 003c F3D1 bne .L284 5528 .LBE483: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5529 .loc 1 2208 5 is_stmt 1 discriminator 2 view .LVU1795 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5530 .loc 1 2211 5 discriminator 2 view .LVU1796 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5531 .loc 1 2211 14 is_stmt 0 discriminator 2 view .LVU1797 5532 003e A36B ldr r3, [r4, #56] 5533 .LVL480: 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5534 .loc 1 2211 8 discriminator 2 view .LVU1798 5535 0040 4BB1 cbz r3, .L285 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5536 .loc 1 2215 7 is_stmt 1 view .LVU1799 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5537 .loc 1 2215 40 is_stmt 0 view .LVU1800 5538 0042 0E4A ldr r2, .L288 5539 0044 1A65 str r2, [r3, #80] 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5540 .loc 1 2218 7 is_stmt 1 view .LVU1801 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5541 .loc 1 2218 11 is_stmt 0 view .LVU1802 5542 0046 A06B ldr r0, [r4, #56] 5543 .LVL481: 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5544 .loc 1 2218 11 view .LVU1803 5545 0048 FFF7FEFF bl HAL_DMA_Abort_IT 5546 .LVL482: 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5547 .loc 1 2218 10 view .LVU1804 5548 004c A0B1 cbz r0, .L286 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5549 .loc 1 2221 9 is_stmt 1 view .LVU1805 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5550 .loc 1 2221 14 is_stmt 0 view .LVU1806 5551 004e A06B ldr r0, [r4, #56] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5552 .loc 1 2221 22 view .LVU1807 5553 0050 036D ldr r3, [r0, #80] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5554 .loc 1 2221 9 view .LVU1808 5555 0052 9847 blx r3 5556 .LVL483: 5557 0054 10E0 b .L286 5558 .LVL484: 5559 .L285: 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5560 .loc 1 2227 7 is_stmt 1 view .LVU1809 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5561 .loc 1 2227 26 is_stmt 0 view .LVU1810 5562 0056 0023 movs r3, #0 5563 0058 E384 strh r3, [r4, #38] @ movhi 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 202 5564 .loc 1 2230 7 is_stmt 1 view .LVU1811 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5565 .loc 1 2230 21 is_stmt 0 view .LVU1812 5566 005a 2023 movs r3, #32 5567 005c 84F84130 strb r3, [r4, #65] 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5568 .loc 1 2238 7 is_stmt 1 view .LVU1813 5569 0060 2046 mov r0, r4 5570 .LVL485: 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5571 .loc 1 2238 7 is_stmt 0 view .LVU1814 5572 0062 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5573 .LVL486: 5574 0066 07E0 b .L286 5575 .LVL487: 5576 .L283: 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5577 .loc 1 2245 5 is_stmt 1 view .LVU1815 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5578 .loc 1 2245 24 is_stmt 0 view .LVU1816 5579 0068 0023 movs r3, #0 5580 006a E384 strh r3, [r4, #38] @ movhi 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5581 .loc 1 2248 5 is_stmt 1 view .LVU1817 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5582 .loc 1 2248 19 is_stmt 0 view .LVU1818 5583 006c 2023 movs r3, #32 5584 006e 84F84130 strb r3, [r4, #65] 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5585 .loc 1 2256 5 is_stmt 1 view .LVU1819 5586 0072 2046 mov r0, r4 5587 .LVL488: 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5588 .loc 1 2256 5 is_stmt 0 view .LVU1820 5589 0074 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5590 .LVL489: 5591 .L286: 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5592 .loc 1 2260 3 is_stmt 1 view .LVU1821 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5593 .loc 1 2261 1 is_stmt 0 view .LVU1822 5594 0078 0020 movs r0, #0 5595 007a 10BD pop {r4, pc} 5596 .LVL490: 5597 .L289: 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5598 .loc 1 2261 1 view .LVU1823 5599 .align 2 5600 .L288: 5601 007c 00000000 .word UART_DMATxOnlyAbortCallback 5602 .cfi_endproc 5603 .LFE158: 5605 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 5606 .align 1 5607 .syntax unified 5608 .thumb 5609 .thumb_func ARM GAS /tmp/cc8UBTH4.s page 203 5610 .fpu fpv4-sp-d16 5612 UART_DMATxOnlyAbortCallback: 5613 .LVL491: 5614 .LFB190: 3510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5615 .loc 1 3510 1 is_stmt 1 view -0 5616 .cfi_startproc 5617 @ args = 0, pretend = 0, frame = 0 5618 @ frame_needed = 0, uses_anonymous_args = 0 3510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5619 .loc 1 3510 1 is_stmt 0 view .LVU1825 5620 0000 08B5 push {r3, lr} 5621 .LCFI43: 5622 .cfi_def_cfa_offset 8 5623 .cfi_offset 3, -8 5624 .cfi_offset 14, -4 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5625 .loc 1 3511 3 is_stmt 1 view .LVU1826 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5626 .loc 1 3511 23 is_stmt 0 view .LVU1827 5627 0002 806B ldr r0, [r0, #56] 5628 .LVL492: 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5629 .loc 1 3513 3 is_stmt 1 view .LVU1828 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5630 .loc 1 3513 22 is_stmt 0 view .LVU1829 5631 0004 0023 movs r3, #0 5632 0006 C384 strh r3, [r0, #38] @ movhi 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5633 .loc 1 3516 3 is_stmt 1 view .LVU1830 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5634 .loc 1 3516 17 is_stmt 0 view .LVU1831 5635 0008 2023 movs r3, #32 5636 000a 80F84130 strb r3, [r0, #65] 3524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5637 .loc 1 3524 3 is_stmt 1 view .LVU1832 5638 000e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5639 .LVL493: 3526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5640 .loc 1 3526 1 is_stmt 0 view .LVU1833 5641 0012 08BD pop {r3, pc} 5642 .cfi_endproc 5643 .LFE190: 5645 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 5646 .align 1 5647 .weak HAL_UART_AbortReceiveCpltCallback 5648 .syntax unified 5649 .thumb 5650 .thumb_func 5651 .fpu fpv4-sp-d16 5653 HAL_UART_AbortReceiveCpltCallback: 5654 .LVL494: 5655 .LFB168: 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 5656 .loc 1 2724 1 is_stmt 1 view -0 5657 .cfi_startproc 5658 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cc8UBTH4.s page 204 5659 @ frame_needed = 0, uses_anonymous_args = 0 5660 @ link register save eliminated. 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5661 .loc 1 2726 3 view .LVU1835 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5662 .loc 1 2731 1 is_stmt 0 view .LVU1836 5663 0000 7047 bx lr 5664 .cfi_endproc 5665 .LFE168: 5667 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits 5668 .align 1 5669 .global HAL_UART_AbortReceive_IT 5670 .syntax unified 5671 .thumb 5672 .thumb_func 5673 .fpu fpv4-sp-d16 5675 HAL_UART_AbortReceive_IT: 5676 .LVL495: 5677 .LFB159: 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 5678 .loc 1 2278 1 is_stmt 1 view -0 5679 .cfi_startproc 5680 @ args = 0, pretend = 0, frame = 0 5681 @ frame_needed = 0, uses_anonymous_args = 0 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 5682 .loc 1 2278 1 is_stmt 0 view .LVU1838 5683 0000 10B5 push {r4, lr} 5684 .LCFI44: 5685 .cfi_def_cfa_offset 8 5686 .cfi_offset 4, -8 5687 .cfi_offset 14, -4 5688 0002 0446 mov r4, r0 5689 .L294: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5690 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1839 5691 .LBB488: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5692 .loc 1 2280 3 discriminator 1 view .LVU1840 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5693 .loc 1 2280 3 discriminator 1 view .LVU1841 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5694 .loc 1 2280 3 discriminator 1 view .LVU1842 5695 0004 2268 ldr r2, [r4] 5696 .LVL496: 5697 .LBB489: 5698 .LBI489: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5699 .loc 2 476 31 discriminator 1 view .LVU1843 5700 .LBB490: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5701 .loc 2 478 5 discriminator 1 view .LVU1844 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5702 .loc 2 480 4 discriminator 1 view .LVU1845 5703 0006 02F10C03 add r3, r2, #12 5704 .LVL497: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5705 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1846 ARM GAS /tmp/cc8UBTH4.s page 205 5706 .syntax unified 5707 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5708 000a 53E8003F ldrex r3, [r3] 5709 @ 0 "" 2 5710 .LVL498: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5711 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1847 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5712 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1848 5713 .thumb 5714 .syntax unified 5715 .LBE490: 5716 .LBE489: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5717 .loc 1 2280 3 discriminator 1 view .LVU1849 5718 000e 23F49073 bic r3, r3, #288 5719 .LVL499: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5720 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1850 5721 .LBB491: 5722 .LBI491: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5723 .loc 2 527 31 discriminator 1 view .LVU1851 5724 .LBB492: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5725 .loc 2 529 4 discriminator 1 view .LVU1852 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5726 .loc 2 531 4 discriminator 1 view .LVU1853 5727 0012 0C32 adds r2, r2, #12 5728 .LVL500: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5729 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1854 5730 .syntax unified 5731 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5732 0014 42E80031 strex r1, r3, [r2] 5733 @ 0 "" 2 5734 .LVL501: 5735 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1855 5736 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1856 5737 .thumb 5738 .syntax unified 5739 .LBE492: 5740 .LBE491: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5741 .loc 1 2280 3 discriminator 1 view .LVU1857 5742 0018 0029 cmp r1, #0 5743 001a F3D1 bne .L294 5744 .LVL502: 5745 .L295: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5746 .loc 1 2280 3 discriminator 1 view .LVU1858 5747 .LBE488: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5748 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1859 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5749 .loc 1 2281 3 discriminator 1 view .LVU1860 5750 .LBB493: ARM GAS /tmp/cc8UBTH4.s page 206 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5751 .loc 1 2281 3 discriminator 1 view .LVU1861 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5752 .loc 1 2281 3 discriminator 1 view .LVU1862 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5753 .loc 1 2281 3 discriminator 1 view .LVU1863 5754 001c 2268 ldr r2, [r4] 5755 .LVL503: 5756 .LBB494: 5757 .LBI494: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5758 .loc 2 476 31 discriminator 1 view .LVU1864 5759 .LBB495: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5760 .loc 2 478 5 discriminator 1 view .LVU1865 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5761 .loc 2 480 4 discriminator 1 view .LVU1866 5762 001e 02F11403 add r3, r2, #20 5763 .LVL504: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5764 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1867 5765 .syntax unified 5766 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5767 0022 53E8003F ldrex r3, [r3] 5768 @ 0 "" 2 5769 .LVL505: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5770 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1868 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5771 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1869 5772 .thumb 5773 .syntax unified 5774 .LBE495: 5775 .LBE494: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5776 .loc 1 2281 3 discriminator 1 view .LVU1870 5777 0026 23F00103 bic r3, r3, #1 5778 .LVL506: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5779 .loc 1 2281 3 is_stmt 1 discriminator 1 view .LVU1871 5780 .LBB496: 5781 .LBI496: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5782 .loc 2 527 31 discriminator 1 view .LVU1872 5783 .LBB497: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5784 .loc 2 529 4 discriminator 1 view .LVU1873 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5785 .loc 2 531 4 discriminator 1 view .LVU1874 5786 002a 1432 adds r2, r2, #20 5787 .LVL507: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5788 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1875 5789 .syntax unified 5790 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5791 002c 42E80031 strex r1, r3, [r2] 5792 @ 0 "" 2 ARM GAS /tmp/cc8UBTH4.s page 207 5793 .LVL508: 5794 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1876 5795 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1877 5796 .thumb 5797 .syntax unified 5798 .LBE497: 5799 .LBE496: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5800 .loc 1 2281 3 discriminator 1 view .LVU1878 5801 0030 0029 cmp r1, #0 5802 0032 F3D1 bne .L295 5803 .LBE493: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5804 .loc 1 2281 3 is_stmt 1 discriminator 2 view .LVU1879 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5805 .loc 1 2284 3 discriminator 2 view .LVU1880 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5806 .loc 1 2284 12 is_stmt 0 discriminator 2 view .LVU1881 5807 0034 236B ldr r3, [r4, #48] 5808 .LVL509: 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5809 .loc 1 2284 6 discriminator 2 view .LVU1882 5810 0036 012B cmp r3, #1 5811 0038 1CD0 beq .L297 5812 .L296: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5813 .loc 1 2286 5 is_stmt 1 discriminator 2 view .LVU1883 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5814 .loc 1 2290 3 discriminator 2 view .LVU1884 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5815 .loc 1 2290 7 is_stmt 0 discriminator 2 view .LVU1885 5816 003a 2368 ldr r3, [r4] 5817 003c 5B69 ldr r3, [r3, #20] 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5818 .loc 1 2290 6 discriminator 2 view .LVU1886 5819 003e 13F0400F tst r3, #64 5820 0042 2ED0 beq .L298 5821 .L299: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5822 .loc 1 2292 5 is_stmt 1 discriminator 1 view .LVU1887 5823 .LBB498: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5824 .loc 1 2292 5 discriminator 1 view .LVU1888 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5825 .loc 1 2292 5 discriminator 1 view .LVU1889 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5826 .loc 1 2292 5 discriminator 1 view .LVU1890 5827 0044 2268 ldr r2, [r4] 5828 .LVL510: 5829 .LBB499: 5830 .LBI499: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5831 .loc 2 476 31 discriminator 1 view .LVU1891 5832 .LBB500: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5833 .loc 2 478 5 discriminator 1 view .LVU1892 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc8UBTH4.s page 208 5834 .loc 2 480 4 discriminator 1 view .LVU1893 5835 0046 02F11403 add r3, r2, #20 5836 .LVL511: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5837 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1894 5838 .syntax unified 5839 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5840 004a 53E8003F ldrex r3, [r3] 5841 @ 0 "" 2 5842 .LVL512: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5843 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1895 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5844 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1896 5845 .thumb 5846 .syntax unified 5847 .LBE500: 5848 .LBE499: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5849 .loc 1 2292 5 discriminator 1 view .LVU1897 5850 004e 23F04003 bic r3, r3, #64 5851 .LVL513: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5852 .loc 1 2292 5 is_stmt 1 discriminator 1 view .LVU1898 5853 .LBB501: 5854 .LBI501: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5855 .loc 2 527 31 discriminator 1 view .LVU1899 5856 .LBB502: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5857 .loc 2 529 4 discriminator 1 view .LVU1900 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5858 .loc 2 531 4 discriminator 1 view .LVU1901 5859 0052 1432 adds r2, r2, #20 5860 .LVL514: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5861 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1902 5862 .syntax unified 5863 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5864 0054 42E80031 strex r1, r3, [r2] 5865 @ 0 "" 2 5866 .LVL515: 5867 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1903 5868 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1904 5869 .thumb 5870 .syntax unified 5871 .LBE502: 5872 .LBE501: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5873 .loc 1 2292 5 discriminator 1 view .LVU1905 5874 0058 0029 cmp r1, #0 5875 005a F3D1 bne .L299 5876 .LBE498: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5877 .loc 1 2292 5 is_stmt 1 discriminator 2 view .LVU1906 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5878 .loc 1 2295 5 discriminator 2 view .LVU1907 ARM GAS /tmp/cc8UBTH4.s page 209 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5879 .loc 1 2295 14 is_stmt 0 discriminator 2 view .LVU1908 5880 005c E36B ldr r3, [r4, #60] 5881 .LVL516: 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5882 .loc 1 2295 8 discriminator 2 view .LVU1909 5883 005e B3B1 cbz r3, .L300 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5884 .loc 1 2299 7 is_stmt 1 view .LVU1910 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5885 .loc 1 2299 40 is_stmt 0 view .LVU1911 5886 0060 154A ldr r2, .L303 5887 0062 1A65 str r2, [r3, #80] 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5888 .loc 1 2302 7 is_stmt 1 view .LVU1912 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5889 .loc 1 2302 11 is_stmt 0 view .LVU1913 5890 0064 E06B ldr r0, [r4, #60] 5891 .LVL517: 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5892 .loc 1 2302 11 view .LVU1914 5893 0066 FFF7FEFF bl HAL_DMA_Abort_IT 5894 .LVL518: 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5895 .loc 1 2302 10 view .LVU1915 5896 006a 18B3 cbz r0, .L301 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5897 .loc 1 2305 9 is_stmt 1 view .LVU1916 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5898 .loc 1 2305 14 is_stmt 0 view .LVU1917 5899 006c E06B ldr r0, [r4, #60] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5900 .loc 1 2305 22 view .LVU1918 5901 006e 036D ldr r3, [r0, #80] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5902 .loc 1 2305 9 view .LVU1919 5903 0070 9847 blx r3 5904 .LVL519: 5905 0072 1FE0 b .L301 5906 .LVL520: 5907 .L297: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5908 .loc 1 2286 5 is_stmt 1 discriminator 1 view .LVU1920 5909 .LBB503: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5910 .loc 1 2286 5 discriminator 1 view .LVU1921 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5911 .loc 1 2286 5 discriminator 1 view .LVU1922 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5912 .loc 1 2286 5 discriminator 1 view .LVU1923 5913 0074 2268 ldr r2, [r4] 5914 .LVL521: 5915 .LBB504: 5916 .LBI504: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5917 .loc 2 476 31 discriminator 1 view .LVU1924 5918 .LBB505: ARM GAS /tmp/cc8UBTH4.s page 210 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5919 .loc 2 478 5 discriminator 1 view .LVU1925 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5920 .loc 2 480 4 discriminator 1 view .LVU1926 5921 0076 02F10C03 add r3, r2, #12 5922 .LVL522: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5923 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1927 5924 .syntax unified 5925 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5926 007a 53E8003F ldrex r3, [r3] 5927 @ 0 "" 2 5928 .LVL523: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5929 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1928 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5930 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1929 5931 .thumb 5932 .syntax unified 5933 .LBE505: 5934 .LBE504: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5935 .loc 1 2286 5 discriminator 1 view .LVU1930 5936 007e 23F01003 bic r3, r3, #16 5937 .LVL524: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5938 .loc 1 2286 5 is_stmt 1 discriminator 1 view .LVU1931 5939 .LBB506: 5940 .LBI506: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5941 .loc 2 527 31 discriminator 1 view .LVU1932 5942 .LBB507: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5943 .loc 2 529 4 discriminator 1 view .LVU1933 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5944 .loc 2 531 4 discriminator 1 view .LVU1934 5945 0082 0C32 adds r2, r2, #12 5946 .LVL525: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5947 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1935 5948 .syntax unified 5949 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5950 0084 42E80031 strex r1, r3, [r2] 5951 @ 0 "" 2 5952 .LVL526: 5953 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1936 5954 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1937 5955 .thumb 5956 .syntax unified 5957 .LBE507: 5958 .LBE506: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5959 .loc 1 2286 5 discriminator 1 view .LVU1938 5960 0088 0029 cmp r1, #0 5961 008a F3D1 bne .L297 5962 008c D5E7 b .L296 5963 .LVL527: ARM GAS /tmp/cc8UBTH4.s page 211 5964 .L300: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5965 .loc 1 2286 5 discriminator 1 view .LVU1939 5966 .LBE503: 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5967 .loc 1 2311 7 is_stmt 1 view .LVU1940 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5968 .loc 1 2311 26 is_stmt 0 view .LVU1941 5969 008e 0023 movs r3, #0 5970 0090 E385 strh r3, [r4, #46] @ movhi 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5971 .loc 1 2314 7 is_stmt 1 view .LVU1942 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5972 .loc 1 2314 22 is_stmt 0 view .LVU1943 5973 0092 2022 movs r2, #32 5974 0094 84F84220 strb r2, [r4, #66] 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5975 .loc 1 2315 7 is_stmt 1 view .LVU1944 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5976 .loc 1 2315 28 is_stmt 0 view .LVU1945 5977 0098 2363 str r3, [r4, #48] 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5978 .loc 1 2323 7 is_stmt 1 view .LVU1946 5979 009a 2046 mov r0, r4 5980 .LVL528: 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5981 .loc 1 2323 7 is_stmt 0 view .LVU1947 5982 009c FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 5983 .LVL529: 5984 00a0 08E0 b .L301 5985 .LVL530: 5986 .L298: 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5987 .loc 1 2330 5 is_stmt 1 view .LVU1948 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5988 .loc 1 2330 24 is_stmt 0 view .LVU1949 5989 00a2 0023 movs r3, #0 5990 00a4 E385 strh r3, [r4, #46] @ movhi 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5991 .loc 1 2333 5 is_stmt 1 view .LVU1950 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5992 .loc 1 2333 20 is_stmt 0 view .LVU1951 5993 00a6 2022 movs r2, #32 5994 00a8 84F84220 strb r2, [r4, #66] 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5995 .loc 1 2334 5 is_stmt 1 view .LVU1952 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5996 .loc 1 2334 26 is_stmt 0 view .LVU1953 5997 00ac 2363 str r3, [r4, #48] 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5998 .loc 1 2342 5 is_stmt 1 view .LVU1954 5999 00ae 2046 mov r0, r4 6000 .LVL531: 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6001 .loc 1 2342 5 is_stmt 0 view .LVU1955 6002 00b0 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 6003 .LVL532: ARM GAS /tmp/cc8UBTH4.s page 212 6004 .L301: 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6005 .loc 1 2346 3 is_stmt 1 view .LVU1956 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6006 .loc 1 2347 1 is_stmt 0 view .LVU1957 6007 00b4 0020 movs r0, #0 6008 00b6 10BD pop {r4, pc} 6009 .LVL533: 6010 .L304: 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6011 .loc 1 2347 1 view .LVU1958 6012 .align 2 6013 .L303: 6014 00b8 00000000 .word UART_DMARxOnlyAbortCallback 6015 .cfi_endproc 6016 .LFE159: 6018 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 6019 .align 1 6020 .syntax unified 6021 .thumb 6022 .thumb_func 6023 .fpu fpv4-sp-d16 6025 UART_DMARxOnlyAbortCallback: 6026 .LVL534: 6027 .LFB191: 3538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 6028 .loc 1 3538 1 is_stmt 1 view -0 6029 .cfi_startproc 6030 @ args = 0, pretend = 0, frame = 0 6031 @ frame_needed = 0, uses_anonymous_args = 0 3538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 6032 .loc 1 3538 1 is_stmt 0 view .LVU1960 6033 0000 08B5 push {r3, lr} 6034 .LCFI45: 6035 .cfi_def_cfa_offset 8 6036 .cfi_offset 3, -8 6037 .cfi_offset 14, -4 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6038 .loc 1 3539 3 is_stmt 1 view .LVU1961 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6039 .loc 1 3539 23 is_stmt 0 view .LVU1962 6040 0002 806B ldr r0, [r0, #56] 6041 .LVL535: 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6042 .loc 1 3541 3 is_stmt 1 view .LVU1963 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6043 .loc 1 3541 22 is_stmt 0 view .LVU1964 6044 0004 0023 movs r3, #0 6045 0006 C385 strh r3, [r0, #46] @ movhi 3544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6046 .loc 1 3544 3 is_stmt 1 view .LVU1965 3544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6047 .loc 1 3544 18 is_stmt 0 view .LVU1966 6048 0008 2022 movs r2, #32 6049 000a 80F84220 strb r2, [r0, #66] 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6050 .loc 1 3545 3 is_stmt 1 view .LVU1967 ARM GAS /tmp/cc8UBTH4.s page 213 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6051 .loc 1 3545 24 is_stmt 0 view .LVU1968 6052 000e 0363 str r3, [r0, #48] 3553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6053 .loc 1 3553 3 is_stmt 1 view .LVU1969 6054 0010 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 6055 .LVL536: 3555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6056 .loc 1 3555 1 is_stmt 0 view .LVU1970 6057 0014 08BD pop {r3, pc} 6058 .cfi_endproc 6059 .LFE191: 6061 .section .text.HAL_UARTEx_RxEventCallback,"ax",%progbits 6062 .align 1 6063 .weak HAL_UARTEx_RxEventCallback 6064 .syntax unified 6065 .thumb 6066 .thumb_func 6067 .fpu fpv4-sp-d16 6069 HAL_UARTEx_RxEventCallback: 6070 .LVL537: 6071 .LFB169: 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 6072 .loc 1 2741 1 is_stmt 1 view -0 6073 .cfi_startproc 6074 @ args = 0, pretend = 0, frame = 0 6075 @ frame_needed = 0, uses_anonymous_args = 0 6076 @ link register save eliminated. 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(Size); 6077 .loc 1 2743 3 view .LVU1972 2744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6078 .loc 1 2744 3 view .LVU1973 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6079 .loc 1 2749 1 is_stmt 0 view .LVU1974 6080 0000 7047 bx lr 6081 .cfi_endproc 6082 .LFE169: 6084 .section .text.UART_Receive_IT,"ax",%progbits 6085 .align 1 6086 .syntax unified 6087 .thumb 6088 .thumb_func 6089 .fpu fpv4-sp-d16 6091 UART_Receive_IT: 6092 .LVL538: 6093 .LFB194: 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits = NULL; 6094 .loc 1 3629 1 is_stmt 1 view -0 6095 .cfi_startproc 6096 @ args = 0, pretend = 0, frame = 8 6097 @ frame_needed = 0, uses_anonymous_args = 0 3630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits = NULL; 6098 .loc 1 3630 3 view .LVU1976 3631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6099 .loc 1 3631 3 view .LVU1977 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6100 .loc 1 3634 3 view .LVU1978 ARM GAS /tmp/cc8UBTH4.s page 214 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6101 .loc 1 3634 12 is_stmt 0 view .LVU1979 6102 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 6103 0004 DBB2 uxtb r3, r3 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6104 .loc 1 3634 6 view .LVU1980 6105 0006 222B cmp r3, #34 6106 0008 69D1 bne .L319 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6107 .loc 1 3636 5 is_stmt 1 view .LVU1981 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6108 .loc 1 3636 21 is_stmt 0 view .LVU1982 6109 000a 8368 ldr r3, [r0, #8] 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6110 .loc 1 3636 8 view .LVU1983 6111 000c B3F5805F cmp r3, #4096 6112 0010 4FD0 beq .L325 6113 .L310: 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata16bits */ 6114 .loc 1 3646 7 is_stmt 1 view .LVU1984 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata16bits */ 6115 .loc 1 3646 18 is_stmt 0 view .LVU1985 6116 0012 826A ldr r2, [r0, #40] 6117 .LVL539: 3648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6118 .loc 1 3648 7 is_stmt 1 view .LVU1986 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6119 .loc 1 3650 7 view .LVU1987 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6120 .loc 1 3650 10 is_stmt 0 view .LVU1988 6121 0014 B3F5805F cmp r3, #4096 6122 0018 04D0 beq .L312 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6123 .loc 1 3650 58 discriminator 1 view .LVU1989 6124 001a 002B cmp r3, #0 6125 001c 56D1 bne .L313 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6126 .loc 1 3650 124 discriminator 2 view .LVU1990 6127 001e 0369 ldr r3, [r0, #16] 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6128 .loc 1 3650 109 discriminator 2 view .LVU1991 6129 0020 002B cmp r3, #0 6130 0022 53D1 bne .L313 6131 .L312: 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6132 .loc 1 3652 9 is_stmt 1 view .LVU1992 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6133 .loc 1 3652 38 is_stmt 0 view .LVU1993 6134 0024 0368 ldr r3, [r0] 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6135 .loc 1 3652 48 view .LVU1994 6136 0026 5B68 ldr r3, [r3, #4] 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6137 .loc 1 3652 21 view .LVU1995 6138 0028 1370 strb r3, [r2] 6139 .L314: 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 215 6140 .loc 1 3658 7 is_stmt 1 view .LVU1996 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6141 .loc 1 3658 25 is_stmt 0 view .LVU1997 6142 002a 836A ldr r3, [r0, #40] 6143 002c 0133 adds r3, r3, #1 6144 002e 8362 str r3, [r0, #40] 6145 .LVL540: 6146 .L311: 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6147 .loc 1 3661 5 is_stmt 1 view .LVU1998 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6148 .loc 1 3661 16 is_stmt 0 view .LVU1999 6149 0030 C38D ldrh r3, [r0, #46] 6150 0032 9BB2 uxth r3, r3 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6151 .loc 1 3661 9 view .LVU2000 6152 0034 013B subs r3, r3, #1 6153 0036 9BB2 uxth r3, r3 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6154 .loc 1 3661 8 view .LVU2001 6155 0038 C385 strh r3, [r0, #46] @ movhi 6156 003a 002B cmp r3, #0 6157 003c 51D1 bne .L320 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits = NULL; 6158 .loc 1 3629 1 view .LVU2002 6159 003e 00B5 push {lr} 6160 .LCFI46: 6161 .cfi_def_cfa_offset 4 6162 .cfi_offset 14, -4 6163 0040 83B0 sub sp, sp, #12 6164 .LCFI47: 6165 .cfi_def_cfa_offset 16 3664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6166 .loc 1 3664 7 is_stmt 1 view .LVU2003 6167 0042 0268 ldr r2, [r0] 6168 0044 D368 ldr r3, [r2, #12] 6169 0046 23F02003 bic r3, r3, #32 6170 004a D360 str r3, [r2, #12] 3667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6171 .loc 1 3667 7 view .LVU2004 6172 004c 0268 ldr r2, [r0] 6173 004e D368 ldr r3, [r2, #12] 6174 0050 23F48073 bic r3, r3, #256 6175 0054 D360 str r3, [r2, #12] 3670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6176 .loc 1 3670 7 view .LVU2005 6177 0056 0268 ldr r2, [r0] 6178 0058 5369 ldr r3, [r2, #20] 6179 005a 23F00103 bic r3, r3, #1 6180 005e 5361 str r3, [r2, #20] 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6181 .loc 1 3673 7 view .LVU2006 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6182 .loc 1 3673 22 is_stmt 0 view .LVU2007 6183 0060 2023 movs r3, #32 6184 0062 80F84230 strb r3, [r0, #66] 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 216 6185 .loc 1 3676 7 is_stmt 1 view .LVU2008 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6186 .loc 1 3676 26 is_stmt 0 view .LVU2009 6187 0066 0023 movs r3, #0 6188 0068 4363 str r3, [r0, #52] 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6189 .loc 1 3680 7 is_stmt 1 view .LVU2010 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6190 .loc 1 3680 16 is_stmt 0 view .LVU2011 6191 006a 036B ldr r3, [r0, #48] 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6192 .loc 1 3680 10 view .LVU2012 6193 006c 012B cmp r3, #1 6194 006e 33D1 bne .L315 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6195 .loc 1 3683 9 is_stmt 1 view .LVU2013 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6196 .loc 1 3683 30 is_stmt 0 view .LVU2014 6197 0070 0023 movs r3, #0 6198 0072 0363 str r3, [r0, #48] 6199 .L316: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6200 .loc 1 3686 9 is_stmt 1 discriminator 1 view .LVU2015 6201 .LBB508: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6202 .loc 1 3686 9 discriminator 1 view .LVU2016 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6203 .loc 1 3686 9 discriminator 1 view .LVU2017 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6204 .loc 1 3686 9 discriminator 1 view .LVU2018 6205 0074 0268 ldr r2, [r0] 6206 .LVL541: 6207 .LBB509: 6208 .LBI509: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6209 .loc 2 476 31 discriminator 1 view .LVU2019 6210 .LBB510: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6211 .loc 2 478 5 discriminator 1 view .LVU2020 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6212 .loc 2 480 4 discriminator 1 view .LVU2021 6213 0076 02F10C03 add r3, r2, #12 6214 .LVL542: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6215 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2022 6216 .syntax unified 6217 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6218 007a 53E8003F ldrex r3, [r3] 6219 @ 0 "" 2 6220 .LVL543: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6221 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2023 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6222 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2024 6223 .thumb 6224 .syntax unified 6225 .LBE510: ARM GAS /tmp/cc8UBTH4.s page 217 6226 .LBE509: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6227 .loc 1 3686 9 discriminator 1 view .LVU2025 6228 007e 23F01003 bic r3, r3, #16 6229 .LVL544: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6230 .loc 1 3686 9 is_stmt 1 discriminator 1 view .LVU2026 6231 .LBB511: 6232 .LBI511: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6233 .loc 2 527 31 discriminator 1 view .LVU2027 6234 .LBB512: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6235 .loc 2 529 4 discriminator 1 view .LVU2028 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6236 .loc 2 531 4 discriminator 1 view .LVU2029 6237 0082 0C32 adds r2, r2, #12 6238 .LVL545: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6239 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2030 6240 .syntax unified 6241 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6242 0084 42E80031 strex r1, r3, [r2] 6243 @ 0 "" 2 6244 .LVL546: 6245 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2031 6246 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2032 6247 .thumb 6248 .syntax unified 6249 .LBE512: 6250 .LBE511: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6251 .loc 1 3686 9 discriminator 1 view .LVU2033 6252 0088 0029 cmp r1, #0 6253 008a F3D1 bne .L316 6254 .LBE508: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6255 .loc 1 3686 9 is_stmt 1 discriminator 2 view .LVU2034 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6256 .loc 1 3689 9 discriminator 2 view .LVU2035 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6257 .loc 1 3689 13 is_stmt 0 discriminator 2 view .LVU2036 6258 008c 0368 ldr r3, [r0] 6259 .LVL547: 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6260 .loc 1 3689 13 discriminator 2 view .LVU2037 6261 008e 1A68 ldr r2, [r3] 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6262 .loc 1 3689 12 discriminator 2 view .LVU2038 6263 0090 12F0100F tst r2, #16 6264 0094 06D0 beq .L317 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6265 .loc 1 3692 11 is_stmt 1 view .LVU2039 6266 .LBB513: 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6267 .loc 1 3692 11 view .LVU2040 6268 0096 0022 movs r2, #0 ARM GAS /tmp/cc8UBTH4.s page 218 6269 0098 0192 str r2, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6270 .loc 1 3692 11 view .LVU2041 6271 009a 1A68 ldr r2, [r3] 6272 009c 0192 str r2, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6273 .loc 1 3692 11 view .LVU2042 6274 009e 5B68 ldr r3, [r3, #4] 6275 00a0 0193 str r3, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6276 .loc 1 3692 11 view .LVU2043 6277 00a2 019B ldr r3, [sp, #4] 6278 .L317: 6279 .LBE513: 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6280 .loc 1 3692 11 discriminator 1 view .LVU2044 3700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6281 .loc 1 3700 9 discriminator 1 view .LVU2045 6282 00a4 818D ldrh r1, [r0, #44] 6283 00a6 FFF7FEFF bl HAL_UARTEx_RxEventCallback 6284 .LVL548: 6285 .L318: 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6286 .loc 1 3715 7 view .LVU2046 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6287 .loc 1 3715 14 is_stmt 0 view .LVU2047 6288 00aa 0020 movs r0, #0 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6289 .loc 1 3723 1 view .LVU2048 6290 00ac 03B0 add sp, sp, #12 6291 .LCFI48: 6292 .cfi_def_cfa_offset 4 6293 @ sp needed 6294 00ae 5DF804FB ldr pc, [sp], #4 6295 .LVL549: 6296 .L325: 6297 .LCFI49: 6298 .cfi_def_cfa_offset 0 6299 .cfi_restore 14 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6300 .loc 1 3636 71 discriminator 1 view .LVU2049 6301 00b2 0269 ldr r2, [r0, #16] 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6302 .loc 1 3636 56 discriminator 1 view .LVU2050 6303 00b4 002A cmp r2, #0 6304 00b6 ACD1 bne .L310 3639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) huart->pRxBuffPtr; 6305 .loc 1 3639 7 is_stmt 1 view .LVU2051 3640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 6306 .loc 1 3640 7 view .LVU2052 3640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** *pdata16bits = (uint16_t)(huart->Instance->DR & (uint16_t)0x01FF); 6307 .loc 1 3640 19 is_stmt 0 view .LVU2053 6308 00b8 826A ldr r2, [r0, #40] 6309 .LVL550: 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6310 .loc 1 3641 7 is_stmt 1 view .LVU2054 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; ARM GAS /tmp/cc8UBTH4.s page 219 6311 .loc 1 3641 38 is_stmt 0 view .LVU2055 6312 00ba 0368 ldr r3, [r0] 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6313 .loc 1 3641 48 view .LVU2056 6314 00bc 5B68 ldr r3, [r3, #4] 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6315 .loc 1 3641 22 view .LVU2057 6316 00be C3F30803 ubfx r3, r3, #0, #9 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6317 .loc 1 3641 20 view .LVU2058 6318 00c2 1380 strh r3, [r2] @ movhi 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6319 .loc 1 3642 7 is_stmt 1 view .LVU2059 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6320 .loc 1 3642 25 is_stmt 0 view .LVU2060 6321 00c4 836A ldr r3, [r0, #40] 6322 00c6 0233 adds r3, r3, #2 6323 00c8 8362 str r3, [r0, #40] 6324 00ca B1E7 b .L311 6325 .LVL551: 6326 .L313: 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6327 .loc 1 3656 9 is_stmt 1 view .LVU2061 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6328 .loc 1 3656 38 is_stmt 0 view .LVU2062 6329 00cc 0368 ldr r3, [r0] 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6330 .loc 1 3656 48 view .LVU2063 6331 00ce 5B68 ldr r3, [r3, #4] 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6332 .loc 1 3656 23 view .LVU2064 6333 00d0 03F07F03 and r3, r3, #127 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6334 .loc 1 3656 21 view .LVU2065 6335 00d4 1370 strb r3, [r2] 6336 00d6 A8E7 b .L314 6337 .LVL552: 6338 .L315: 6339 .LCFI50: 6340 .cfi_def_cfa_offset 16 6341 .cfi_offset 14, -4 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6342 .loc 1 3711 9 is_stmt 1 view .LVU2066 6343 00d8 FFF7FEFF bl HAL_UART_RxCpltCallback 6344 .LVL553: 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6345 .loc 1 3711 9 is_stmt 0 view .LVU2067 6346 00dc E5E7 b .L318 6347 .LVL554: 6348 .L319: 6349 .LCFI51: 6350 .cfi_def_cfa_offset 0 6351 .cfi_restore 14 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6352 .loc 1 3721 12 view .LVU2068 6353 00de 0220 movs r0, #2 6354 .LVL555: ARM GAS /tmp/cc8UBTH4.s page 220 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6355 .loc 1 3721 12 view .LVU2069 6356 00e0 7047 bx lr 6357 .LVL556: 6358 .L320: 3717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6359 .loc 1 3717 12 view .LVU2070 6360 00e2 0020 movs r0, #0 6361 .LVL557: 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6362 .loc 1 3723 1 view .LVU2071 6363 00e4 7047 bx lr 6364 .cfi_endproc 6365 .LFE194: 6367 .section .text.HAL_UART_IRQHandler,"ax",%progbits 6368 .align 1 6369 .global HAL_UART_IRQHandler 6370 .syntax unified 6371 .thumb 6372 .thumb_func 6373 .fpu fpv4-sp-d16 6375 HAL_UART_IRQHandler: 6376 .LVL558: 6377 .LFB160: 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 6378 .loc 1 2356 1 is_stmt 1 view -0 6379 .cfi_startproc 6380 @ args = 0, pretend = 0, frame = 8 6381 @ frame_needed = 0, uses_anonymous_args = 0 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 6382 .loc 1 2356 1 is_stmt 0 view .LVU2073 6383 0000 30B5 push {r4, r5, lr} 6384 .LCFI52: 6385 .cfi_def_cfa_offset 12 6386 .cfi_offset 4, -12 6387 .cfi_offset 5, -8 6388 .cfi_offset 14, -4 6389 0002 83B0 sub sp, sp, #12 6390 .LCFI53: 6391 .cfi_def_cfa_offset 24 6392 0004 0446 mov r4, r0 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 6393 .loc 1 2357 3 is_stmt 1 view .LVU2074 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 6394 .loc 1 2357 25 is_stmt 0 view .LVU2075 6395 0006 0268 ldr r2, [r0] 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 6396 .loc 1 2357 12 view .LVU2076 6397 0008 1368 ldr r3, [r2] 6398 .LVL559: 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 6399 .loc 1 2358 3 is_stmt 1 view .LVU2077 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 6400 .loc 1 2358 12 is_stmt 0 view .LVU2078 6401 000a D068 ldr r0, [r2, #12] 6402 .LVL560: 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; ARM GAS /tmp/cc8UBTH4.s page 221 6403 .loc 1 2359 3 is_stmt 1 view .LVU2079 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 6404 .loc 1 2359 12 is_stmt 0 view .LVU2080 6405 000c 5169 ldr r1, [r2, #20] 6406 .LVL561: 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 6407 .loc 1 2360 3 is_stmt 1 view .LVU2081 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6408 .loc 1 2361 3 view .LVU2082 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 6409 .loc 1 2364 3 view .LVU2083 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6410 .loc 1 2365 3 view .LVU2084 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6411 .loc 1 2365 6 is_stmt 0 view .LVU2085 6412 000e 13F00F05 ands r5, r3, #15 6413 .LVL562: 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6414 .loc 1 2365 6 view .LVU2086 6415 0012 05D1 bne .L327 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6416 .loc 1 2368 5 is_stmt 1 view .LVU2087 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6417 .loc 1 2368 8 is_stmt 0 view .LVU2088 6418 0014 13F0200F tst r3, #32 6419 0018 02D0 beq .L327 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6420 .loc 1 2368 47 discriminator 1 view .LVU2089 6421 001a 10F0200F tst r0, #32 6422 001e 19D1 bne .L358 6423 .L327: 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6424 .loc 1 2376 3 is_stmt 1 view .LVU2090 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6425 .loc 1 2376 6 is_stmt 0 view .LVU2091 6426 0020 2DB1 cbz r5, .L329 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6427 .loc 1 2376 29 discriminator 1 view .LVU2092 6428 0022 11F00101 ands r1, r1, #1 6429 .LVL563: 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6430 .loc 1 2376 29 discriminator 1 view .LVU2093 6431 0026 19D1 bne .L330 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6432 .loc 1 2377 33 view .LVU2094 6433 0028 10F4907F tst r0, #288 6434 002c 16D1 bne .L330 6435 .L329: 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6436 .loc 1 2484 3 is_stmt 1 view .LVU2095 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6437 .loc 1 2484 13 is_stmt 0 view .LVU2096 6438 002e 216B ldr r1, [r4, #48] 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6439 .loc 1 2484 6 view .LVU2097 6440 0030 0129 cmp r1, #1 6441 0032 7DD0 beq .L359 ARM GAS /tmp/cc8UBTH4.s page 222 6442 .L343: 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6443 .loc 1 2599 3 is_stmt 1 view .LVU2098 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6444 .loc 1 2599 6 is_stmt 0 view .LVU2099 6445 0034 13F0800F tst r3, #128 6446 0038 03D0 beq .L356 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6447 .loc 1 2599 44 discriminator 1 view .LVU2100 6448 003a 10F0800F tst r0, #128 6449 003e 40F02681 bne .L360 6450 .L356: 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6451 .loc 1 2606 3 is_stmt 1 view .LVU2101 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6452 .loc 1 2606 6 is_stmt 0 view .LVU2102 6453 0042 13F0400F tst r3, #64 6454 0046 03D0 beq .L326 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6455 .loc 1 2606 43 discriminator 1 view .LVU2103 6456 0048 10F0400F tst r0, #64 6457 004c 40F02381 bne .L361 6458 .LVL564: 6459 .L326: 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6460 .loc 1 2611 1 view .LVU2104 6461 0050 03B0 add sp, sp, #12 6462 .LCFI54: 6463 .cfi_remember_state 6464 .cfi_def_cfa_offset 12 6465 @ sp needed 6466 0052 30BD pop {r4, r5, pc} 6467 .LVL565: 6468 .L358: 6469 .LCFI55: 6470 .cfi_restore_state 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6471 .loc 1 2370 7 is_stmt 1 view .LVU2105 6472 0054 2046 mov r0, r4 6473 .LVL566: 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6474 .loc 1 2370 7 is_stmt 0 view .LVU2106 6475 0056 FFF7FEFF bl UART_Receive_IT 6476 .LVL567: 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6477 .loc 1 2371 7 is_stmt 1 view .LVU2107 6478 005a F9E7 b .L326 6479 .LVL568: 6480 .L330: 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6481 .loc 1 2380 5 view .LVU2108 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6482 .loc 1 2380 8 is_stmt 0 view .LVU2109 6483 005c 13F0010F tst r3, #1 6484 0060 06D0 beq .L331 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6485 .loc 1 2380 45 discriminator 1 view .LVU2110 ARM GAS /tmp/cc8UBTH4.s page 223 6486 0062 10F4807F tst r0, #256 6487 0066 03D0 beq .L331 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6488 .loc 1 2382 7 is_stmt 1 view .LVU2111 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6489 .loc 1 2382 24 is_stmt 0 view .LVU2112 6490 0068 626C ldr r2, [r4, #68] 6491 006a 42F00102 orr r2, r2, #1 6492 006e 6264 str r2, [r4, #68] 6493 .L331: 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6494 .loc 1 2386 5 is_stmt 1 view .LVU2113 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6495 .loc 1 2386 8 is_stmt 0 view .LVU2114 6496 0070 13F0040F tst r3, #4 6497 0074 04D0 beq .L332 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6498 .loc 1 2386 45 discriminator 1 view .LVU2115 6499 0076 19B1 cbz r1, .L332 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6500 .loc 1 2388 7 is_stmt 1 view .LVU2116 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6501 .loc 1 2388 24 is_stmt 0 view .LVU2117 6502 0078 626C ldr r2, [r4, #68] 6503 007a 42F00202 orr r2, r2, #2 6504 007e 6264 str r2, [r4, #68] 6505 .L332: 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6506 .loc 1 2392 5 is_stmt 1 view .LVU2118 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6507 .loc 1 2392 8 is_stmt 0 view .LVU2119 6508 0080 13F0020F tst r3, #2 6509 0084 04D0 beq .L333 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6510 .loc 1 2392 45 discriminator 1 view .LVU2120 6511 0086 19B1 cbz r1, .L333 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6512 .loc 1 2394 7 is_stmt 1 view .LVU2121 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6513 .loc 1 2394 24 is_stmt 0 view .LVU2122 6514 0088 626C ldr r2, [r4, #68] 6515 008a 42F00402 orr r2, r2, #4 6516 008e 6264 str r2, [r4, #68] 6517 .L333: 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6518 .loc 1 2398 5 is_stmt 1 view .LVU2123 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6519 .loc 1 2398 8 is_stmt 0 view .LVU2124 6520 0090 13F0080F tst r3, #8 6521 0094 07D0 beq .L334 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6522 .loc 1 2398 46 discriminator 1 view .LVU2125 6523 0096 10F0200F tst r0, #32 6524 009a 00D1 bne .L335 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6525 .loc 1 2399 50 view .LVU2126 6526 009c 19B1 cbz r1, .L334 ARM GAS /tmp/cc8UBTH4.s page 224 6527 .L335: 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6528 .loc 1 2401 7 is_stmt 1 view .LVU2127 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6529 .loc 1 2401 24 is_stmt 0 view .LVU2128 6530 009e 626C ldr r2, [r4, #68] 6531 00a0 42F00802 orr r2, r2, #8 6532 00a4 6264 str r2, [r4, #68] 6533 .L334: 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6534 .loc 1 2405 5 is_stmt 1 view .LVU2129 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6535 .loc 1 2405 14 is_stmt 0 view .LVU2130 6536 00a6 626C ldr r2, [r4, #68] 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6537 .loc 1 2405 8 view .LVU2131 6538 00a8 002A cmp r2, #0 6539 00aa D1D0 beq .L326 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6540 .loc 1 2408 7 is_stmt 1 view .LVU2132 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6541 .loc 1 2408 10 is_stmt 0 view .LVU2133 6542 00ac 13F0200F tst r3, #32 6543 00b0 02D0 beq .L337 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6544 .loc 1 2408 49 discriminator 1 view .LVU2134 6545 00b2 10F0200F tst r0, #32 6546 00b6 29D1 bne .L362 6547 .LVL569: 6548 .L337: 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 6549 .loc 1 2415 7 is_stmt 1 view .LVU2135 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 6550 .loc 1 2415 20 is_stmt 0 view .LVU2136 6551 00b8 2368 ldr r3, [r4] 6552 00ba 5B69 ldr r3, [r3, #20] 6553 00bc 03F04003 and r3, r3, #64 6554 .LVL570: 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6555 .loc 1 2416 7 is_stmt 1 view .LVU2137 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6556 .loc 1 2416 18 is_stmt 0 view .LVU2138 6557 00c0 626C ldr r2, [r4, #68] 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6558 .loc 1 2416 10 view .LVU2139 6559 00c2 12F0080F tst r2, #8 6560 00c6 00D1 bne .L338 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6561 .loc 1 2416 62 discriminator 1 view .LVU2140 6562 00c8 63B3 cbz r3, .L339 6563 .L338: 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6564 .loc 1 2421 9 is_stmt 1 view .LVU2141 6565 00ca 2046 mov r0, r4 6566 00cc FFF7FEFF bl UART_EndRxTransfer 6567 .LVL571: 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc8UBTH4.s page 225 6568 .loc 1 2424 9 view .LVU2142 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6569 .loc 1 2424 13 is_stmt 0 view .LVU2143 6570 00d0 2368 ldr r3, [r4] 6571 00d2 5B69 ldr r3, [r3, #20] 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6572 .loc 1 2424 12 view .LVU2144 6573 00d4 13F0400F tst r3, #64 6574 00d8 20D0 beq .L340 6575 .L341: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6576 .loc 1 2426 11 is_stmt 1 discriminator 1 view .LVU2145 6577 .LBB514: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6578 .loc 1 2426 11 discriminator 1 view .LVU2146 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6579 .loc 1 2426 11 discriminator 1 view .LVU2147 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6580 .loc 1 2426 11 discriminator 1 view .LVU2148 6581 00da 2268 ldr r2, [r4] 6582 .LVL572: 6583 .LBB515: 6584 .LBI515: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6585 .loc 2 476 31 discriminator 1 view .LVU2149 6586 .LBB516: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6587 .loc 2 478 5 discriminator 1 view .LVU2150 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6588 .loc 2 480 4 discriminator 1 view .LVU2151 6589 00dc 02F11403 add r3, r2, #20 6590 .LVL573: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6591 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2152 6592 .syntax unified 6593 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6594 00e0 53E8003F ldrex r3, [r3] 6595 @ 0 "" 2 6596 .LVL574: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6597 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2153 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6598 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2154 6599 .thumb 6600 .syntax unified 6601 .LBE516: 6602 .LBE515: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6603 .loc 1 2426 11 discriminator 1 view .LVU2155 6604 00e4 23F04003 bic r3, r3, #64 6605 .LVL575: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6606 .loc 1 2426 11 is_stmt 1 discriminator 1 view .LVU2156 6607 .LBB517: 6608 .LBI517: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6609 .loc 2 527 31 discriminator 1 view .LVU2157 ARM GAS /tmp/cc8UBTH4.s page 226 6610 .LBB518: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6611 .loc 2 529 4 discriminator 1 view .LVU2158 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6612 .loc 2 531 4 discriminator 1 view .LVU2159 6613 00e8 1432 adds r2, r2, #20 6614 .LVL576: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6615 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2160 6616 .syntax unified 6617 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6618 00ea 42E80031 strex r1, r3, [r2] 6619 @ 0 "" 2 6620 .LVL577: 6621 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2161 6622 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2162 6623 .thumb 6624 .syntax unified 6625 .LBE518: 6626 .LBE517: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6627 .loc 1 2426 11 discriminator 1 view .LVU2163 6628 00ee 0029 cmp r1, #0 6629 00f0 F3D1 bne .L341 6630 .LBE514: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6631 .loc 1 2426 11 is_stmt 1 discriminator 2 view .LVU2164 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6632 .loc 1 2429 11 discriminator 2 view .LVU2165 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6633 .loc 1 2429 20 is_stmt 0 discriminator 2 view .LVU2166 6634 00f2 E36B ldr r3, [r4, #60] 6635 .LVL578: 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6636 .loc 1 2429 14 discriminator 2 view .LVU2167 6637 00f4 73B1 cbz r3, .L342 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 6638 .loc 1 2433 13 is_stmt 1 view .LVU2168 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 6639 .loc 1 2433 46 is_stmt 0 view .LVU2169 6640 00f6 6A4A ldr r2, .L363 6641 00f8 1A65 str r2, [r3, #80] 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6642 .loc 1 2434 13 is_stmt 1 view .LVU2170 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6643 .loc 1 2434 17 is_stmt 0 view .LVU2171 6644 00fa E06B ldr r0, [r4, #60] 6645 00fc FFF7FEFF bl HAL_DMA_Abort_IT 6646 .LVL579: 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6647 .loc 1 2434 16 view .LVU2172 6648 0100 0028 cmp r0, #0 6649 0102 A5D0 beq .L326 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6650 .loc 1 2437 15 is_stmt 1 view .LVU2173 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6651 .loc 1 2437 20 is_stmt 0 view .LVU2174 ARM GAS /tmp/cc8UBTH4.s page 227 6652 0104 E06B ldr r0, [r4, #60] 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6653 .loc 1 2437 28 view .LVU2175 6654 0106 036D ldr r3, [r0, #80] 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6655 .loc 1 2437 15 view .LVU2176 6656 0108 9847 blx r3 6657 .LVL580: 6658 010a A1E7 b .L326 6659 .LVL581: 6660 .L362: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6661 .loc 1 2410 9 is_stmt 1 view .LVU2177 6662 010c 2046 mov r0, r4 6663 .LVL582: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6664 .loc 1 2410 9 is_stmt 0 view .LVU2178 6665 010e FFF7FEFF bl UART_Receive_IT 6666 .LVL583: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6667 .loc 1 2410 9 view .LVU2179 6668 0112 D1E7 b .L337 6669 .LVL584: 6670 .L342: 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6671 .loc 1 2448 13 is_stmt 1 view .LVU2180 6672 0114 2046 mov r0, r4 6673 0116 FFF7FEFF bl HAL_UART_ErrorCallback 6674 .LVL585: 6675 011a 99E7 b .L326 6676 .L340: 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6677 .loc 1 2460 11 view .LVU2181 6678 011c 2046 mov r0, r4 6679 011e FFF7FEFF bl HAL_UART_ErrorCallback 6680 .LVL586: 6681 0122 95E7 b .L326 6682 .LVL587: 6683 .L339: 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6684 .loc 1 2473 9 view .LVU2182 6685 0124 2046 mov r0, r4 6686 0126 FFF7FEFF bl HAL_UART_ErrorCallback 6687 .LVL588: 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6688 .loc 1 2476 9 view .LVU2183 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6689 .loc 1 2476 26 is_stmt 0 view .LVU2184 6690 012a 0023 movs r3, #0 6691 012c 6364 str r3, [r4, #68] 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 6692 .loc 1 2479 5 is_stmt 1 view .LVU2185 6693 012e 8FE7 b .L326 6694 .LVL589: 6695 .L359: 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((cr1its & USART_CR1_IDLEIE) != 0U)) 6696 .loc 1 2485 7 is_stmt 0 view .LVU2186 ARM GAS /tmp/cc8UBTH4.s page 228 6697 0130 13F0100F tst r3, #16 6698 0134 3FF47EAF beq .L343 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6699 .loc 1 2486 7 view .LVU2187 6700 0138 10F0100F tst r0, #16 6701 013c 3FF47AAF beq .L343 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6702 .loc 1 2488 5 is_stmt 1 view .LVU2188 6703 .LBB519: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6704 .loc 1 2488 5 view .LVU2189 6705 0140 0023 movs r3, #0 6706 .LVL590: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6707 .loc 1 2488 5 is_stmt 0 view .LVU2190 6708 0142 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6709 .loc 1 2488 5 is_stmt 1 view .LVU2191 6710 0144 1368 ldr r3, [r2] 6711 0146 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6712 .loc 1 2488 5 view .LVU2192 6713 0148 5368 ldr r3, [r2, #4] 6714 014a 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6715 .loc 1 2488 5 view .LVU2193 6716 014c 019B ldr r3, [sp, #4] 6717 .LBE519: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6718 .loc 1 2488 5 view .LVU2194 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6719 .loc 1 2491 5 view .LVU2195 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6720 .loc 1 2491 9 is_stmt 0 view .LVU2196 6721 014e 5369 ldr r3, [r2, #20] 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6722 .loc 1 2491 8 view .LVU2197 6723 0150 13F0400F tst r3, #64 6724 0154 5FD0 beq .L344 6725 .LBB520: 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 6726 .loc 1 2497 7 is_stmt 1 view .LVU2198 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 6727 .loc 1 2497 50 is_stmt 0 view .LVU2199 6728 0156 E26B ldr r2, [r4, #60] 6729 0158 1368 ldr r3, [r2] 6730 015a 5B68 ldr r3, [r3, #4] 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 6731 .loc 1 2497 16 view .LVU2200 6732 015c 9BB2 uxth r3, r3 6733 .LVL591: 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 6734 .loc 1 2498 7 is_stmt 1 view .LVU2201 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 6735 .loc 1 2498 10 is_stmt 0 view .LVU2202 6736 015e 002B cmp r3, #0 6737 0160 4AD0 beq .L345 ARM GAS /tmp/cc8UBTH4.s page 229 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6738 .loc 1 2499 43 view .LVU2203 6739 0162 A18D ldrh r1, [r4, #44] 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6740 .loc 1 2499 11 view .LVU2204 6741 0164 9942 cmp r1, r3 6742 0166 47D9 bls .L345 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6743 .loc 1 2502 9 is_stmt 1 view .LVU2205 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6744 .loc 1 2502 28 is_stmt 0 view .LVU2206 6745 0168 E385 strh r3, [r4, #46] @ movhi 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6746 .loc 1 2505 9 is_stmt 1 view .LVU2207 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6747 .loc 1 2505 32 is_stmt 0 view .LVU2208 6748 016a D369 ldr r3, [r2, #28] 6749 .LVL592: 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6750 .loc 1 2505 12 view .LVU2209 6751 016c B3F5807F cmp r3, #256 6752 0170 37D0 beq .L346 6753 .L347: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6754 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2210 6755 .LBB521: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6756 .loc 1 2508 11 discriminator 1 view .LVU2211 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6757 .loc 1 2508 11 discriminator 1 view .LVU2212 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6758 .loc 1 2508 11 discriminator 1 view .LVU2213 6759 0172 2268 ldr r2, [r4] 6760 .LVL593: 6761 .LBB522: 6762 .LBI522: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6763 .loc 2 476 31 discriminator 1 view .LVU2214 6764 .LBB523: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6765 .loc 2 478 5 discriminator 1 view .LVU2215 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6766 .loc 2 480 4 discriminator 1 view .LVU2216 6767 0174 02F10C03 add r3, r2, #12 6768 .LVL594: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6769 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2217 6770 .syntax unified 6771 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6772 0178 53E8003F ldrex r3, [r3] 6773 @ 0 "" 2 6774 .LVL595: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6775 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2218 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6776 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2219 6777 .thumb ARM GAS /tmp/cc8UBTH4.s page 230 6778 .syntax unified 6779 .LBE523: 6780 .LBE522: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6781 .loc 1 2508 11 discriminator 1 view .LVU2220 6782 017c 23F48073 bic r3, r3, #256 6783 .LVL596: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6784 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2221 6785 .LBB524: 6786 .LBI524: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6787 .loc 2 527 31 discriminator 1 view .LVU2222 6788 .LBB525: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6789 .loc 2 529 4 discriminator 1 view .LVU2223 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6790 .loc 2 531 4 discriminator 1 view .LVU2224 6791 0180 0C32 adds r2, r2, #12 6792 .LVL597: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6793 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2225 6794 .syntax unified 6795 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6796 0182 42E80031 strex r1, r3, [r2] 6797 @ 0 "" 2 6798 .LVL598: 6799 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2226 6800 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2227 6801 .thumb 6802 .syntax unified 6803 .LBE525: 6804 .LBE524: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6805 .loc 1 2508 11 discriminator 1 view .LVU2228 6806 0186 0029 cmp r1, #0 6807 0188 F3D1 bne .L347 6808 .LVL599: 6809 .L348: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6810 .loc 1 2508 11 discriminator 1 view .LVU2229 6811 .LBE521: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6812 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2230 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6813 .loc 1 2509 11 discriminator 1 view .LVU2231 6814 .LBB526: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6815 .loc 1 2509 11 discriminator 1 view .LVU2232 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6816 .loc 1 2509 11 discriminator 1 view .LVU2233 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6817 .loc 1 2509 11 discriminator 1 view .LVU2234 6818 018a 2268 ldr r2, [r4] 6819 .LVL600: 6820 .LBB527: 6821 .LBI527: ARM GAS /tmp/cc8UBTH4.s page 231 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6822 .loc 2 476 31 discriminator 1 view .LVU2235 6823 .LBB528: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6824 .loc 2 478 5 discriminator 1 view .LVU2236 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6825 .loc 2 480 4 discriminator 1 view .LVU2237 6826 018c 02F11403 add r3, r2, #20 6827 .LVL601: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6828 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2238 6829 .syntax unified 6830 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6831 0190 53E8003F ldrex r3, [r3] 6832 @ 0 "" 2 6833 .LVL602: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6834 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2239 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6835 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2240 6836 .thumb 6837 .syntax unified 6838 .LBE528: 6839 .LBE527: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6840 .loc 1 2509 11 discriminator 1 view .LVU2241 6841 0194 23F00103 bic r3, r3, #1 6842 .LVL603: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6843 .loc 1 2509 11 is_stmt 1 discriminator 1 view .LVU2242 6844 .LBB529: 6845 .LBI529: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6846 .loc 2 527 31 discriminator 1 view .LVU2243 6847 .LBB530: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6848 .loc 2 529 4 discriminator 1 view .LVU2244 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6849 .loc 2 531 4 discriminator 1 view .LVU2245 6850 0198 1432 adds r2, r2, #20 6851 .LVL604: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6852 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2246 6853 .syntax unified 6854 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6855 019a 42E80031 strex r1, r3, [r2] 6856 @ 0 "" 2 6857 .LVL605: 6858 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2247 6859 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2248 6860 .thumb 6861 .syntax unified 6862 .LBE530: 6863 .LBE529: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6864 .loc 1 2509 11 discriminator 1 view .LVU2249 6865 019e 0029 cmp r1, #0 ARM GAS /tmp/cc8UBTH4.s page 232 6866 01a0 F3D1 bne .L348 6867 .LVL606: 6868 .L349: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6869 .loc 1 2509 11 discriminator 1 view .LVU2250 6870 .LBE526: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6871 .loc 1 2509 11 is_stmt 1 discriminator 1 view .LVU2251 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6872 .loc 1 2513 11 discriminator 1 view .LVU2252 6873 .LBB531: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6874 .loc 1 2513 11 discriminator 1 view .LVU2253 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6875 .loc 1 2513 11 discriminator 1 view .LVU2254 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6876 .loc 1 2513 11 discriminator 1 view .LVU2255 6877 01a2 2268 ldr r2, [r4] 6878 .LVL607: 6879 .LBB532: 6880 .LBI532: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6881 .loc 2 476 31 discriminator 1 view .LVU2256 6882 .LBB533: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6883 .loc 2 478 5 discriminator 1 view .LVU2257 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6884 .loc 2 480 4 discriminator 1 view .LVU2258 6885 01a4 02F11403 add r3, r2, #20 6886 .LVL608: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6887 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2259 6888 .syntax unified 6889 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6890 01a8 53E8003F ldrex r3, [r3] 6891 @ 0 "" 2 6892 .LVL609: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6893 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2260 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6894 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2261 6895 .thumb 6896 .syntax unified 6897 .LBE533: 6898 .LBE532: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6899 .loc 1 2513 11 discriminator 1 view .LVU2262 6900 01ac 23F04003 bic r3, r3, #64 6901 .LVL610: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6902 .loc 1 2513 11 is_stmt 1 discriminator 1 view .LVU2263 6903 .LBB534: 6904 .LBI534: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6905 .loc 2 527 31 discriminator 1 view .LVU2264 6906 .LBB535: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc8UBTH4.s page 233 6907 .loc 2 529 4 discriminator 1 view .LVU2265 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6908 .loc 2 531 4 discriminator 1 view .LVU2266 6909 01b0 1432 adds r2, r2, #20 6910 .LVL611: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6911 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2267 6912 .syntax unified 6913 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6914 01b2 42E80031 strex r1, r3, [r2] 6915 @ 0 "" 2 6916 .LVL612: 6917 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2268 6918 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2269 6919 .thumb 6920 .syntax unified 6921 .LBE535: 6922 .LBE534: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6923 .loc 1 2513 11 discriminator 1 view .LVU2270 6924 01b6 0029 cmp r1, #0 6925 01b8 F3D1 bne .L349 6926 .LBE531: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6927 .loc 1 2513 11 is_stmt 1 discriminator 2 view .LVU2271 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6928 .loc 1 2516 11 discriminator 2 view .LVU2272 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6929 .loc 1 2516 26 is_stmt 0 discriminator 2 view .LVU2273 6930 01ba 2023 movs r3, #32 6931 .LVL613: 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6932 .loc 1 2516 26 discriminator 2 view .LVU2274 6933 01bc 84F84230 strb r3, [r4, #66] 6934 .LVL614: 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6935 .loc 1 2517 11 is_stmt 1 discriminator 2 view .LVU2275 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6936 .loc 1 2517 32 is_stmt 0 discriminator 2 view .LVU2276 6937 01c0 0023 movs r3, #0 6938 01c2 2363 str r3, [r4, #48] 6939 .L350: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6940 .loc 1 2519 11 is_stmt 1 discriminator 1 view .LVU2277 6941 .LBB536: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6942 .loc 1 2519 11 discriminator 1 view .LVU2278 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6943 .loc 1 2519 11 discriminator 1 view .LVU2279 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6944 .loc 1 2519 11 discriminator 1 view .LVU2280 6945 01c4 2268 ldr r2, [r4] 6946 .LVL615: 6947 .LBB537: 6948 .LBI537: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6949 .loc 2 476 31 discriminator 1 view .LVU2281 ARM GAS /tmp/cc8UBTH4.s page 234 6950 .LBB538: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6951 .loc 2 478 5 discriminator 1 view .LVU2282 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6952 .loc 2 480 4 discriminator 1 view .LVU2283 6953 01c6 02F10C03 add r3, r2, #12 6954 .LVL616: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6955 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2284 6956 .syntax unified 6957 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6958 01ca 53E8003F ldrex r3, [r3] 6959 @ 0 "" 2 6960 .LVL617: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6961 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2285 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6962 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2286 6963 .thumb 6964 .syntax unified 6965 .LBE538: 6966 .LBE537: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6967 .loc 1 2519 11 discriminator 1 view .LVU2287 6968 01ce 23F01003 bic r3, r3, #16 6969 .LVL618: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6970 .loc 1 2519 11 is_stmt 1 discriminator 1 view .LVU2288 6971 .LBB539: 6972 .LBI539: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6973 .loc 2 527 31 discriminator 1 view .LVU2289 6974 .LBB540: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6975 .loc 2 529 4 discriminator 1 view .LVU2290 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6976 .loc 2 531 4 discriminator 1 view .LVU2291 6977 01d2 0C32 adds r2, r2, #12 6978 .LVL619: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6979 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2292 6980 .syntax unified 6981 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6982 01d4 42E80031 strex r1, r3, [r2] 6983 @ 0 "" 2 6984 .LVL620: 6985 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2293 6986 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2294 6987 .thumb 6988 .syntax unified 6989 .LBE540: 6990 .LBE539: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6991 .loc 1 2519 11 discriminator 1 view .LVU2295 6992 01d8 0029 cmp r1, #0 6993 01da F3D1 bne .L350 6994 .LBE536: ARM GAS /tmp/cc8UBTH4.s page 235 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6995 .loc 1 2519 11 is_stmt 1 discriminator 2 view .LVU2296 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6996 .loc 1 2522 11 discriminator 2 view .LVU2297 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6997 .loc 1 2522 17 is_stmt 0 discriminator 2 view .LVU2298 6998 01dc E06B ldr r0, [r4, #60] 6999 .LVL621: 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7000 .loc 1 2522 17 discriminator 2 view .LVU2299 7001 01de FFF7FEFF bl HAL_DMA_Abort 7002 .LVL622: 7003 .L346: 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7004 .loc 1 2527 9 is_stmt 1 view .LVU2300 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7005 .loc 1 2527 28 is_stmt 0 view .LVU2301 7006 01e2 0223 movs r3, #2 7007 01e4 6363 str r3, [r4, #52] 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7008 .loc 1 2534 9 is_stmt 1 view .LVU2302 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7009 .loc 1 2534 49 is_stmt 0 view .LVU2303 7010 01e6 A18D ldrh r1, [r4, #44] 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7011 .loc 1 2534 69 view .LVU2304 7012 01e8 E38D ldrh r3, [r4, #46] 7013 01ea 9BB2 uxth r3, r3 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7014 .loc 1 2534 9 view .LVU2305 7015 01ec C91A subs r1, r1, r3 7016 01ee 89B2 uxth r1, r1 7017 01f0 2046 mov r0, r4 7018 01f2 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7019 .LVL623: 7020 01f6 2BE7 b .L326 7021 .LVL624: 7022 .L345: 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7023 .loc 1 2541 9 is_stmt 1 view .LVU2306 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7024 .loc 1 2541 42 is_stmt 0 view .LVU2307 7025 01f8 A18D ldrh r1, [r4, #44] 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7026 .loc 1 2541 12 view .LVU2308 7027 01fa 9942 cmp r1, r3 7028 01fc 7FF428AF bne .L326 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7029 .loc 1 2543 11 is_stmt 1 view .LVU2309 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7030 .loc 1 2543 34 is_stmt 0 view .LVU2310 7031 0200 D369 ldr r3, [r2, #28] 7032 .LVL625: 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7033 .loc 1 2543 14 view .LVU2311 7034 0202 B3F5807F cmp r3, #256 7035 0206 7FF423AF bne .L326 ARM GAS /tmp/cc8UBTH4.s page 236 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7036 .loc 1 2547 13 is_stmt 1 view .LVU2312 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7037 .loc 1 2547 32 is_stmt 0 view .LVU2313 7038 020a 0223 movs r3, #2 7039 020c 6363 str r3, [r4, #52] 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 7040 .loc 1 2554 13 is_stmt 1 view .LVU2314 7041 020e 2046 mov r0, r4 7042 .LVL626: 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 7043 .loc 1 2554 13 is_stmt 0 view .LVU2315 7044 0210 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7045 .LVL627: 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7046 .loc 1 2559 7 is_stmt 1 view .LVU2316 7047 0214 1CE7 b .L326 7048 .LVL628: 7049 .L344: 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7050 .loc 1 2559 7 is_stmt 0 view .LVU2317 7051 .LBE520: 7052 .LBB541: 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7053 .loc 1 2566 7 is_stmt 1 view .LVU2318 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7054 .loc 1 2566 34 is_stmt 0 view .LVU2319 7055 0216 A18D ldrh r1, [r4, #44] 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7056 .loc 1 2566 54 view .LVU2320 7057 0218 E38D ldrh r3, [r4, #46] 7058 021a 9BB2 uxth r3, r3 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7059 .loc 1 2566 16 view .LVU2321 7060 021c C91A subs r1, r1, r3 7061 021e 89B2 uxth r1, r1 7062 .LVL629: 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7063 .loc 1 2567 7 is_stmt 1 view .LVU2322 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7064 .loc 1 2567 17 is_stmt 0 view .LVU2323 7065 0220 E38D ldrh r3, [r4, #46] 7066 0222 9BB2 uxth r3, r3 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7067 .loc 1 2567 10 view .LVU2324 7068 0224 002B cmp r3, #0 7069 0226 3FF413AF beq .L326 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7070 .loc 1 2568 11 view .LVU2325 7071 022a 0029 cmp r1, #0 7072 022c 3FF410AF beq .L326 7073 .LVL630: 7074 .L353: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7075 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2326 7076 .LBB542: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 237 7077 .loc 1 2571 9 discriminator 1 view .LVU2327 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7078 .loc 1 2571 9 discriminator 1 view .LVU2328 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7079 .loc 1 2571 9 discriminator 1 view .LVU2329 7080 0230 2268 ldr r2, [r4] 7081 .LVL631: 7082 .LBB543: 7083 .LBI543: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7084 .loc 2 476 31 discriminator 1 view .LVU2330 7085 .LBB544: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7086 .loc 2 478 5 discriminator 1 view .LVU2331 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7087 .loc 2 480 4 discriminator 1 view .LVU2332 7088 0232 02F10C03 add r3, r2, #12 7089 .LVL632: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7090 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2333 7091 .syntax unified 7092 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7093 0236 53E8003F ldrex r3, [r3] 7094 @ 0 "" 2 7095 .LVL633: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7096 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2334 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7097 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2335 7098 .thumb 7099 .syntax unified 7100 .LBE544: 7101 .LBE543: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7102 .loc 1 2571 9 discriminator 1 view .LVU2336 7103 023a 23F49073 bic r3, r3, #288 7104 .LVL634: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7105 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2337 7106 .LBB545: 7107 .LBI545: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7108 .loc 2 527 31 discriminator 1 view .LVU2338 7109 .LBB546: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7110 .loc 2 529 4 discriminator 1 view .LVU2339 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7111 .loc 2 531 4 discriminator 1 view .LVU2340 7112 023e 0C32 adds r2, r2, #12 7113 .LVL635: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7114 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2341 7115 .syntax unified 7116 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7117 0240 42E80030 strex r0, r3, [r2] 7118 @ 0 "" 2 7119 .LVL636: ARM GAS /tmp/cc8UBTH4.s page 238 7120 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2342 7121 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2343 7122 .thumb 7123 .syntax unified 7124 .LBE546: 7125 .LBE545: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7126 .loc 1 2571 9 discriminator 1 view .LVU2344 7127 0244 0028 cmp r0, #0 7128 0246 F3D1 bne .L353 7129 .LVL637: 7130 .L354: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7131 .loc 1 2571 9 discriminator 1 view .LVU2345 7132 .LBE542: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7133 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2346 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7134 .loc 1 2574 9 discriminator 1 view .LVU2347 7135 .LBB547: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7136 .loc 1 2574 9 discriminator 1 view .LVU2348 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7137 .loc 1 2574 9 discriminator 1 view .LVU2349 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7138 .loc 1 2574 9 discriminator 1 view .LVU2350 7139 0248 2268 ldr r2, [r4] 7140 .LVL638: 7141 .LBB548: 7142 .LBI548: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7143 .loc 2 476 31 discriminator 1 view .LVU2351 7144 .LBB549: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7145 .loc 2 478 5 discriminator 1 view .LVU2352 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7146 .loc 2 480 4 discriminator 1 view .LVU2353 7147 024a 02F11403 add r3, r2, #20 7148 .LVL639: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7149 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2354 7150 .syntax unified 7151 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7152 024e 53E8003F ldrex r3, [r3] 7153 @ 0 "" 2 7154 .LVL640: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7155 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2355 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7156 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2356 7157 .thumb 7158 .syntax unified 7159 .LBE549: 7160 .LBE548: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7161 .loc 1 2574 9 discriminator 1 view .LVU2357 7162 0252 23F00103 bic r3, r3, #1 ARM GAS /tmp/cc8UBTH4.s page 239 7163 .LVL641: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7164 .loc 1 2574 9 is_stmt 1 discriminator 1 view .LVU2358 7165 .LBB550: 7166 .LBI550: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7167 .loc 2 527 31 discriminator 1 view .LVU2359 7168 .LBB551: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7169 .loc 2 529 4 discriminator 1 view .LVU2360 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7170 .loc 2 531 4 discriminator 1 view .LVU2361 7171 0256 1432 adds r2, r2, #20 7172 .LVL642: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7173 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2362 7174 .syntax unified 7175 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7176 0258 42E80030 strex r0, r3, [r2] 7177 @ 0 "" 2 7178 .LVL643: 7179 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2363 7180 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2364 7181 .thumb 7182 .syntax unified 7183 .LBE551: 7184 .LBE550: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7185 .loc 1 2574 9 discriminator 1 view .LVU2365 7186 025c 0028 cmp r0, #0 7187 025e F3D1 bne .L354 7188 .LBE547: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7189 .loc 1 2574 9 is_stmt 1 discriminator 2 view .LVU2366 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7190 .loc 1 2577 9 discriminator 2 view .LVU2367 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7191 .loc 1 2577 24 is_stmt 0 discriminator 2 view .LVU2368 7192 0260 2023 movs r3, #32 7193 .LVL644: 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7194 .loc 1 2577 24 discriminator 2 view .LVU2369 7195 0262 84F84230 strb r3, [r4, #66] 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7196 .loc 1 2578 9 is_stmt 1 discriminator 2 view .LVU2370 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7197 .loc 1 2578 30 is_stmt 0 discriminator 2 view .LVU2371 7198 0266 0023 movs r3, #0 7199 0268 2363 str r3, [r4, #48] 7200 .L355: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7201 .loc 1 2580 9 is_stmt 1 discriminator 1 view .LVU2372 7202 .LBB552: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7203 .loc 1 2580 9 discriminator 1 view .LVU2373 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7204 .loc 1 2580 9 discriminator 1 view .LVU2374 ARM GAS /tmp/cc8UBTH4.s page 240 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7205 .loc 1 2580 9 discriminator 1 view .LVU2375 7206 026a 2268 ldr r2, [r4] 7207 .LVL645: 7208 .LBB553: 7209 .LBI553: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7210 .loc 2 476 31 discriminator 1 view .LVU2376 7211 .LBB554: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7212 .loc 2 478 5 discriminator 1 view .LVU2377 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7213 .loc 2 480 4 discriminator 1 view .LVU2378 7214 026c 02F10C03 add r3, r2, #12 7215 .LVL646: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7216 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2379 7217 .syntax unified 7218 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7219 0270 53E8003F ldrex r3, [r3] 7220 @ 0 "" 2 7221 .LVL647: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7222 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2380 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7223 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2381 7224 .thumb 7225 .syntax unified 7226 .LBE554: 7227 .LBE553: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7228 .loc 1 2580 9 discriminator 1 view .LVU2382 7229 0274 23F01003 bic r3, r3, #16 7230 .LVL648: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7231 .loc 1 2580 9 is_stmt 1 discriminator 1 view .LVU2383 7232 .LBB555: 7233 .LBI555: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7234 .loc 2 527 31 discriminator 1 view .LVU2384 7235 .LBB556: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7236 .loc 2 529 4 discriminator 1 view .LVU2385 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7237 .loc 2 531 4 discriminator 1 view .LVU2386 7238 0278 0C32 adds r2, r2, #12 7239 .LVL649: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7240 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2387 7241 .syntax unified 7242 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7243 027a 42E80030 strex r0, r3, [r2] 7244 @ 0 "" 2 7245 .LVL650: 7246 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2388 7247 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2389 7248 .thumb ARM GAS /tmp/cc8UBTH4.s page 241 7249 .syntax unified 7250 .LBE556: 7251 .LBE555: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7252 .loc 1 2580 9 discriminator 1 view .LVU2390 7253 027e 0028 cmp r0, #0 7254 0280 F3D1 bne .L355 7255 .LBE552: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7256 .loc 1 2580 9 is_stmt 1 discriminator 2 view .LVU2391 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7257 .loc 1 2584 9 discriminator 2 view .LVU2392 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7258 .loc 1 2584 28 is_stmt 0 discriminator 2 view .LVU2393 7259 0282 0223 movs r3, #2 7260 .LVL651: 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7261 .loc 1 2584 28 discriminator 2 view .LVU2394 7262 0284 6363 str r3, [r4, #52] 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7263 .loc 1 2591 9 is_stmt 1 discriminator 2 view .LVU2395 7264 0286 2046 mov r0, r4 7265 0288 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7266 .LVL652: 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7267 .loc 1 2594 7 discriminator 2 view .LVU2396 7268 028c E0E6 b .L326 7269 .LVL653: 7270 .L360: 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7271 .loc 1 2594 7 is_stmt 0 discriminator 2 view .LVU2397 7272 .LBE541: 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7273 .loc 1 2601 5 is_stmt 1 view .LVU2398 7274 028e 2046 mov r0, r4 7275 .LVL654: 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7276 .loc 1 2601 5 is_stmt 0 view .LVU2399 7277 0290 FFF7FEFF bl UART_Transmit_IT 7278 .LVL655: 2602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7279 .loc 1 2602 5 is_stmt 1 view .LVU2400 7280 0294 DCE6 b .L326 7281 .LVL656: 7282 .L361: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7283 .loc 1 2608 5 view .LVU2401 7284 0296 2046 mov r0, r4 7285 .LVL657: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7286 .loc 1 2608 5 is_stmt 0 view .LVU2402 7287 0298 FFF7FEFF bl UART_EndTransmit_IT 7288 .LVL658: 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7289 .loc 1 2609 5 is_stmt 1 view .LVU2403 7290 029c D8E6 b .L326 7291 .L364: ARM GAS /tmp/cc8UBTH4.s page 242 7292 029e 00BF .align 2 7293 .L363: 7294 02a0 00000000 .word UART_DMAAbortOnError 7295 .cfi_endproc 7296 .LFE160: 7298 .section .text.UART_DMARxHalfCplt,"ax",%progbits 7299 .align 1 7300 .syntax unified 7301 .thumb 7302 .thumb_func 7303 .fpu fpv4-sp-d16 7305 UART_DMARxHalfCplt: 7306 .LVL659: 7307 .LFB180: 3132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7308 .loc 1 3132 1 view -0 7309 .cfi_startproc 7310 @ args = 0, pretend = 0, frame = 0 7311 @ frame_needed = 0, uses_anonymous_args = 0 3132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7312 .loc 1 3132 1 is_stmt 0 view .LVU2405 7313 0000 08B5 push {r3, lr} 7314 .LCFI56: 7315 .cfi_def_cfa_offset 8 7316 .cfi_offset 3, -8 7317 .cfi_offset 14, -4 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7318 .loc 1 3133 3 is_stmt 1 view .LVU2406 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7319 .loc 1 3133 23 is_stmt 0 view .LVU2407 7320 0002 806B ldr r0, [r0, #56] 7321 .LVL660: 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7322 .loc 1 3137 3 is_stmt 1 view .LVU2408 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7323 .loc 1 3137 22 is_stmt 0 view .LVU2409 7324 0004 0123 movs r3, #1 7325 0006 4363 str r3, [r0, #52] 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7326 .loc 1 3141 3 is_stmt 1 view .LVU2410 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7327 .loc 1 3141 12 is_stmt 0 view .LVU2411 7328 0008 036B ldr r3, [r0, #48] 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7329 .loc 1 3141 6 view .LVU2412 7330 000a 012B cmp r3, #1 7331 000c 02D0 beq .L369 3159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7332 .loc 1 3159 5 is_stmt 1 view .LVU2413 7333 000e FFF7FEFF bl HAL_UART_RxHalfCpltCallback 7334 .LVL661: 7335 .L365: 3162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7336 .loc 1 3162 1 is_stmt 0 view .LVU2414 7337 0012 08BD pop {r3, pc} 7338 .LVL662: 7339 .L369: ARM GAS /tmp/cc8UBTH4.s page 243 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7340 .loc 1 3148 5 is_stmt 1 view .LVU2415 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7341 .loc 1 3148 44 is_stmt 0 view .LVU2416 7342 0014 818D ldrh r1, [r0, #44] 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7343 .loc 1 3148 5 view .LVU2417 7344 0016 4908 lsrs r1, r1, #1 7345 0018 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7346 .LVL663: 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7347 .loc 1 3148 5 view .LVU2418 7348 001c F9E7 b .L365 7349 .cfi_endproc 7350 .LFE180: 7352 .section .text.UART_DMAReceiveCplt,"ax",%progbits 7353 .align 1 7354 .syntax unified 7355 .thumb 7356 .thumb_func 7357 .fpu fpv4-sp-d16 7359 UART_DMAReceiveCplt: 7360 .LVL664: 7361 .LFB179: 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7362 .loc 1 3070 1 is_stmt 1 view -0 7363 .cfi_startproc 7364 @ args = 0, pretend = 0, frame = 0 7365 @ frame_needed = 0, uses_anonymous_args = 0 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7366 .loc 1 3070 1 is_stmt 0 view .LVU2420 7367 0000 08B5 push {r3, lr} 7368 .LCFI57: 7369 .cfi_def_cfa_offset 8 7370 .cfi_offset 3, -8 7371 .cfi_offset 14, -4 7372 0002 0346 mov r3, r0 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7373 .loc 1 3071 3 is_stmt 1 view .LVU2421 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7374 .loc 1 3071 23 is_stmt 0 view .LVU2422 7375 0004 806B ldr r0, [r0, #56] 7376 .LVL665: 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7377 .loc 1 3074 3 is_stmt 1 view .LVU2423 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7378 .loc 1 3074 12 is_stmt 0 view .LVU2424 7379 0006 1B68 ldr r3, [r3] 7380 .LVL666: 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7381 .loc 1 3074 22 view .LVU2425 7382 0008 1B68 ldr r3, [r3] 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7383 .loc 1 3074 6 view .LVU2426 7384 000a 13F4807F tst r3, #256 7385 000e 2BD1 bne .L371 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 244 7386 .loc 1 3076 5 is_stmt 1 view .LVU2427 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7387 .loc 1 3076 24 is_stmt 0 view .LVU2428 7388 0010 0023 movs r3, #0 7389 0012 C385 strh r3, [r0, #46] @ movhi 7390 .L372: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7391 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2429 7392 .LBB557: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7393 .loc 1 3079 5 discriminator 1 view .LVU2430 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7394 .loc 1 3079 5 discriminator 1 view .LVU2431 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7395 .loc 1 3079 5 discriminator 1 view .LVU2432 7396 0014 0268 ldr r2, [r0] 7397 .LVL667: 7398 .LBB558: 7399 .LBI558: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7400 .loc 2 476 31 discriminator 1 view .LVU2433 7401 .LBB559: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7402 .loc 2 478 5 discriminator 1 view .LVU2434 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7403 .loc 2 480 4 discriminator 1 view .LVU2435 7404 0016 02F10C03 add r3, r2, #12 7405 .LVL668: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7406 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2436 7407 .syntax unified 7408 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7409 001a 53E8003F ldrex r3, [r3] 7410 @ 0 "" 2 7411 .LVL669: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7412 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2437 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7413 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2438 7414 .thumb 7415 .syntax unified 7416 .LBE559: 7417 .LBE558: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7418 .loc 1 3079 5 discriminator 1 view .LVU2439 7419 001e 23F48073 bic r3, r3, #256 7420 .LVL670: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7421 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2440 7422 .LBB560: 7423 .LBI560: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7424 .loc 2 527 31 discriminator 1 view .LVU2441 7425 .LBB561: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7426 .loc 2 529 4 discriminator 1 view .LVU2442 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc8UBTH4.s page 245 7427 .loc 2 531 4 discriminator 1 view .LVU2443 7428 0022 0C32 adds r2, r2, #12 7429 .LVL671: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7430 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2444 7431 .syntax unified 7432 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7433 0024 42E80031 strex r1, r3, [r2] 7434 @ 0 "" 2 7435 .LVL672: 7436 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2445 7437 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2446 7438 .thumb 7439 .syntax unified 7440 .LBE561: 7441 .LBE560: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7442 .loc 1 3079 5 discriminator 1 view .LVU2447 7443 0028 0029 cmp r1, #0 7444 002a F3D1 bne .L372 7445 .LVL673: 7446 .L373: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7447 .loc 1 3079 5 discriminator 1 view .LVU2448 7448 .LBE557: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7449 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2449 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7450 .loc 1 3080 5 discriminator 1 view .LVU2450 7451 .LBB562: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7452 .loc 1 3080 5 discriminator 1 view .LVU2451 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7453 .loc 1 3080 5 discriminator 1 view .LVU2452 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7454 .loc 1 3080 5 discriminator 1 view .LVU2453 7455 002c 0268 ldr r2, [r0] 7456 .LVL674: 7457 .LBB563: 7458 .LBI563: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7459 .loc 2 476 31 discriminator 1 view .LVU2454 7460 .LBB564: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7461 .loc 2 478 5 discriminator 1 view .LVU2455 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7462 .loc 2 480 4 discriminator 1 view .LVU2456 7463 002e 02F11403 add r3, r2, #20 7464 .LVL675: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7465 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2457 7466 .syntax unified 7467 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7468 0032 53E8003F ldrex r3, [r3] 7469 @ 0 "" 2 7470 .LVL676: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS /tmp/cc8UBTH4.s page 246 7471 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2458 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7472 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2459 7473 .thumb 7474 .syntax unified 7475 .LBE564: 7476 .LBE563: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7477 .loc 1 3080 5 discriminator 1 view .LVU2460 7478 0036 23F00103 bic r3, r3, #1 7479 .LVL677: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7480 .loc 1 3080 5 is_stmt 1 discriminator 1 view .LVU2461 7481 .LBB565: 7482 .LBI565: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7483 .loc 2 527 31 discriminator 1 view .LVU2462 7484 .LBB566: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7485 .loc 2 529 4 discriminator 1 view .LVU2463 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7486 .loc 2 531 4 discriminator 1 view .LVU2464 7487 003a 1432 adds r2, r2, #20 7488 .LVL678: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7489 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2465 7490 .syntax unified 7491 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7492 003c 42E80031 strex r1, r3, [r2] 7493 @ 0 "" 2 7494 .LVL679: 7495 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2466 7496 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2467 7497 .thumb 7498 .syntax unified 7499 .LBE566: 7500 .LBE565: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7501 .loc 1 3080 5 discriminator 1 view .LVU2468 7502 0040 0029 cmp r1, #0 7503 0042 F3D1 bne .L373 7504 .LVL680: 7505 .L374: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7506 .loc 1 3080 5 discriminator 1 view .LVU2469 7507 .LBE562: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7508 .loc 1 3080 5 is_stmt 1 discriminator 1 view .LVU2470 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7509 .loc 1 3084 5 discriminator 1 view .LVU2471 7510 .LBB567: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7511 .loc 1 3084 5 discriminator 1 view .LVU2472 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7512 .loc 1 3084 5 discriminator 1 view .LVU2473 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7513 .loc 1 3084 5 discriminator 1 view .LVU2474 ARM GAS /tmp/cc8UBTH4.s page 247 7514 0044 0268 ldr r2, [r0] 7515 .LVL681: 7516 .LBB568: 7517 .LBI568: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7518 .loc 2 476 31 discriminator 1 view .LVU2475 7519 .LBB569: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7520 .loc 2 478 5 discriminator 1 view .LVU2476 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7521 .loc 2 480 4 discriminator 1 view .LVU2477 7522 0046 02F11403 add r3, r2, #20 7523 .LVL682: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7524 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2478 7525 .syntax unified 7526 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7527 004a 53E8003F ldrex r3, [r3] 7528 @ 0 "" 2 7529 .LVL683: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7530 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2479 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7531 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2480 7532 .thumb 7533 .syntax unified 7534 .LBE569: 7535 .LBE568: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7536 .loc 1 3084 5 discriminator 1 view .LVU2481 7537 004e 23F04003 bic r3, r3, #64 7538 .LVL684: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7539 .loc 1 3084 5 is_stmt 1 discriminator 1 view .LVU2482 7540 .LBB570: 7541 .LBI570: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7542 .loc 2 527 31 discriminator 1 view .LVU2483 7543 .LBB571: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7544 .loc 2 529 4 discriminator 1 view .LVU2484 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7545 .loc 2 531 4 discriminator 1 view .LVU2485 7546 0052 1432 adds r2, r2, #20 7547 .LVL685: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7548 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2486 7549 .syntax unified 7550 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7551 0054 42E80031 strex r1, r3, [r2] 7552 @ 0 "" 2 7553 .LVL686: 7554 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2487 7555 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2488 7556 .thumb 7557 .syntax unified 7558 .LBE571: ARM GAS /tmp/cc8UBTH4.s page 248 7559 .LBE570: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7560 .loc 1 3084 5 discriminator 1 view .LVU2489 7561 0058 0029 cmp r1, #0 7562 005a F3D1 bne .L374 7563 .LBE567: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7564 .loc 1 3084 5 is_stmt 1 discriminator 2 view .LVU2490 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7565 .loc 1 3087 5 discriminator 2 view .LVU2491 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7566 .loc 1 3087 20 is_stmt 0 discriminator 2 view .LVU2492 7567 005c 2023 movs r3, #32 7568 .LVL687: 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7569 .loc 1 3087 20 discriminator 2 view .LVU2493 7570 005e 80F84230 strb r3, [r0, #66] 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7571 .loc 1 3090 5 is_stmt 1 discriminator 2 view .LVU2494 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7572 .loc 1 3090 14 is_stmt 0 discriminator 2 view .LVU2495 7573 0062 036B ldr r3, [r0, #48] 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7574 .loc 1 3090 8 discriminator 2 view .LVU2496 7575 0064 012B cmp r3, #1 7576 0066 07D0 beq .L375 7577 .L371: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7578 .loc 1 3092 7 is_stmt 1 discriminator 2 view .LVU2497 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7579 .loc 1 3098 3 discriminator 2 view .LVU2498 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7580 .loc 1 3098 22 is_stmt 0 discriminator 2 view .LVU2499 7581 0068 0023 movs r3, #0 7582 006a 4363 str r3, [r0, #52] 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7583 .loc 1 3102 3 is_stmt 1 discriminator 2 view .LVU2500 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7584 .loc 1 3102 12 is_stmt 0 discriminator 2 view .LVU2501 7585 006c 036B ldr r3, [r0, #48] 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7586 .loc 1 3102 6 discriminator 2 view .LVU2502 7587 006e 012B cmp r3, #1 7588 0070 0FD0 beq .L379 3120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7589 .loc 1 3120 5 is_stmt 1 view .LVU2503 7590 0072 FFF7FEFF bl HAL_UART_RxCpltCallback 7591 .LVL688: 7592 .L370: 3123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7593 .loc 1 3123 1 is_stmt 0 view .LVU2504 7594 0076 08BD pop {r3, pc} 7595 .LVL689: 7596 .L375: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7597 .loc 1 3092 7 is_stmt 1 discriminator 1 view .LVU2505 7598 .LBB572: ARM GAS /tmp/cc8UBTH4.s page 249 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7599 .loc 1 3092 7 discriminator 1 view .LVU2506 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7600 .loc 1 3092 7 discriminator 1 view .LVU2507 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7601 .loc 1 3092 7 discriminator 1 view .LVU2508 7602 0078 0268 ldr r2, [r0] 7603 .LVL690: 7604 .LBB573: 7605 .LBI573: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7606 .loc 2 476 31 discriminator 1 view .LVU2509 7607 .LBB574: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7608 .loc 2 478 5 discriminator 1 view .LVU2510 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7609 .loc 2 480 4 discriminator 1 view .LVU2511 7610 007a 02F10C03 add r3, r2, #12 7611 .LVL691: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7612 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2512 7613 .syntax unified 7614 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7615 007e 53E8003F ldrex r3, [r3] 7616 @ 0 "" 2 7617 .LVL692: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7618 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2513 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7619 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2514 7620 .thumb 7621 .syntax unified 7622 .LBE574: 7623 .LBE573: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7624 .loc 1 3092 7 discriminator 1 view .LVU2515 7625 0082 23F01003 bic r3, r3, #16 7626 .LVL693: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7627 .loc 1 3092 7 is_stmt 1 discriminator 1 view .LVU2516 7628 .LBB575: 7629 .LBI575: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7630 .loc 2 527 31 discriminator 1 view .LVU2517 7631 .LBB576: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7632 .loc 2 529 4 discriminator 1 view .LVU2518 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7633 .loc 2 531 4 discriminator 1 view .LVU2519 7634 0086 0C32 adds r2, r2, #12 7635 .LVL694: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7636 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2520 7637 .syntax unified 7638 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7639 0088 42E80031 strex r1, r3, [r2] 7640 @ 0 "" 2 ARM GAS /tmp/cc8UBTH4.s page 250 7641 .LVL695: 7642 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2521 7643 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2522 7644 .thumb 7645 .syntax unified 7646 .LBE576: 7647 .LBE575: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7648 .loc 1 3092 7 discriminator 1 view .LVU2523 7649 008c 0029 cmp r1, #0 7650 008e F3D1 bne .L375 7651 0090 EAE7 b .L371 7652 .LVL696: 7653 .L379: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7654 .loc 1 3092 7 discriminator 1 view .LVU2524 7655 .LBE572: 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7656 .loc 1 3109 5 is_stmt 1 view .LVU2525 7657 0092 818D ldrh r1, [r0, #44] 7658 0094 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7659 .LVL697: 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7660 .loc 1 3109 5 is_stmt 0 view .LVU2526 7661 0098 EDE7 b .L370 7662 .cfi_endproc 7663 .LFE179: 7665 .section .text.HAL_LIN_SendBreak,"ax",%progbits 7666 .align 1 7667 .global HAL_LIN_SendBreak 7668 .syntax unified 7669 .thumb 7670 .thumb_func 7671 .fpu fpv4-sp-d16 7673 HAL_LIN_SendBreak: 7674 .LVL698: 7675 .LFB170: 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7676 .loc 1 2781 1 is_stmt 1 view -0 7677 .cfi_startproc 7678 @ args = 0, pretend = 0, frame = 0 7679 @ frame_needed = 0, uses_anonymous_args = 0 7680 @ link register save eliminated. 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7681 .loc 1 2783 3 view .LVU2528 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7682 .loc 1 2786 3 view .LVU2529 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7683 .loc 1 2786 3 view .LVU2530 7684 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7685 0004 012B cmp r3, #1 7686 0006 19D0 beq .L383 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7687 .loc 1 2786 3 discriminator 2 view .LVU2531 7688 0008 0123 movs r3, #1 7689 000a 80F84030 strb r3, [r0, #64] 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc8UBTH4.s page 251 7690 .loc 1 2786 3 discriminator 2 view .LVU2532 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7691 .loc 1 2788 3 discriminator 2 view .LVU2533 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7692 .loc 1 2788 17 is_stmt 0 discriminator 2 view .LVU2534 7693 000e 2423 movs r3, #36 7694 0010 80F84130 strb r3, [r0, #65] 7695 .L382: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7696 .loc 1 2791 3 is_stmt 1 discriminator 1 view .LVU2535 7697 .LBB577: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7698 .loc 1 2791 3 discriminator 1 view .LVU2536 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7699 .loc 1 2791 3 discriminator 1 view .LVU2537 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7700 .loc 1 2791 3 discriminator 1 view .LVU2538 7701 0014 0268 ldr r2, [r0] 7702 .LVL699: 7703 .LBB578: 7704 .LBI578: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7705 .loc 2 476 31 discriminator 1 view .LVU2539 7706 .LBB579: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7707 .loc 2 478 5 discriminator 1 view .LVU2540 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7708 .loc 2 480 4 discriminator 1 view .LVU2541 7709 0016 02F10C03 add r3, r2, #12 7710 .LVL700: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7711 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2542 7712 .syntax unified 7713 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7714 001a 53E8003F ldrex r3, [r3] 7715 @ 0 "" 2 7716 .LVL701: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7717 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2543 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7718 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2544 7719 .thumb 7720 .syntax unified 7721 .LBE579: 7722 .LBE578: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7723 .loc 1 2791 3 discriminator 1 view .LVU2545 7724 001e 43F00103 orr r3, r3, #1 7725 .LVL702: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7726 .loc 1 2791 3 is_stmt 1 discriminator 1 view .LVU2546 7727 .LBB580: 7728 .LBI580: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7729 .loc 2 527 31 discriminator 1 view .LVU2547 7730 .LBB581: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc8UBTH4.s page 252 7731 .loc 2 529 4 discriminator 1 view .LVU2548 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7732 .loc 2 531 4 discriminator 1 view .LVU2549 7733 0022 0C32 adds r2, r2, #12 7734 .LVL703: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7735 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2550 7736 .syntax unified 7737 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7738 0024 42E80031 strex r1, r3, [r2] 7739 @ 0 "" 2 7740 .LVL704: 7741 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2551 7742 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2552 7743 .thumb 7744 .syntax unified 7745 .LBE581: 7746 .LBE580: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7747 .loc 1 2791 3 discriminator 1 view .LVU2553 7748 0028 0029 cmp r1, #0 7749 002a F3D1 bne .L382 7750 .LBE577: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7751 .loc 1 2791 3 is_stmt 1 discriminator 2 view .LVU2554 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7752 .loc 1 2793 3 discriminator 2 view .LVU2555 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7753 .loc 1 2793 17 is_stmt 0 discriminator 2 view .LVU2556 7754 002c 2023 movs r3, #32 7755 .LVL705: 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7756 .loc 1 2793 17 discriminator 2 view .LVU2557 7757 002e 80F84130 strb r3, [r0, #65] 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7758 .loc 1 2796 3 is_stmt 1 discriminator 2 view .LVU2558 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7759 .loc 1 2796 3 discriminator 2 view .LVU2559 7760 0032 0023 movs r3, #0 7761 0034 80F84030 strb r3, [r0, #64] 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7762 .loc 1 2796 3 discriminator 2 view .LVU2560 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7763 .loc 1 2798 3 discriminator 2 view .LVU2561 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7764 .loc 1 2798 10 is_stmt 0 discriminator 2 view .LVU2562 7765 0038 1846 mov r0, r3 7766 .LVL706: 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7767 .loc 1 2798 10 discriminator 2 view .LVU2563 7768 003a 7047 bx lr 7769 .LVL707: 7770 .L383: 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7771 .loc 1 2786 3 view .LVU2564 7772 003c 0220 movs r0, #2 7773 .LVL708: ARM GAS /tmp/cc8UBTH4.s page 253 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7774 .loc 1 2799 1 view .LVU2565 7775 003e 7047 bx lr 7776 .cfi_endproc 7777 .LFE170: 7779 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 7780 .align 1 7781 .global HAL_MultiProcessor_EnterMuteMode 7782 .syntax unified 7783 .thumb 7784 .thumb_func 7785 .fpu fpv4-sp-d16 7787 HAL_MultiProcessor_EnterMuteMode: 7788 .LVL709: 7789 .LFB171: 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7790 .loc 1 2808 1 is_stmt 1 view -0 7791 .cfi_startproc 7792 @ args = 0, pretend = 0, frame = 0 7793 @ frame_needed = 0, uses_anonymous_args = 0 7794 @ link register save eliminated. 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7795 .loc 1 2810 3 view .LVU2567 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7796 .loc 1 2813 3 view .LVU2568 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7797 .loc 1 2813 3 view .LVU2569 7798 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7799 0004 012B cmp r3, #1 7800 0006 1AD0 beq .L387 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7801 .loc 1 2813 3 discriminator 2 view .LVU2570 7802 0008 0123 movs r3, #1 7803 000a 80F84030 strb r3, [r0, #64] 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7804 .loc 1 2813 3 discriminator 2 view .LVU2571 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7805 .loc 1 2815 3 discriminator 2 view .LVU2572 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7806 .loc 1 2815 17 is_stmt 0 discriminator 2 view .LVU2573 7807 000e 2423 movs r3, #36 7808 0010 80F84130 strb r3, [r0, #65] 7809 .L386: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7810 .loc 1 2818 3 is_stmt 1 discriminator 1 view .LVU2574 7811 .LBB582: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7812 .loc 1 2818 3 discriminator 1 view .LVU2575 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7813 .loc 1 2818 3 discriminator 1 view .LVU2576 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7814 .loc 1 2818 3 discriminator 1 view .LVU2577 7815 0014 0268 ldr r2, [r0] 7816 .LVL710: 7817 .LBB583: 7818 .LBI583: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS /tmp/cc8UBTH4.s page 254 7819 .loc 2 476 31 discriminator 1 view .LVU2578 7820 .LBB584: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7821 .loc 2 478 5 discriminator 1 view .LVU2579 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7822 .loc 2 480 4 discriminator 1 view .LVU2580 7823 0016 02F10C03 add r3, r2, #12 7824 .LVL711: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7825 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2581 7826 .syntax unified 7827 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7828 001a 53E8003F ldrex r3, [r3] 7829 @ 0 "" 2 7830 .LVL712: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7831 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2582 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7832 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2583 7833 .thumb 7834 .syntax unified 7835 .LBE584: 7836 .LBE583: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7837 .loc 1 2818 3 discriminator 1 view .LVU2584 7838 001e 43F00203 orr r3, r3, #2 7839 .LVL713: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7840 .loc 1 2818 3 is_stmt 1 discriminator 1 view .LVU2585 7841 .LBB585: 7842 .LBI585: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7843 .loc 2 527 31 discriminator 1 view .LVU2586 7844 .LBB586: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7845 .loc 2 529 4 discriminator 1 view .LVU2587 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7846 .loc 2 531 4 discriminator 1 view .LVU2588 7847 0022 0C32 adds r2, r2, #12 7848 .LVL714: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7849 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2589 7850 .syntax unified 7851 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7852 0024 42E80031 strex r1, r3, [r2] 7853 @ 0 "" 2 7854 .LVL715: 7855 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2590 7856 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2591 7857 .thumb 7858 .syntax unified 7859 .LBE586: 7860 .LBE585: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7861 .loc 1 2818 3 discriminator 1 view .LVU2592 7862 0028 0029 cmp r1, #0 7863 002a F3D1 bne .L386 ARM GAS /tmp/cc8UBTH4.s page 255 7864 .LBE582: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7865 .loc 1 2818 3 is_stmt 1 discriminator 2 view .LVU2593 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7866 .loc 1 2820 3 discriminator 2 view .LVU2594 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7867 .loc 1 2820 17 is_stmt 0 discriminator 2 view .LVU2595 7868 002c 2023 movs r3, #32 7869 .LVL716: 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7870 .loc 1 2820 17 discriminator 2 view .LVU2596 7871 002e 80F84130 strb r3, [r0, #65] 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7872 .loc 1 2821 3 is_stmt 1 discriminator 2 view .LVU2597 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7873 .loc 1 2821 22 is_stmt 0 discriminator 2 view .LVU2598 7874 0032 0023 movs r3, #0 7875 0034 4363 str r3, [r0, #52] 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7876 .loc 1 2824 3 is_stmt 1 discriminator 2 view .LVU2599 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7877 .loc 1 2824 3 discriminator 2 view .LVU2600 7878 0036 80F84030 strb r3, [r0, #64] 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7879 .loc 1 2824 3 discriminator 2 view .LVU2601 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7880 .loc 1 2826 3 discriminator 2 view .LVU2602 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7881 .loc 1 2826 10 is_stmt 0 discriminator 2 view .LVU2603 7882 003a 1846 mov r0, r3 7883 .LVL717: 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7884 .loc 1 2826 10 discriminator 2 view .LVU2604 7885 003c 7047 bx lr 7886 .LVL718: 7887 .L387: 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7888 .loc 1 2813 3 view .LVU2605 7889 003e 0220 movs r0, #2 7890 .LVL719: 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7891 .loc 1 2827 1 view .LVU2606 7892 0040 7047 bx lr 7893 .cfi_endproc 7894 .LFE171: 7896 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits 7897 .align 1 7898 .global HAL_MultiProcessor_ExitMuteMode 7899 .syntax unified 7900 .thumb 7901 .thumb_func 7902 .fpu fpv4-sp-d16 7904 HAL_MultiProcessor_ExitMuteMode: 7905 .LVL720: 7906 .LFB172: 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7907 .loc 1 2836 1 is_stmt 1 view -0 ARM GAS /tmp/cc8UBTH4.s page 256 7908 .cfi_startproc 7909 @ args = 0, pretend = 0, frame = 0 7910 @ frame_needed = 0, uses_anonymous_args = 0 7911 @ link register save eliminated. 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7912 .loc 1 2838 3 view .LVU2608 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7913 .loc 1 2841 3 view .LVU2609 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7914 .loc 1 2841 3 view .LVU2610 7915 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7916 0004 012B cmp r3, #1 7917 0006 1AD0 beq .L391 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7918 .loc 1 2841 3 discriminator 2 view .LVU2611 7919 0008 0123 movs r3, #1 7920 000a 80F84030 strb r3, [r0, #64] 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7921 .loc 1 2841 3 discriminator 2 view .LVU2612 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7922 .loc 1 2843 3 discriminator 2 view .LVU2613 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7923 .loc 1 2843 17 is_stmt 0 discriminator 2 view .LVU2614 7924 000e 2423 movs r3, #36 7925 0010 80F84130 strb r3, [r0, #65] 7926 .L390: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7927 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU2615 7928 .LBB587: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7929 .loc 1 2846 3 discriminator 1 view .LVU2616 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7930 .loc 1 2846 3 discriminator 1 view .LVU2617 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7931 .loc 1 2846 3 discriminator 1 view .LVU2618 7932 0014 0268 ldr r2, [r0] 7933 .LVL721: 7934 .LBB588: 7935 .LBI588: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7936 .loc 2 476 31 discriminator 1 view .LVU2619 7937 .LBB589: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7938 .loc 2 478 5 discriminator 1 view .LVU2620 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7939 .loc 2 480 4 discriminator 1 view .LVU2621 7940 0016 02F10C03 add r3, r2, #12 7941 .LVL722: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7942 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2622 7943 .syntax unified 7944 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7945 001a 53E8003F ldrex r3, [r3] 7946 @ 0 "" 2 7947 .LVL723: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7948 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2623 ARM GAS /tmp/cc8UBTH4.s page 257 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7949 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2624 7950 .thumb 7951 .syntax unified 7952 .LBE589: 7953 .LBE588: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7954 .loc 1 2846 3 discriminator 1 view .LVU2625 7955 001e 23F00203 bic r3, r3, #2 7956 .LVL724: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7957 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU2626 7958 .LBB590: 7959 .LBI590: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7960 .loc 2 527 31 discriminator 1 view .LVU2627 7961 .LBB591: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7962 .loc 2 529 4 discriminator 1 view .LVU2628 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7963 .loc 2 531 4 discriminator 1 view .LVU2629 7964 0022 0C32 adds r2, r2, #12 7965 .LVL725: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7966 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2630 7967 .syntax unified 7968 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7969 0024 42E80031 strex r1, r3, [r2] 7970 @ 0 "" 2 7971 .LVL726: 7972 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2631 7973 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2632 7974 .thumb 7975 .syntax unified 7976 .LBE591: 7977 .LBE590: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7978 .loc 1 2846 3 discriminator 1 view .LVU2633 7979 0028 0029 cmp r1, #0 7980 002a F3D1 bne .L390 7981 .LBE587: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7982 .loc 1 2846 3 is_stmt 1 discriminator 2 view .LVU2634 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7983 .loc 1 2848 3 discriminator 2 view .LVU2635 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7984 .loc 1 2848 17 is_stmt 0 discriminator 2 view .LVU2636 7985 002c 2023 movs r3, #32 7986 .LVL727: 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7987 .loc 1 2848 17 discriminator 2 view .LVU2637 7988 002e 80F84130 strb r3, [r0, #65] 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7989 .loc 1 2849 3 is_stmt 1 discriminator 2 view .LVU2638 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7990 .loc 1 2849 22 is_stmt 0 discriminator 2 view .LVU2639 7991 0032 0023 movs r3, #0 ARM GAS /tmp/cc8UBTH4.s page 258 7992 0034 4363 str r3, [r0, #52] 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7993 .loc 1 2852 3 is_stmt 1 discriminator 2 view .LVU2640 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7994 .loc 1 2852 3 discriminator 2 view .LVU2641 7995 0036 80F84030 strb r3, [r0, #64] 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7996 .loc 1 2852 3 discriminator 2 view .LVU2642 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7997 .loc 1 2854 3 discriminator 2 view .LVU2643 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7998 .loc 1 2854 10 is_stmt 0 discriminator 2 view .LVU2644 7999 003a 1846 mov r0, r3 8000 .LVL728: 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8001 .loc 1 2854 10 discriminator 2 view .LVU2645 8002 003c 7047 bx lr 8003 .LVL729: 8004 .L391: 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8005 .loc 1 2841 3 view .LVU2646 8006 003e 0220 movs r0, #2 8007 .LVL730: 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8008 .loc 1 2855 1 view .LVU2647 8009 0040 7047 bx lr 8010 .cfi_endproc 8011 .LFE172: 8013 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 8014 .align 1 8015 .global HAL_HalfDuplex_EnableTransmitter 8016 .syntax unified 8017 .thumb 8018 .thumb_func 8019 .fpu fpv4-sp-d16 8021 HAL_HalfDuplex_EnableTransmitter: 8022 .LVL731: 8023 .LFB173: 2864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 8024 .loc 1 2864 1 is_stmt 1 view -0 8025 .cfi_startproc 8026 @ args = 0, pretend = 0, frame = 0 8027 @ frame_needed = 0, uses_anonymous_args = 0 8028 @ link register save eliminated. 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8029 .loc 1 2865 3 view .LVU2649 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8030 .loc 1 2868 3 view .LVU2650 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8031 .loc 1 2868 3 view .LVU2651 8032 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 8033 0004 012B cmp r3, #1 8034 0006 14D0 beq .L394 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8035 .loc 1 2868 3 discriminator 2 view .LVU2652 8036 0008 0123 movs r3, #1 8037 000a 80F84030 strb r3, [r0, #64] ARM GAS /tmp/cc8UBTH4.s page 259 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8038 .loc 1 2868 3 discriminator 2 view .LVU2653 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8039 .loc 1 2870 3 discriminator 2 view .LVU2654 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8040 .loc 1 2870 17 is_stmt 0 discriminator 2 view .LVU2655 8041 000e 2423 movs r3, #36 8042 0010 80F84130 strb r3, [r0, #65] 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8043 .loc 1 2873 3 is_stmt 1 discriminator 2 view .LVU2656 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8044 .loc 1 2873 17 is_stmt 0 discriminator 2 view .LVU2657 8045 0014 0268 ldr r2, [r0] 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8046 .loc 1 2873 10 discriminator 2 view .LVU2658 8047 0016 D368 ldr r3, [r2, #12] 8048 .LVL732: 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8049 .loc 1 2876 3 is_stmt 1 discriminator 2 view .LVU2659 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8050 .loc 1 2876 10 is_stmt 0 discriminator 2 view .LVU2660 8051 0018 23F00C03 bic r3, r3, #12 8052 .LVL733: 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8053 .loc 1 2879 3 is_stmt 1 discriminator 2 view .LVU2661 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8054 .loc 1 2879 10 is_stmt 0 discriminator 2 view .LVU2662 8055 001c 43F00803 orr r3, r3, #8 8056 .LVL734: 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8057 .loc 1 2882 3 is_stmt 1 discriminator 2 view .LVU2663 8058 0020 D360 str r3, [r2, #12] 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8059 .loc 1 2884 3 discriminator 2 view .LVU2664 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8060 .loc 1 2884 17 is_stmt 0 discriminator 2 view .LVU2665 8061 0022 2023 movs r3, #32 8062 .LVL735: 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8063 .loc 1 2884 17 discriminator 2 view .LVU2666 8064 0024 80F84130 strb r3, [r0, #65] 8065 .LVL736: 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8066 .loc 1 2887 3 is_stmt 1 discriminator 2 view .LVU2667 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8067 .loc 1 2887 3 discriminator 2 view .LVU2668 8068 0028 0023 movs r3, #0 8069 002a 80F84030 strb r3, [r0, #64] 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8070 .loc 1 2887 3 discriminator 2 view .LVU2669 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8071 .loc 1 2889 3 discriminator 2 view .LVU2670 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8072 .loc 1 2889 10 is_stmt 0 discriminator 2 view .LVU2671 8073 002e 1846 mov r0, r3 8074 .LVL737: 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 260 8075 .loc 1 2889 10 discriminator 2 view .LVU2672 8076 0030 7047 bx lr 8077 .LVL738: 8078 .L394: 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8079 .loc 1 2868 3 view .LVU2673 8080 0032 0220 movs r0, #2 8081 .LVL739: 2890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8082 .loc 1 2890 1 view .LVU2674 8083 0034 7047 bx lr 8084 .cfi_endproc 8085 .LFE173: 8087 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 8088 .align 1 8089 .global HAL_HalfDuplex_EnableReceiver 8090 .syntax unified 8091 .thumb 8092 .thumb_func 8093 .fpu fpv4-sp-d16 8095 HAL_HalfDuplex_EnableReceiver: 8096 .LVL740: 8097 .LFB174: 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 8098 .loc 1 2899 1 is_stmt 1 view -0 8099 .cfi_startproc 8100 @ args = 0, pretend = 0, frame = 0 8101 @ frame_needed = 0, uses_anonymous_args = 0 8102 @ link register save eliminated. 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8103 .loc 1 2900 3 view .LVU2676 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8104 .loc 1 2903 3 view .LVU2677 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8105 .loc 1 2903 3 view .LVU2678 8106 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 8107 0004 012B cmp r3, #1 8108 0006 14D0 beq .L397 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8109 .loc 1 2903 3 discriminator 2 view .LVU2679 8110 0008 0123 movs r3, #1 8111 000a 80F84030 strb r3, [r0, #64] 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8112 .loc 1 2903 3 discriminator 2 view .LVU2680 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8113 .loc 1 2905 3 discriminator 2 view .LVU2681 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8114 .loc 1 2905 17 is_stmt 0 discriminator 2 view .LVU2682 8115 000e 2423 movs r3, #36 8116 0010 80F84130 strb r3, [r0, #65] 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8117 .loc 1 2908 3 is_stmt 1 discriminator 2 view .LVU2683 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8118 .loc 1 2908 17 is_stmt 0 discriminator 2 view .LVU2684 8119 0014 0268 ldr r2, [r0] 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8120 .loc 1 2908 10 discriminator 2 view .LVU2685 ARM GAS /tmp/cc8UBTH4.s page 261 8121 0016 D368 ldr r3, [r2, #12] 8122 .LVL741: 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8123 .loc 1 2911 3 is_stmt 1 discriminator 2 view .LVU2686 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8124 .loc 1 2911 10 is_stmt 0 discriminator 2 view .LVU2687 8125 0018 23F00C03 bic r3, r3, #12 8126 .LVL742: 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8127 .loc 1 2914 3 is_stmt 1 discriminator 2 view .LVU2688 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8128 .loc 1 2914 10 is_stmt 0 discriminator 2 view .LVU2689 8129 001c 43F00403 orr r3, r3, #4 8130 .LVL743: 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8131 .loc 1 2917 3 is_stmt 1 discriminator 2 view .LVU2690 8132 0020 D360 str r3, [r2, #12] 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8133 .loc 1 2919 3 discriminator 2 view .LVU2691 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8134 .loc 1 2919 17 is_stmt 0 discriminator 2 view .LVU2692 8135 0022 2023 movs r3, #32 8136 .LVL744: 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8137 .loc 1 2919 17 discriminator 2 view .LVU2693 8138 0024 80F84130 strb r3, [r0, #65] 8139 .LVL745: 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8140 .loc 1 2922 3 is_stmt 1 discriminator 2 view .LVU2694 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8141 .loc 1 2922 3 discriminator 2 view .LVU2695 8142 0028 0023 movs r3, #0 8143 002a 80F84030 strb r3, [r0, #64] 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8144 .loc 1 2922 3 discriminator 2 view .LVU2696 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8145 .loc 1 2924 3 discriminator 2 view .LVU2697 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8146 .loc 1 2924 10 is_stmt 0 discriminator 2 view .LVU2698 8147 002e 1846 mov r0, r3 8148 .LVL746: 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8149 .loc 1 2924 10 discriminator 2 view .LVU2699 8150 0030 7047 bx lr 8151 .LVL747: 8152 .L397: 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8153 .loc 1 2903 3 view .LVU2700 8154 0032 0220 movs r0, #2 8155 .LVL748: 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8156 .loc 1 2925 1 view .LVU2701 8157 0034 7047 bx lr 8158 .cfi_endproc 8159 .LFE174: 8161 .section .text.HAL_UART_GetState,"ax",%progbits 8162 .align 1 ARM GAS /tmp/cc8UBTH4.s page 262 8163 .global HAL_UART_GetState 8164 .syntax unified 8165 .thumb 8166 .thumb_func 8167 .fpu fpv4-sp-d16 8169 HAL_UART_GetState: 8170 .LVL749: 8171 .LFB175: 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 8172 .loc 1 2956 1 is_stmt 1 view -0 8173 .cfi_startproc 8174 @ args = 0, pretend = 0, frame = 0 8175 @ frame_needed = 0, uses_anonymous_args = 0 8176 @ link register save eliminated. 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 8177 .loc 1 2957 3 view .LVU2703 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 8178 .loc 1 2958 3 view .LVU2704 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 8179 .loc 1 2958 16 is_stmt 0 view .LVU2705 8180 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 8181 .LVL750: 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8182 .loc 1 2959 3 is_stmt 1 view .LVU2706 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8183 .loc 1 2959 16 is_stmt 0 view .LVU2707 8184 0004 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 8185 .LVL751: 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8186 .loc 1 2961 3 is_stmt 1 view .LVU2708 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8187 .loc 1 2962 1 is_stmt 0 view .LVU2709 8188 0008 1843 orrs r0, r0, r3 8189 .LVL752: 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8190 .loc 1 2962 1 view .LVU2710 8191 000a 7047 bx lr 8192 .cfi_endproc 8193 .LFE175: 8195 .section .text.HAL_UART_GetError,"ax",%progbits 8196 .align 1 8197 .global HAL_UART_GetError 8198 .syntax unified 8199 .thumb 8200 .thumb_func 8201 .fpu fpv4-sp-d16 8203 HAL_UART_GetError: 8204 .LVL753: 8205 .LFB176: 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 8206 .loc 1 2971 1 is_stmt 1 view -0 8207 .cfi_startproc 8208 @ args = 0, pretend = 0, frame = 0 8209 @ frame_needed = 0, uses_anonymous_args = 0 8210 @ link register save eliminated. 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8211 .loc 1 2972 3 view .LVU2712 ARM GAS /tmp/cc8UBTH4.s page 263 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8212 .loc 1 2972 15 is_stmt 0 view .LVU2713 8213 0000 406C ldr r0, [r0, #68] 8214 .LVL754: 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8215 .loc 1 2973 1 view .LVU2714 8216 0002 7047 bx lr 8217 .cfi_endproc 8218 .LFE176: 8220 .section .text.UART_Start_Receive_IT,"ax",%progbits 8221 .align 1 8222 .global UART_Start_Receive_IT 8223 .syntax unified 8224 .thumb 8225 .thumb_func 8226 .fpu fpv4-sp-d16 8228 UART_Start_Receive_IT: 8229 .LVL755: 8230 .LFB183: 3264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 8231 .loc 1 3264 1 is_stmt 1 view -0 8232 .cfi_startproc 8233 @ args = 0, pretend = 0, frame = 0 8234 @ frame_needed = 0, uses_anonymous_args = 0 8235 @ link register save eliminated. 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8236 .loc 1 3265 3 view .LVU2716 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8237 .loc 1 3265 21 is_stmt 0 view .LVU2717 8238 0000 8162 str r1, [r0, #40] 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 8239 .loc 1 3266 3 is_stmt 1 view .LVU2718 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 8240 .loc 1 3266 21 is_stmt 0 view .LVU2719 8241 0002 8285 strh r2, [r0, #44] @ movhi 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8242 .loc 1 3267 3 is_stmt 1 view .LVU2720 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8243 .loc 1 3267 22 is_stmt 0 view .LVU2721 8244 0004 C285 strh r2, [r0, #46] @ movhi 3269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8245 .loc 1 3269 3 is_stmt 1 view .LVU2722 3269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8246 .loc 1 3269 20 is_stmt 0 view .LVU2723 8247 0006 0023 movs r3, #0 8248 0008 4364 str r3, [r0, #68] 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8249 .loc 1 3270 3 is_stmt 1 view .LVU2724 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8250 .loc 1 3270 18 is_stmt 0 view .LVU2725 8251 000a 2223 movs r3, #34 8252 000c 80F84230 strb r3, [r0, #66] 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8253 .loc 1 3272 3 is_stmt 1 view .LVU2726 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8254 .loc 1 3272 18 is_stmt 0 view .LVU2727 8255 0010 0369 ldr r3, [r0, #16] ARM GAS /tmp/cc8UBTH4.s page 264 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8256 .loc 1 3272 6 view .LVU2728 8257 0012 23B1 cbz r3, .L401 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8258 .loc 1 3275 5 is_stmt 1 view .LVU2729 8259 0014 0268 ldr r2, [r0] 8260 .LVL756: 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8261 .loc 1 3275 5 is_stmt 0 view .LVU2730 8262 0016 D368 ldr r3, [r2, #12] 8263 0018 43F48073 orr r3, r3, #256 8264 001c D360 str r3, [r2, #12] 8265 .LVL757: 8266 .L401: 3279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8267 .loc 1 3279 3 is_stmt 1 view .LVU2731 8268 001e 0268 ldr r2, [r0] 8269 0020 5369 ldr r3, [r2, #20] 8270 0022 43F00103 orr r3, r3, #1 8271 0026 5361 str r3, [r2, #20] 3282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8272 .loc 1 3282 3 view .LVU2732 8273 0028 0268 ldr r2, [r0] 8274 002a D368 ldr r3, [r2, #12] 8275 002c 43F02003 orr r3, r3, #32 8276 0030 D360 str r3, [r2, #12] 3284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8277 .loc 1 3284 3 view .LVU2733 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8278 .loc 1 3285 1 is_stmt 0 view .LVU2734 8279 0032 0020 movs r0, #0 8280 .LVL758: 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8281 .loc 1 3285 1 view .LVU2735 8282 0034 7047 bx lr 8283 .cfi_endproc 8284 .LFE183: 8286 .section .text.HAL_UART_Receive_IT,"ax",%progbits 8287 .align 1 8288 .global HAL_UART_Receive_IT 8289 .syntax unified 8290 .thumb 8291 .thumb_func 8292 .fpu fpv4-sp-d16 8294 HAL_UART_Receive_IT: 8295 .LVL759: 8296 .LFB144: 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8297 .loc 1 1348 1 is_stmt 1 view -0 8298 .cfi_startproc 8299 @ args = 0, pretend = 0, frame = 0 8300 @ frame_needed = 0, uses_anonymous_args = 0 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8301 .loc 1 1348 1 is_stmt 0 view .LVU2737 8302 0000 08B5 push {r3, lr} 8303 .LCFI58: 8304 .cfi_def_cfa_offset 8 ARM GAS /tmp/cc8UBTH4.s page 265 8305 .cfi_offset 3, -8 8306 .cfi_offset 14, -4 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8307 .loc 1 1350 3 is_stmt 1 view .LVU2738 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8308 .loc 1 1350 12 is_stmt 0 view .LVU2739 8309 0002 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8310 0006 DBB2 uxtb r3, r3 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8311 .loc 1 1350 6 view .LVU2740 8312 0008 202B cmp r3, #32 8313 000a 08D1 bne .L404 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8314 .loc 1 1352 5 is_stmt 1 view .LVU2741 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8315 .loc 1 1352 8 is_stmt 0 view .LVU2742 8316 000c 49B1 cbz r1, .L405 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8317 .loc 1 1352 25 discriminator 1 view .LVU2743 8318 000e 0AB9 cbnz r2, .L408 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8319 .loc 1 1354 14 view .LVU2744 8320 0010 0120 movs r0, #1 8321 .LVL760: 8322 .L403: 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8323 .loc 1 1366 1 view .LVU2745 8324 0012 08BD pop {r3, pc} 8325 .LVL761: 8326 .L408: 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8327 .loc 1 1358 5 is_stmt 1 view .LVU2746 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8328 .loc 1 1358 26 is_stmt 0 view .LVU2747 8329 0014 0023 movs r3, #0 8330 0016 0363 str r3, [r0, #48] 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8331 .loc 1 1360 5 is_stmt 1 view .LVU2748 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8332 .loc 1 1360 13 is_stmt 0 view .LVU2749 8333 0018 FFF7FEFF bl UART_Start_Receive_IT 8334 .LVL762: 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8335 .loc 1 1360 13 view .LVU2750 8336 001c F9E7 b .L403 8337 .LVL763: 8338 .L404: 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8339 .loc 1 1364 12 view .LVU2751 8340 001e 0220 movs r0, #2 8341 .LVL764: 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8342 .loc 1 1364 12 view .LVU2752 8343 0020 F7E7 b .L403 8344 .LVL765: 8345 .L405: 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 266 8346 .loc 1 1354 14 view .LVU2753 8347 0022 0120 movs r0, #1 8348 .LVL766: 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8349 .loc 1 1354 14 view .LVU2754 8350 0024 F5E7 b .L403 8351 .cfi_endproc 8352 .LFE144: 8354 .section .text.HAL_UARTEx_ReceiveToIdle_IT,"ax",%progbits 8355 .align 1 8356 .global HAL_UARTEx_ReceiveToIdle_IT 8357 .syntax unified 8358 .thumb 8359 .thumb_func 8360 .fpu fpv4-sp-d16 8362 HAL_UARTEx_ReceiveToIdle_IT: 8363 .LVL767: 8364 .LFB151: 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8365 .loc 1 1722 1 is_stmt 1 view -0 8366 .cfi_startproc 8367 @ args = 0, pretend = 0, frame = 8 8368 @ frame_needed = 0, uses_anonymous_args = 0 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8369 .loc 1 1723 3 view .LVU2756 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8370 .loc 1 1726 3 view .LVU2757 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8371 .loc 1 1726 12 is_stmt 0 view .LVU2758 8372 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8373 0004 DBB2 uxtb r3, r3 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8374 .loc 1 1726 6 view .LVU2759 8375 0006 202B cmp r3, #32 8376 0008 29D1 bne .L413 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8377 .loc 1 1722 1 view .LVU2760 8378 000a 10B5 push {r4, lr} 8379 .LCFI59: 8380 .cfi_def_cfa_offset 8 8381 .cfi_offset 4, -8 8382 .cfi_offset 14, -4 8383 000c 82B0 sub sp, sp, #8 8384 .LCFI60: 8385 .cfi_def_cfa_offset 16 8386 000e 0446 mov r4, r0 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8387 .loc 1 1728 5 is_stmt 1 view .LVU2761 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8388 .loc 1 1728 8 is_stmt 0 view .LVU2762 8389 0010 39B3 cbz r1, .L414 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8390 .loc 1 1728 25 discriminator 1 view .LVU2763 8391 0012 12B9 cbnz r2, .L421 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8392 .loc 1 1730 14 view .LVU2764 8393 0014 0120 movs r0, #1 ARM GAS /tmp/cc8UBTH4.s page 267 8394 .LVL768: 8395 .L410: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8396 .loc 1 1763 1 view .LVU2765 8397 0016 02B0 add sp, sp, #8 8398 .LCFI61: 8399 .cfi_remember_state 8400 .cfi_def_cfa_offset 8 8401 @ sp needed 8402 0018 10BD pop {r4, pc} 8403 .LVL769: 8404 .L421: 8405 .LCFI62: 8406 .cfi_restore_state 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8407 .loc 1 1734 5 is_stmt 1 view .LVU2766 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8408 .loc 1 1734 26 is_stmt 0 view .LVU2767 8409 001a 0123 movs r3, #1 8410 001c 0363 str r3, [r0, #48] 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8411 .loc 1 1735 5 is_stmt 1 view .LVU2768 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8412 .loc 1 1735 24 is_stmt 0 view .LVU2769 8413 001e 0023 movs r3, #0 8414 0020 4363 str r3, [r0, #52] 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8415 .loc 1 1737 5 is_stmt 1 view .LVU2770 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8416 .loc 1 1737 15 is_stmt 0 view .LVU2771 8417 0022 FFF7FEFF bl UART_Start_Receive_IT 8418 .LVL770: 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8419 .loc 1 1740 5 is_stmt 1 view .LVU2772 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8420 .loc 1 1740 8 is_stmt 0 view .LVU2773 8421 0026 0028 cmp r0, #0 8422 0028 F5D1 bne .L410 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8423 .loc 1 1742 7 is_stmt 1 view .LVU2774 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8424 .loc 1 1742 16 is_stmt 0 view .LVU2775 8425 002a 236B ldr r3, [r4, #48] 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8426 .loc 1 1742 10 view .LVU2776 8427 002c 012B cmp r3, #1 8428 002e 01D0 beq .L422 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8429 .loc 1 1753 16 view .LVU2777 8430 0030 0120 movs r0, #1 8431 .LVL771: 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8432 .loc 1 1757 5 is_stmt 1 view .LVU2778 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8433 .loc 1 1757 12 is_stmt 0 view .LVU2779 8434 0032 F0E7 b .L410 8435 .LVL772: ARM GAS /tmp/cc8UBTH4.s page 268 8436 .L422: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8437 .loc 1 1744 9 is_stmt 1 view .LVU2780 8438 .LBB592: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8439 .loc 1 1744 9 view .LVU2781 8440 0034 0023 movs r3, #0 8441 0036 0193 str r3, [sp, #4] 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8442 .loc 1 1744 9 view .LVU2782 8443 0038 2368 ldr r3, [r4] 8444 003a 1A68 ldr r2, [r3] 8445 003c 0192 str r2, [sp, #4] 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8446 .loc 1 1744 9 view .LVU2783 8447 003e 5B68 ldr r3, [r3, #4] 8448 0040 0193 str r3, [sp, #4] 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8449 .loc 1 1744 9 view .LVU2784 8450 0042 019B ldr r3, [sp, #4] 8451 .L412: 8452 .LBE592: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8453 .loc 1 1744 9 discriminator 1 view .LVU2785 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8454 .loc 1 1745 9 discriminator 1 view .LVU2786 8455 .LBB593: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8456 .loc 1 1745 9 discriminator 1 view .LVU2787 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8457 .loc 1 1745 9 discriminator 1 view .LVU2788 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8458 .loc 1 1745 9 discriminator 1 view .LVU2789 8459 0044 2268 ldr r2, [r4] 8460 .LVL773: 8461 .LBB594: 8462 .LBI594: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8463 .loc 2 476 31 discriminator 1 view .LVU2790 8464 .LBB595: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8465 .loc 2 478 5 discriminator 1 view .LVU2791 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8466 .loc 2 480 4 discriminator 1 view .LVU2792 8467 0046 02F10C03 add r3, r2, #12 8468 .LVL774: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8469 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2793 8470 .syntax unified 8471 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8472 004a 53E8003F ldrex r3, [r3] 8473 @ 0 "" 2 8474 .LVL775: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8475 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2794 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8476 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2795 ARM GAS /tmp/cc8UBTH4.s page 269 8477 .thumb 8478 .syntax unified 8479 .LBE595: 8480 .LBE594: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8481 .loc 1 1745 9 discriminator 1 view .LVU2796 8482 004e 43F01003 orr r3, r3, #16 8483 .LVL776: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8484 .loc 1 1745 9 is_stmt 1 discriminator 1 view .LVU2797 8485 .LBB596: 8486 .LBI596: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8487 .loc 2 527 31 discriminator 1 view .LVU2798 8488 .LBB597: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8489 .loc 2 529 4 discriminator 1 view .LVU2799 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8490 .loc 2 531 4 discriminator 1 view .LVU2800 8491 0052 0C32 adds r2, r2, #12 8492 .LVL777: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8493 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2801 8494 .syntax unified 8495 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8496 0054 42E80031 strex r1, r3, [r2] 8497 @ 0 "" 2 8498 .LVL778: 8499 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2802 8500 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2803 8501 .thumb 8502 .syntax unified 8503 .LBE597: 8504 .LBE596: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8505 .loc 1 1745 9 discriminator 1 view .LVU2804 8506 0058 0029 cmp r1, #0 8507 005a F3D1 bne .L412 8508 005c DBE7 b .L410 8509 .LVL779: 8510 .L413: 8511 .LCFI63: 8512 .cfi_def_cfa_offset 0 8513 .cfi_restore 4 8514 .cfi_restore 14 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8515 .loc 1 1745 9 discriminator 1 view .LVU2805 8516 .LBE593: 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8517 .loc 1 1761 12 view .LVU2806 8518 005e 0220 movs r0, #2 8519 .LVL780: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8520 .loc 1 1763 1 view .LVU2807 8521 0060 7047 bx lr 8522 .LVL781: 8523 .L414: ARM GAS /tmp/cc8UBTH4.s page 270 8524 .LCFI64: 8525 .cfi_def_cfa_offset 16 8526 .cfi_offset 4, -8 8527 .cfi_offset 14, -4 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8528 .loc 1 1730 14 view .LVU2808 8529 0062 0120 movs r0, #1 8530 .LVL782: 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8531 .loc 1 1730 14 view .LVU2809 8532 0064 D7E7 b .L410 8533 .cfi_endproc 8534 .LFE151: 8536 .section .text.UART_Start_Receive_DMA,"ax",%progbits 8537 .align 1 8538 .global UART_Start_Receive_DMA 8539 .syntax unified 8540 .thumb 8541 .thumb_func 8542 .fpu fpv4-sp-d16 8544 UART_Start_Receive_DMA: 8545 .LVL783: 8546 .LFB184: 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 8547 .loc 1 3299 1 is_stmt 1 view -0 8548 .cfi_startproc 8549 @ args = 0, pretend = 0, frame = 8 8550 @ frame_needed = 0, uses_anonymous_args = 0 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 8551 .loc 1 3299 1 is_stmt 0 view .LVU2811 8552 0000 30B5 push {r4, r5, lr} 8553 .LCFI65: 8554 .cfi_def_cfa_offset 12 8555 .cfi_offset 4, -12 8556 .cfi_offset 5, -8 8557 .cfi_offset 14, -4 8558 0002 83B0 sub sp, sp, #12 8559 .LCFI66: 8560 .cfi_def_cfa_offset 24 8561 0004 0446 mov r4, r0 8562 0006 1346 mov r3, r2 3300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8563 .loc 1 3300 3 is_stmt 1 view .LVU2812 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8564 .loc 1 3302 3 view .LVU2813 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8565 .loc 1 3302 21 is_stmt 0 view .LVU2814 8566 0008 8162 str r1, [r0, #40] 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8567 .loc 1 3303 3 is_stmt 1 view .LVU2815 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8568 .loc 1 3303 21 is_stmt 0 view .LVU2816 8569 000a 8285 strh r2, [r0, #44] @ movhi 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8570 .loc 1 3305 3 is_stmt 1 view .LVU2817 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8571 .loc 1 3305 20 is_stmt 0 view .LVU2818 ARM GAS /tmp/cc8UBTH4.s page 271 8572 000c 0022 movs r2, #0 8573 .LVL784: 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8574 .loc 1 3305 20 view .LVU2819 8575 000e 4264 str r2, [r0, #68] 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8576 .loc 1 3306 3 is_stmt 1 view .LVU2820 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8577 .loc 1 3306 18 is_stmt 0 view .LVU2821 8578 0010 2220 movs r0, #34 8579 .LVL785: 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8580 .loc 1 3306 18 view .LVU2822 8581 0012 84F84200 strb r0, [r4, #66] 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8582 .loc 1 3309 3 is_stmt 1 view .LVU2823 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8583 .loc 1 3309 8 is_stmt 0 view .LVU2824 8584 0016 E06B ldr r0, [r4, #60] 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8585 .loc 1 3309 35 view .LVU2825 8586 0018 244D ldr r5, .L432 8587 001a C563 str r5, [r0, #60] 8588 .LVL786: 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8589 .loc 1 3312 3 is_stmt 1 view .LVU2826 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8590 .loc 1 3312 8 is_stmt 0 view .LVU2827 8591 001c E06B ldr r0, [r4, #60] 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8592 .loc 1 3312 39 view .LVU2828 8593 001e 244D ldr r5, .L432+4 8594 0020 0564 str r5, [r0, #64] 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8595 .loc 1 3315 3 is_stmt 1 view .LVU2829 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8596 .loc 1 3315 8 is_stmt 0 view .LVU2830 8597 0022 E06B ldr r0, [r4, #60] 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8598 .loc 1 3315 36 view .LVU2831 8599 0024 234D ldr r5, .L432+8 8600 0026 C564 str r5, [r0, #76] 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8601 .loc 1 3318 3 is_stmt 1 view .LVU2832 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8602 .loc 1 3318 8 is_stmt 0 view .LVU2833 8603 0028 E06B ldr r0, [r4, #60] 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8604 .loc 1 3318 36 view .LVU2834 8605 002a 0265 str r2, [r0, #80] 3321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->DR, *(uint32_t *)tmp, Size) != HA 8606 .loc 1 3321 3 is_stmt 1 view .LVU2835 8607 .LVL787: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8608 .loc 1 3322 3 view .LVU2836 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8609 .loc 1 3322 55 is_stmt 0 view .LVU2837 ARM GAS /tmp/cc8UBTH4.s page 272 8610 002c 2068 ldr r0, [r4] 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8611 .loc 1 3322 7 view .LVU2838 8612 002e 0A46 mov r2, r1 8613 0030 011D adds r1, r0, #4 8614 .LVL788: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8615 .loc 1 3322 7 view .LVU2839 8616 0032 E06B ldr r0, [r4, #60] 8617 0034 FFF7FEFF bl HAL_DMA_Start_IT 8618 .LVL789: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8619 .loc 1 3322 6 view .LVU2840 8620 0038 0028 cmp r0, #0 8621 003a 2FD1 bne .L431 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8622 .loc 1 3333 3 is_stmt 1 view .LVU2841 8623 .LBB598: 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8624 .loc 1 3333 3 view .LVU2842 8625 003c 0023 movs r3, #0 8626 003e 0193 str r3, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8627 .loc 1 3333 3 view .LVU2843 8628 0040 2368 ldr r3, [r4] 8629 0042 1A68 ldr r2, [r3] 8630 0044 0192 str r2, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8631 .loc 1 3333 3 view .LVU2844 8632 0046 5B68 ldr r3, [r3, #4] 8633 0048 0193 str r3, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8634 .loc 1 3333 3 view .LVU2845 8635 004a 019B ldr r3, [sp, #4] 8636 .LBE598: 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8637 .loc 1 3333 3 view .LVU2846 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8638 .loc 1 3335 3 view .LVU2847 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8639 .loc 1 3335 18 is_stmt 0 view .LVU2848 8640 004c 2369 ldr r3, [r4, #16] 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8641 .loc 1 3335 6 view .LVU2849 8642 004e 5BB1 cbz r3, .L428 8643 .L427: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8644 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2850 8645 .LBB599: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8646 .loc 1 3338 5 discriminator 1 view .LVU2851 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8647 .loc 1 3338 5 discriminator 1 view .LVU2852 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8648 .loc 1 3338 5 discriminator 1 view .LVU2853 8649 0050 2268 ldr r2, [r4] 8650 .LVL790: ARM GAS /tmp/cc8UBTH4.s page 273 8651 .LBB600: 8652 .LBI600: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8653 .loc 2 476 31 discriminator 1 view .LVU2854 8654 .LBB601: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8655 .loc 2 478 5 discriminator 1 view .LVU2855 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8656 .loc 2 480 4 discriminator 1 view .LVU2856 8657 0052 02F10C03 add r3, r2, #12 8658 .LVL791: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8659 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2857 8660 .syntax unified 8661 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8662 0056 53E8003F ldrex r3, [r3] 8663 @ 0 "" 2 8664 .LVL792: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8665 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2858 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8666 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2859 8667 .thumb 8668 .syntax unified 8669 .LBE601: 8670 .LBE600: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8671 .loc 1 3338 5 discriminator 1 view .LVU2860 8672 005a 43F48073 orr r3, r3, #256 8673 .LVL793: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8674 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2861 8675 .LBB602: 8676 .LBI602: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8677 .loc 2 527 31 discriminator 1 view .LVU2862 8678 .LBB603: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8679 .loc 2 529 4 discriminator 1 view .LVU2863 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8680 .loc 2 531 4 discriminator 1 view .LVU2864 8681 005e 0C32 adds r2, r2, #12 8682 .LVL794: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8683 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2865 8684 .syntax unified 8685 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8686 0060 42E80031 strex r1, r3, [r2] 8687 @ 0 "" 2 8688 .LVL795: 8689 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2866 8690 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2867 8691 .thumb 8692 .syntax unified 8693 .LBE603: 8694 .LBE602: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc8UBTH4.s page 274 8695 .loc 1 3338 5 discriminator 1 view .LVU2868 8696 0064 0029 cmp r1, #0 8697 0066 F3D1 bne .L427 8698 .LVL796: 8699 .L428: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8700 .loc 1 3338 5 discriminator 1 view .LVU2869 8701 .LBE599: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8702 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2870 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8703 .loc 1 3342 3 discriminator 1 view .LVU2871 8704 .LBB604: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8705 .loc 1 3342 3 discriminator 1 view .LVU2872 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8706 .loc 1 3342 3 discriminator 1 view .LVU2873 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8707 .loc 1 3342 3 discriminator 1 view .LVU2874 8708 0068 2268 ldr r2, [r4] 8709 .LVL797: 8710 .LBB605: 8711 .LBI605: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8712 .loc 2 476 31 discriminator 1 view .LVU2875 8713 .LBB606: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8714 .loc 2 478 5 discriminator 1 view .LVU2876 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8715 .loc 2 480 4 discriminator 1 view .LVU2877 8716 006a 02F11403 add r3, r2, #20 8717 .LVL798: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8718 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2878 8719 .syntax unified 8720 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8721 006e 53E8003F ldrex r3, [r3] 8722 @ 0 "" 2 8723 .LVL799: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8724 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2879 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8725 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2880 8726 .thumb 8727 .syntax unified 8728 .LBE606: 8729 .LBE605: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8730 .loc 1 3342 3 discriminator 1 view .LVU2881 8731 0072 43F00103 orr r3, r3, #1 8732 .LVL800: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8733 .loc 1 3342 3 is_stmt 1 discriminator 1 view .LVU2882 8734 .LBB607: 8735 .LBI607: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8736 .loc 2 527 31 discriminator 1 view .LVU2883 ARM GAS /tmp/cc8UBTH4.s page 275 8737 .LBB608: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8738 .loc 2 529 4 discriminator 1 view .LVU2884 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8739 .loc 2 531 4 discriminator 1 view .LVU2885 8740 0076 1432 adds r2, r2, #20 8741 .LVL801: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8742 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2886 8743 .syntax unified 8744 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8745 0078 42E80031 strex r1, r3, [r2] 8746 @ 0 "" 2 8747 .LVL802: 8748 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2887 8749 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2888 8750 .thumb 8751 .syntax unified 8752 .LBE608: 8753 .LBE607: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8754 .loc 1 3342 3 discriminator 1 view .LVU2889 8755 007c 0029 cmp r1, #0 8756 007e F3D1 bne .L428 8757 .LVL803: 8758 .L429: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8759 .loc 1 3342 3 discriminator 1 view .LVU2890 8760 .LBE604: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8761 .loc 1 3342 3 is_stmt 1 discriminator 1 view .LVU2891 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8762 .loc 1 3346 3 discriminator 1 view .LVU2892 8763 .LBB609: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8764 .loc 1 3346 3 discriminator 1 view .LVU2893 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8765 .loc 1 3346 3 discriminator 1 view .LVU2894 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8766 .loc 1 3346 3 discriminator 1 view .LVU2895 8767 0080 2268 ldr r2, [r4] 8768 .LVL804: 8769 .LBB610: 8770 .LBI610: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8771 .loc 2 476 31 discriminator 1 view .LVU2896 8772 .LBB611: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8773 .loc 2 478 5 discriminator 1 view .LVU2897 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8774 .loc 2 480 4 discriminator 1 view .LVU2898 8775 0082 02F11403 add r3, r2, #20 8776 .LVL805: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8777 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2899 8778 .syntax unified 8779 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS /tmp/cc8UBTH4.s page 276 8780 0086 53E8003F ldrex r3, [r3] 8781 @ 0 "" 2 8782 .LVL806: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8783 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2900 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8784 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2901 8785 .thumb 8786 .syntax unified 8787 .LBE611: 8788 .LBE610: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8789 .loc 1 3346 3 discriminator 1 view .LVU2902 8790 008a 43F04003 orr r3, r3, #64 8791 .LVL807: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8792 .loc 1 3346 3 is_stmt 1 discriminator 1 view .LVU2903 8793 .LBB612: 8794 .LBI612: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8795 .loc 2 527 31 discriminator 1 view .LVU2904 8796 .LBB613: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8797 .loc 2 529 4 discriminator 1 view .LVU2905 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8798 .loc 2 531 4 discriminator 1 view .LVU2906 8799 008e 1432 adds r2, r2, #20 8800 .LVL808: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8801 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2907 8802 .syntax unified 8803 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8804 0090 42E80031 strex r1, r3, [r2] 8805 @ 0 "" 2 8806 .LVL809: 8807 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2908 8808 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2909 8809 .thumb 8810 .syntax unified 8811 .LBE613: 8812 .LBE612: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8813 .loc 1 3346 3 discriminator 1 view .LVU2910 8814 0094 0029 cmp r1, #0 8815 0096 F3D1 bne .L429 8816 .LVL810: 8817 .L425: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8818 .loc 1 3346 3 discriminator 1 view .LVU2911 8819 .LBE609: 3349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8820 .loc 1 3349 1 view .LVU2912 8821 0098 03B0 add sp, sp, #12 8822 .LCFI67: 8823 .cfi_remember_state 8824 .cfi_def_cfa_offset 12 8825 @ sp needed ARM GAS /tmp/cc8UBTH4.s page 277 8826 009a 30BD pop {r4, r5, pc} 8827 .LVL811: 8828 .L431: 8829 .LCFI68: 8830 .cfi_restore_state 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8831 .loc 1 3325 5 is_stmt 1 view .LVU2913 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8832 .loc 1 3325 22 is_stmt 0 view .LVU2914 8833 009c 1023 movs r3, #16 8834 009e 6364 str r3, [r4, #68] 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8835 .loc 1 3328 5 is_stmt 1 view .LVU2915 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8836 .loc 1 3328 20 is_stmt 0 view .LVU2916 8837 00a0 2023 movs r3, #32 8838 00a2 84F84230 strb r3, [r4, #66] 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8839 .loc 1 3330 5 is_stmt 1 view .LVU2917 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8840 .loc 1 3330 12 is_stmt 0 view .LVU2918 8841 00a6 0120 movs r0, #1 8842 00a8 F6E7 b .L425 8843 .L433: 8844 00aa 00BF .align 2 8845 .L432: 8846 00ac 00000000 .word UART_DMAReceiveCplt 8847 00b0 00000000 .word UART_DMARxHalfCplt 8848 00b4 00000000 .word UART_DMAError 8849 .cfi_endproc 8850 .LFE184: 8852 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 8853 .align 1 8854 .global HAL_UART_Receive_DMA 8855 .syntax unified 8856 .thumb 8857 .thumb_func 8858 .fpu fpv4-sp-d16 8860 HAL_UART_Receive_DMA: 8861 .LVL812: 8862 .LFB146: 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8863 .loc 1 1450 1 is_stmt 1 view -0 8864 .cfi_startproc 8865 @ args = 0, pretend = 0, frame = 0 8866 @ frame_needed = 0, uses_anonymous_args = 0 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8867 .loc 1 1450 1 is_stmt 0 view .LVU2920 8868 0000 08B5 push {r3, lr} 8869 .LCFI69: 8870 .cfi_def_cfa_offset 8 8871 .cfi_offset 3, -8 8872 .cfi_offset 14, -4 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8873 .loc 1 1452 3 is_stmt 1 view .LVU2921 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8874 .loc 1 1452 12 is_stmt 0 view .LVU2922 ARM GAS /tmp/cc8UBTH4.s page 278 8875 0002 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8876 0006 DBB2 uxtb r3, r3 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8877 .loc 1 1452 6 view .LVU2923 8878 0008 202B cmp r3, #32 8879 000a 08D1 bne .L436 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8880 .loc 1 1454 5 is_stmt 1 view .LVU2924 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8881 .loc 1 1454 8 is_stmt 0 view .LVU2925 8882 000c 49B1 cbz r1, .L437 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8883 .loc 1 1454 25 discriminator 1 view .LVU2926 8884 000e 0AB9 cbnz r2, .L440 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8885 .loc 1 1456 14 view .LVU2927 8886 0010 0120 movs r0, #1 8887 .LVL813: 8888 .L435: 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8889 .loc 1 1468 1 view .LVU2928 8890 0012 08BD pop {r3, pc} 8891 .LVL814: 8892 .L440: 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8893 .loc 1 1460 5 is_stmt 1 view .LVU2929 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8894 .loc 1 1460 26 is_stmt 0 view .LVU2930 8895 0014 0023 movs r3, #0 8896 0016 0363 str r3, [r0, #48] 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8897 .loc 1 1462 5 is_stmt 1 view .LVU2931 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8898 .loc 1 1462 13 is_stmt 0 view .LVU2932 8899 0018 FFF7FEFF bl UART_Start_Receive_DMA 8900 .LVL815: 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8901 .loc 1 1462 13 view .LVU2933 8902 001c F9E7 b .L435 8903 .LVL816: 8904 .L436: 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8905 .loc 1 1466 12 view .LVU2934 8906 001e 0220 movs r0, #2 8907 .LVL817: 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8908 .loc 1 1466 12 view .LVU2935 8909 0020 F7E7 b .L435 8910 .LVL818: 8911 .L437: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8912 .loc 1 1456 14 view .LVU2936 8913 0022 0120 movs r0, #1 8914 .LVL819: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8915 .loc 1 1456 14 view .LVU2937 8916 0024 F5E7 b .L435 ARM GAS /tmp/cc8UBTH4.s page 279 8917 .cfi_endproc 8918 .LFE146: 8920 .section .text.HAL_UARTEx_ReceiveToIdle_DMA,"ax",%progbits 8921 .align 1 8922 .global HAL_UARTEx_ReceiveToIdle_DMA 8923 .syntax unified 8924 .thumb 8925 .thumb_func 8926 .fpu fpv4-sp-d16 8928 HAL_UARTEx_ReceiveToIdle_DMA: 8929 .LVL820: 8930 .LFB152: 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8931 .loc 1 1782 1 is_stmt 1 view -0 8932 .cfi_startproc 8933 @ args = 0, pretend = 0, frame = 8 8934 @ frame_needed = 0, uses_anonymous_args = 0 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8935 .loc 1 1783 3 view .LVU2939 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8936 .loc 1 1786 3 view .LVU2940 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8937 .loc 1 1786 12 is_stmt 0 view .LVU2941 8938 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8939 0004 DBB2 uxtb r3, r3 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8940 .loc 1 1786 6 view .LVU2942 8941 0006 202B cmp r3, #32 8942 0008 27D1 bne .L445 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8943 .loc 1 1782 1 view .LVU2943 8944 000a 10B5 push {r4, lr} 8945 .LCFI70: 8946 .cfi_def_cfa_offset 8 8947 .cfi_offset 4, -8 8948 .cfi_offset 14, -4 8949 000c 82B0 sub sp, sp, #8 8950 .LCFI71: 8951 .cfi_def_cfa_offset 16 8952 000e 0446 mov r4, r0 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8953 .loc 1 1788 5 is_stmt 1 view .LVU2944 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8954 .loc 1 1788 8 is_stmt 0 view .LVU2945 8955 0010 29B3 cbz r1, .L446 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8956 .loc 1 1788 25 discriminator 1 view .LVU2946 8957 0012 12B9 cbnz r2, .L453 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8958 .loc 1 1790 14 view .LVU2947 8959 0014 0120 movs r0, #1 8960 .LVL821: 8961 .L442: 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8962 .loc 1 1820 1 view .LVU2948 8963 0016 02B0 add sp, sp, #8 8964 .LCFI72: ARM GAS /tmp/cc8UBTH4.s page 280 8965 .cfi_remember_state 8966 .cfi_def_cfa_offset 8 8967 @ sp needed 8968 0018 10BD pop {r4, pc} 8969 .LVL822: 8970 .L453: 8971 .LCFI73: 8972 .cfi_restore_state 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8973 .loc 1 1794 5 is_stmt 1 view .LVU2949 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8974 .loc 1 1794 26 is_stmt 0 view .LVU2950 8975 001a 0123 movs r3, #1 8976 001c 0363 str r3, [r0, #48] 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8977 .loc 1 1795 5 is_stmt 1 view .LVU2951 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8978 .loc 1 1795 24 is_stmt 0 view .LVU2952 8979 001e 0023 movs r3, #0 8980 0020 4363 str r3, [r0, #52] 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8981 .loc 1 1797 5 is_stmt 1 view .LVU2953 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8982 .loc 1 1797 15 is_stmt 0 view .LVU2954 8983 0022 FFF7FEFF bl UART_Start_Receive_DMA 8984 .LVL823: 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8985 .loc 1 1800 5 is_stmt 1 view .LVU2955 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8986 .loc 1 1800 14 is_stmt 0 view .LVU2956 8987 0026 236B ldr r3, [r4, #48] 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8988 .loc 1 1800 8 view .LVU2957 8989 0028 012B cmp r3, #1 8990 002a 01D0 beq .L454 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8991 .loc 1 1811 14 view .LVU2958 8992 002c 0120 movs r0, #1 8993 .LVL824: 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8994 .loc 1 1814 5 is_stmt 1 view .LVU2959 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8995 .loc 1 1814 12 is_stmt 0 view .LVU2960 8996 002e F2E7 b .L442 8997 .LVL825: 8998 .L454: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8999 .loc 1 1802 7 is_stmt 1 view .LVU2961 9000 .LBB614: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9001 .loc 1 1802 7 view .LVU2962 9002 0030 0023 movs r3, #0 9003 0032 0193 str r3, [sp, #4] 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9004 .loc 1 1802 7 view .LVU2963 9005 0034 2368 ldr r3, [r4] 9006 0036 1A68 ldr r2, [r3] ARM GAS /tmp/cc8UBTH4.s page 281 9007 0038 0192 str r2, [sp, #4] 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9008 .loc 1 1802 7 view .LVU2964 9009 003a 5B68 ldr r3, [r3, #4] 9010 003c 0193 str r3, [sp, #4] 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9011 .loc 1 1802 7 view .LVU2965 9012 003e 019B ldr r3, [sp, #4] 9013 .L444: 9014 .LBE614: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 9015 .loc 1 1802 7 discriminator 1 view .LVU2966 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9016 .loc 1 1803 7 discriminator 1 view .LVU2967 9017 .LBB615: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9018 .loc 1 1803 7 discriminator 1 view .LVU2968 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9019 .loc 1 1803 7 discriminator 1 view .LVU2969 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9020 .loc 1 1803 7 discriminator 1 view .LVU2970 9021 0040 2268 ldr r2, [r4] 9022 .LVL826: 9023 .LBB616: 9024 .LBI616: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 9025 .loc 2 476 31 discriminator 1 view .LVU2971 9026 .LBB617: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 9027 .loc 2 478 5 discriminator 1 view .LVU2972 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9028 .loc 2 480 4 discriminator 1 view .LVU2973 9029 0042 02F10C03 add r3, r2, #12 9030 .LVL827: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9031 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2974 9032 .syntax unified 9033 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 9034 0046 53E8003F ldrex r3, [r3] 9035 @ 0 "" 2 9036 .LVL828: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 9037 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2975 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 9038 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2976 9039 .thumb 9040 .syntax unified 9041 .LBE617: 9042 .LBE616: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9043 .loc 1 1803 7 discriminator 1 view .LVU2977 9044 004a 43F01003 orr r3, r3, #16 9045 .LVL829: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9046 .loc 1 1803 7 is_stmt 1 discriminator 1 view .LVU2978 9047 .LBB618: 9048 .LBI618: ARM GAS /tmp/cc8UBTH4.s page 282 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 9049 .loc 2 527 31 discriminator 1 view .LVU2979 9050 .LBB619: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 9051 .loc 2 529 4 discriminator 1 view .LVU2980 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9052 .loc 2 531 4 discriminator 1 view .LVU2981 9053 004e 0C32 adds r2, r2, #12 9054 .LVL830: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 9055 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2982 9056 .syntax unified 9057 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 9058 0050 42E80031 strex r1, r3, [r2] 9059 @ 0 "" 2 9060 .LVL831: 9061 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2983 9062 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2984 9063 .thumb 9064 .syntax unified 9065 .LBE619: 9066 .LBE618: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9067 .loc 1 1803 7 discriminator 1 view .LVU2985 9068 0054 0029 cmp r1, #0 9069 0056 F3D1 bne .L444 9070 0058 DDE7 b .L442 9071 .LVL832: 9072 .L445: 9073 .LCFI74: 9074 .cfi_def_cfa_offset 0 9075 .cfi_restore 4 9076 .cfi_restore 14 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9077 .loc 1 1803 7 discriminator 1 view .LVU2986 9078 .LBE615: 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9079 .loc 1 1818 12 view .LVU2987 9080 005a 0220 movs r0, #2 9081 .LVL833: 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 9082 .loc 1 1820 1 view .LVU2988 9083 005c 7047 bx lr 9084 .LVL834: 9085 .L446: 9086 .LCFI75: 9087 .cfi_def_cfa_offset 16 9088 .cfi_offset 4, -8 9089 .cfi_offset 14, -4 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9090 .loc 1 1790 14 view .LVU2989 9091 005e 0120 movs r0, #1 9092 .LVL835: 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9093 .loc 1 1790 14 view .LVU2990 9094 0060 D9E7 b .L442 9095 .cfi_endproc ARM GAS /tmp/cc8UBTH4.s page 283 9096 .LFE152: 9098 .text 9099 .Letext0: 9100 .file 3 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h" 9101 .file 4 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h" 9102 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 9103 .file 6 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 9104 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 9105 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h" 9106 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h" 9107 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" ARM GAS /tmp/cc8UBTH4.s page 284 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_uart.c /tmp/cc8UBTH4.s:18 .text.UART_EndTxTransfer:0000000000000000 $t /tmp/cc8UBTH4.s:25 .text.UART_EndTxTransfer:0000000000000000 UART_EndTxTransfer /tmp/cc8UBTH4.s:104 .text.UART_EndRxTransfer:0000000000000000 $t /tmp/cc8UBTH4.s:110 .text.UART_EndRxTransfer:0000000000000000 UART_EndRxTransfer /tmp/cc8UBTH4.s:314 .text.UART_Transmit_IT:0000000000000000 $t /tmp/cc8UBTH4.s:320 .text.UART_Transmit_IT:0000000000000000 UART_Transmit_IT /tmp/cc8UBTH4.s:423 .text.UART_SetConfig:0000000000000000 $t /tmp/cc8UBTH4.s:429 .text.UART_SetConfig:0000000000000000 UART_SetConfig /tmp/cc8UBTH4.s:604 .text.UART_SetConfig:0000000000000108 $d /tmp/cc8UBTH4.s:610 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/cc8UBTH4.s:616 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout /tmp/cc8UBTH4.s:748 .text.HAL_UART_MspInit:0000000000000000 $t /tmp/cc8UBTH4.s:755 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit /tmp/cc8UBTH4.s:770 .text.HAL_UART_Init:0000000000000000 $t /tmp/cc8UBTH4.s:777 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init /tmp/cc8UBTH4.s:875 .text.HAL_HalfDuplex_Init:0000000000000000 $t /tmp/cc8UBTH4.s:882 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init /tmp/cc8UBTH4.s:985 .text.HAL_LIN_Init:0000000000000000 $t /tmp/cc8UBTH4.s:992 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init /tmp/cc8UBTH4.s:1114 .text.HAL_MultiProcessor_Init:0000000000000000 $t /tmp/cc8UBTH4.s:1121 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init /tmp/cc8UBTH4.s:1250 .text.HAL_UART_MspDeInit:0000000000000000 $t /tmp/cc8UBTH4.s:1257 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit /tmp/cc8UBTH4.s:1272 .text.HAL_UART_DeInit:0000000000000000 $t /tmp/cc8UBTH4.s:1279 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit /tmp/cc8UBTH4.s:1347 .text.HAL_UART_Transmit:0000000000000000 $t /tmp/cc8UBTH4.s:1354 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit /tmp/cc8UBTH4.s:1574 .text.HAL_UART_Receive:0000000000000000 $t /tmp/cc8UBTH4.s:1581 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive /tmp/cc8UBTH4.s:1811 .text.HAL_UART_Transmit_IT:0000000000000000 $t /tmp/cc8UBTH4.s:1818 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT /tmp/cc8UBTH4.s:1896 .text.HAL_UART_Transmit_DMA:0000000000000000 $t /tmp/cc8UBTH4.s:1903 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA /tmp/cc8UBTH4.s:2090 .text.HAL_UART_Transmit_DMA:0000000000000084 $d /tmp/cc8UBTH4.s:4255 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt /tmp/cc8UBTH4.s:4484 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt /tmp/cc8UBTH4.s:4583 .text.UART_DMAError:0000000000000000 UART_DMAError /tmp/cc8UBTH4.s:2097 .text.HAL_UART_DMAPause:0000000000000000 $t /tmp/cc8UBTH4.s:2104 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause /tmp/cc8UBTH4.s:2400 .text.HAL_UART_DMAResume:0000000000000000 $t /tmp/cc8UBTH4.s:2407 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume /tmp/cc8UBTH4.s:2713 .text.HAL_UART_DMAStop:0000000000000000 $t /tmp/cc8UBTH4.s:2720 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop /tmp/cc8UBTH4.s:2930 .text.HAL_UARTEx_ReceiveToIdle:0000000000000000 $t /tmp/cc8UBTH4.s:2937 .text.HAL_UARTEx_ReceiveToIdle:0000000000000000 HAL_UARTEx_ReceiveToIdle /tmp/cc8UBTH4.s:3244 .text.HAL_UARTEx_GetRxEventType:0000000000000000 $t /tmp/cc8UBTH4.s:3251 .text.HAL_UARTEx_GetRxEventType:0000000000000000 HAL_UARTEx_GetRxEventType /tmp/cc8UBTH4.s:3269 .text.HAL_UART_Abort:0000000000000000 $t /tmp/cc8UBTH4.s:3276 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort /tmp/cc8UBTH4.s:3703 .text.HAL_UART_AbortTransmit:0000000000000000 $t /tmp/cc8UBTH4.s:3710 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit /tmp/cc8UBTH4.s:3901 .text.HAL_UART_AbortReceive:0000000000000000 $t /tmp/cc8UBTH4.s:3908 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive /tmp/cc8UBTH4.s:4227 .text.HAL_UART_TxCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4234 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback ARM GAS /tmp/cc8UBTH4.s page 285 /tmp/cc8UBTH4.s:4249 .text.UART_DMATransmitCplt:0000000000000000 $t /tmp/cc8UBTH4.s:4417 .text.UART_EndTransmit_IT:0000000000000000 $t /tmp/cc8UBTH4.s:4423 .text.UART_EndTransmit_IT:0000000000000000 UART_EndTransmit_IT /tmp/cc8UBTH4.s:4456 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4463 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback /tmp/cc8UBTH4.s:4478 .text.UART_DMATxHalfCplt:0000000000000000 $t /tmp/cc8UBTH4.s:4511 .text.HAL_UART_RxCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4518 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback /tmp/cc8UBTH4.s:4533 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4540 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback /tmp/cc8UBTH4.s:4555 .text.HAL_UART_ErrorCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4562 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback /tmp/cc8UBTH4.s:4577 .text.UART_DMAError:0000000000000000 $t /tmp/cc8UBTH4.s:4680 .text.UART_DMAAbortOnError:0000000000000000 $t /tmp/cc8UBTH4.s:4686 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError /tmp/cc8UBTH4.s:4716 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:4723 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback /tmp/cc8UBTH4.s:4738 .text.HAL_UART_Abort_IT:0000000000000000 $t /tmp/cc8UBTH4.s:4745 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT /tmp/cc8UBTH4.s:5218 .text.HAL_UART_Abort_IT:000000000000011c $d /tmp/cc8UBTH4.s:5300 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback /tmp/cc8UBTH4.s:5230 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback /tmp/cc8UBTH4.s:5224 .text.UART_DMARxAbortCallback:0000000000000000 $t /tmp/cc8UBTH4.s:5294 .text.UART_DMATxAbortCallback:0000000000000000 $t /tmp/cc8UBTH4.s:5364 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:5371 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback /tmp/cc8UBTH4.s:5386 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t /tmp/cc8UBTH4.s:5393 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT /tmp/cc8UBTH4.s:5601 .text.HAL_UART_AbortTransmit_IT:000000000000007c $d /tmp/cc8UBTH4.s:5612 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback /tmp/cc8UBTH4.s:5606 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t /tmp/cc8UBTH4.s:5646 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t /tmp/cc8UBTH4.s:5653 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback /tmp/cc8UBTH4.s:5668 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t /tmp/cc8UBTH4.s:5675 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT /tmp/cc8UBTH4.s:6014 .text.HAL_UART_AbortReceive_IT:00000000000000b8 $d /tmp/cc8UBTH4.s:6025 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback /tmp/cc8UBTH4.s:6019 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t /tmp/cc8UBTH4.s:6062 .text.HAL_UARTEx_RxEventCallback:0000000000000000 $t /tmp/cc8UBTH4.s:6069 .text.HAL_UARTEx_RxEventCallback:0000000000000000 HAL_UARTEx_RxEventCallback /tmp/cc8UBTH4.s:6085 .text.UART_Receive_IT:0000000000000000 $t /tmp/cc8UBTH4.s:6091 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT /tmp/cc8UBTH4.s:6368 .text.HAL_UART_IRQHandler:0000000000000000 $t /tmp/cc8UBTH4.s:6375 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler /tmp/cc8UBTH4.s:7294 .text.HAL_UART_IRQHandler:00000000000002a0 $d /tmp/cc8UBTH4.s:7299 .text.UART_DMARxHalfCplt:0000000000000000 $t /tmp/cc8UBTH4.s:7305 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt /tmp/cc8UBTH4.s:7353 .text.UART_DMAReceiveCplt:0000000000000000 $t /tmp/cc8UBTH4.s:7359 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt /tmp/cc8UBTH4.s:7666 .text.HAL_LIN_SendBreak:0000000000000000 $t /tmp/cc8UBTH4.s:7673 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak /tmp/cc8UBTH4.s:7780 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t /tmp/cc8UBTH4.s:7787 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode /tmp/cc8UBTH4.s:7897 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 $t /tmp/cc8UBTH4.s:7904 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 HAL_MultiProcessor_ExitMuteMode /tmp/cc8UBTH4.s:8014 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t /tmp/cc8UBTH4.s:8021 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter ARM GAS /tmp/cc8UBTH4.s page 286 /tmp/cc8UBTH4.s:8088 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t /tmp/cc8UBTH4.s:8095 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver /tmp/cc8UBTH4.s:8162 .text.HAL_UART_GetState:0000000000000000 $t /tmp/cc8UBTH4.s:8169 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState /tmp/cc8UBTH4.s:8196 .text.HAL_UART_GetError:0000000000000000 $t /tmp/cc8UBTH4.s:8203 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError /tmp/cc8UBTH4.s:8221 .text.UART_Start_Receive_IT:0000000000000000 $t /tmp/cc8UBTH4.s:8228 .text.UART_Start_Receive_IT:0000000000000000 UART_Start_Receive_IT /tmp/cc8UBTH4.s:8287 .text.HAL_UART_Receive_IT:0000000000000000 $t /tmp/cc8UBTH4.s:8294 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT /tmp/cc8UBTH4.s:8355 .text.HAL_UARTEx_ReceiveToIdle_IT:0000000000000000 $t /tmp/cc8UBTH4.s:8362 .text.HAL_UARTEx_ReceiveToIdle_IT:0000000000000000 HAL_UARTEx_ReceiveToIdle_IT /tmp/cc8UBTH4.s:8537 .text.UART_Start_Receive_DMA:0000000000000000 $t /tmp/cc8UBTH4.s:8544 .text.UART_Start_Receive_DMA:0000000000000000 UART_Start_Receive_DMA /tmp/cc8UBTH4.s:8846 .text.UART_Start_Receive_DMA:00000000000000ac $d /tmp/cc8UBTH4.s:8853 .text.HAL_UART_Receive_DMA:0000000000000000 $t /tmp/cc8UBTH4.s:8860 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA /tmp/cc8UBTH4.s:8921 .text.HAL_UARTEx_ReceiveToIdle_DMA:0000000000000000 $t /tmp/cc8UBTH4.s:8928 .text.HAL_UARTEx_ReceiveToIdle_DMA:0000000000000000 HAL_UARTEx_ReceiveToIdle_DMA UNDEFINED SYMBOLS __aeabi_uldivmod HAL_RCC_GetPCLK1Freq HAL_RCC_GetPCLK2Freq HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort HAL_DMA_GetError HAL_DMA_Abort_IT