ARM GAS /tmp/cc4vHZRy.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f4xx_hal_uart.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .section .text.UART_EndTxTransfer,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 UART_EndTxTransfer: 26 .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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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/cc4vHZRy.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 109 UART_EndRxTransfer: 110 .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 **** { 111 .loc 1 3371 1 is_stmt 1 view -0 112 .cfi_startproc 113 @ args = 0, pretend = 0, frame = 0 114 @ frame_needed = 0, uses_anonymous_args = 0 115 @ link register save eliminated. 116 .LVL8: 117 .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)); 118 .loc 1 3373 3 discriminator 1 view .LVU26 119 .LBB315: 120 .loc 1 3373 3 discriminator 1 view .LVU27 121 .loc 1 3373 3 discriminator 1 view .LVU28 122 .loc 1 3373 3 discriminator 1 view .LVU29 123 0000 0268 ldr r2, [r0] 124 .LVL9: 125 .LBB316: 126 .LBI316: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 127 .loc 2 476 31 discriminator 1 view .LVU30 128 .LBB317: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 129 .loc 2 478 5 discriminator 1 view .LVU31 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 130 .loc 2 480 4 discriminator 1 view .LVU32 131 0002 02F10C03 add r3, r2, #12 132 .LVL10: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 133 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU33 134 .syntax unified 135 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 136 0006 53E8003F ldrex r3, [r3] 137 @ 0 "" 2 138 .LVL11: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 139 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU34 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS /tmp/cc4vHZRy.s page 72 140 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU35 141 .thumb 142 .syntax unified 143 .LBE317: 144 .LBE316: 145 .loc 1 3373 3 discriminator 1 view .LVU36 146 000a 23F49073 bic r3, r3, #288 147 .LVL12: 148 .loc 1 3373 3 is_stmt 1 discriminator 1 view .LVU37 149 .LBB318: 150 .LBI318: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 151 .loc 2 527 31 discriminator 1 view .LVU38 152 .LBB319: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 153 .loc 2 529 4 discriminator 1 view .LVU39 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 154 .loc 2 531 4 discriminator 1 view .LVU40 155 000e 0C32 adds r2, r2, #12 156 .LVL13: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 157 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU41 158 .syntax unified 159 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 160 0010 42E80031 strex r1, r3, [r2] 161 @ 0 "" 2 162 .LVL14: 163 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU42 164 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU43 165 .thumb 166 .syntax unified 167 .LBE319: 168 .LBE318: 169 .loc 1 3373 3 discriminator 1 view .LVU44 170 0014 0029 cmp r1, #0 171 0016 F3D1 bne .L4 172 .LVL15: 173 .L5: 174 .loc 1 3373 3 discriminator 1 view .LVU45 175 .LBE315: 176 .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); 177 .loc 1 3374 3 discriminator 1 view .LVU47 178 .LBB320: 179 .loc 1 3374 3 discriminator 1 view .LVU48 180 .loc 1 3374 3 discriminator 1 view .LVU49 181 .loc 1 3374 3 discriminator 1 view .LVU50 182 0018 0268 ldr r2, [r0] 183 .LVL16: 184 .LBB321: 185 .LBI321: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 186 .loc 2 476 31 discriminator 1 view .LVU51 187 .LBB322: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 188 .loc 2 478 5 discriminator 1 view .LVU52 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 73 189 .loc 2 480 4 discriminator 1 view .LVU53 190 001a 02F11403 add r3, r2, #20 191 .LVL17: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 192 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU54 193 .syntax unified 194 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 195 001e 53E8003F ldrex r3, [r3] 196 @ 0 "" 2 197 .LVL18: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 198 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU55 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 199 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU56 200 .thumb 201 .syntax unified 202 .LBE322: 203 .LBE321: 204 .loc 1 3374 3 discriminator 1 view .LVU57 205 0022 23F00103 bic r3, r3, #1 206 .LVL19: 207 .loc 1 3374 3 is_stmt 1 discriminator 1 view .LVU58 208 .LBB323: 209 .LBI323: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 210 .loc 2 527 31 discriminator 1 view .LVU59 211 .LBB324: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 212 .loc 2 529 4 discriminator 1 view .LVU60 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 213 .loc 2 531 4 discriminator 1 view .LVU61 214 0026 1432 adds r2, r2, #20 215 .LVL20: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 216 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU62 217 .syntax unified 218 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 219 0028 42E80031 strex r1, r3, [r2] 220 @ 0 "" 2 221 .LVL21: 222 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU63 223 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU64 224 .thumb 225 .syntax unified 226 .LBE324: 227 .LBE323: 228 .loc 1 3374 3 discriminator 1 view .LVU65 229 002c 0029 cmp r1, #0 230 002e F3D1 bne .L5 231 .LBE320: 232 .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) 233 .loc 1 3377 3 discriminator 2 view .LVU67 234 .loc 1 3377 12 is_stmt 0 discriminator 2 view .LVU68 235 0030 036B ldr r3, [r0, #48] ARM GAS /tmp/cc4vHZRy.s page 74 236 .LVL22: 237 .loc 1 3377 6 discriminator 2 view .LVU69 238 0032 012B cmp r3, #1 239 0034 05D0 beq .L7 240 .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); 241 .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; 242 .loc 1 3383 3 discriminator 2 view .LVU71 243 .loc 1 3383 18 is_stmt 0 discriminator 2 view .LVU72 244 0036 2023 movs r3, #32 245 0038 80F84230 strb r3, [r0, #66] 3384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 246 .loc 1 3384 3 is_stmt 1 discriminator 2 view .LVU73 247 .loc 1 3384 24 is_stmt 0 discriminator 2 view .LVU74 248 003c 0023 movs r3, #0 249 003e 0363 str r3, [r0, #48] 3385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 250 .loc 1 3385 1 discriminator 2 view .LVU75 251 0040 7047 bx lr 252 .L7: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 253 .loc 1 3379 5 is_stmt 1 discriminator 1 view .LVU76 254 .LBB325: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 255 .loc 1 3379 5 discriminator 1 view .LVU77 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 256 .loc 1 3379 5 discriminator 1 view .LVU78 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 257 .loc 1 3379 5 discriminator 1 view .LVU79 258 0042 0268 ldr r2, [r0] 259 .LVL23: 260 .LBB326: 261 .LBI326: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 262 .loc 2 476 31 discriminator 1 view .LVU80 263 .LBB327: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 264 .loc 2 478 5 discriminator 1 view .LVU81 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 265 .loc 2 480 4 discriminator 1 view .LVU82 266 0044 02F10C03 add r3, r2, #12 267 .LVL24: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 268 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU83 269 .syntax unified 270 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 271 0048 53E8003F ldrex r3, [r3] 272 @ 0 "" 2 273 .LVL25: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 274 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU84 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } ARM GAS /tmp/cc4vHZRy.s page 75 275 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU85 276 .thumb 277 .syntax unified 278 .LBE327: 279 .LBE326: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 280 .loc 1 3379 5 discriminator 1 view .LVU86 281 004c 23F01003 bic r3, r3, #16 282 .LVL26: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 283 .loc 1 3379 5 is_stmt 1 discriminator 1 view .LVU87 284 .LBB328: 285 .LBI328: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 286 .loc 2 527 31 discriminator 1 view .LVU88 287 .LBB329: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 288 .loc 2 529 4 discriminator 1 view .LVU89 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 289 .loc 2 531 4 discriminator 1 view .LVU90 290 0050 0C32 adds r2, r2, #12 291 .LVL27: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 292 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU91 293 .syntax unified 294 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 295 0052 42E80031 strex r1, r3, [r2] 296 @ 0 "" 2 297 .LVL28: 298 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU92 299 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU93 300 .thumb 301 .syntax unified 302 .LBE329: 303 .LBE328: 3379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 304 .loc 1 3379 5 discriminator 1 view .LVU94 305 0056 0029 cmp r1, #0 306 0058 F3D1 bne .L7 307 005a ECE7 b .L6 308 .LBE325: 309 .cfi_endproc 310 .LFE186: 312 .section .text.UART_Transmit_IT,"ax",%progbits 313 .align 1 314 .syntax unified 315 .thumb 316 .thumb_func 318 UART_Transmit_IT: 319 .LVL29: 320 .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). 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. ARM GAS /tmp/cc4vHZRy.s page 76 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 */ 3447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->AbortCpltCallback(huart); 3448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #else ARM GAS /tmp/cc4vHZRy.s page 77 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 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 ARM GAS /tmp/cc4vHZRy.s page 78 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. 3561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** * @retval HAL status 3562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** */ ARM GAS /tmp/cc4vHZRy.s page 79 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 **** { 321 .loc 1 3564 1 is_stmt 1 view -0 322 .cfi_startproc 323 @ args = 0, pretend = 0, frame = 0 324 @ frame_needed = 0, uses_anonymous_args = 0 325 @ link register save eliminated. 3565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *tmp; 326 .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) 327 .loc 1 3568 3 view .LVU97 328 .loc 1 3568 12 is_stmt 0 view .LVU98 329 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 330 0004 DBB2 uxtb r3, r3 331 .loc 1 3568 6 view .LVU99 332 0006 212B cmp r3, #33 333 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; 334 .loc 1 3593 12 view .LVU100 335 000a 0220 movs r0, #2 336 .LVL30: 3594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 337 .loc 1 3595 1 view .LVU101 338 000c 7047 bx lr 339 .LVL31: 340 .L14: 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 341 .loc 1 3570 5 is_stmt 1 view .LVU102 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 342 .loc 1 3570 21 is_stmt 0 view .LVU103 ARM GAS /tmp/cc4vHZRy.s page 80 343 000e 8368 ldr r3, [r0, #8] 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 344 .loc 1 3570 8 view .LVU104 345 0010 B3F5805F cmp r3, #4096 346 0014 17D0 beq .L15 347 .L10: 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 348 .loc 1 3578 7 is_stmt 1 view .LVU105 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 349 .loc 1 3578 45 is_stmt 0 view .LVU106 350 0016 036A ldr r3, [r0, #32] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 351 .loc 1 3578 57 view .LVU107 352 0018 5A1C adds r2, r3, #1 353 001a 0262 str r2, [r0, #32] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 354 .loc 1 3578 39 view .LVU108 355 001c 1A78 ldrb r2, [r3] @ zero_extendqisi2 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 356 .loc 1 3578 12 view .LVU109 357 001e 0368 ldr r3, [r0] 3578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 358 .loc 1 3578 27 view .LVU110 359 0020 5A60 str r2, [r3, #4] 360 .L11: 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 361 .loc 1 3581 5 is_stmt 1 view .LVU111 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 362 .loc 1 3581 16 is_stmt 0 view .LVU112 363 0022 C38C ldrh r3, [r0, #38] 364 0024 9BB2 uxth r3, r3 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 365 .loc 1 3581 9 view .LVU113 366 0026 013B subs r3, r3, #1 367 0028 9BB2 uxth r3, r3 3581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 368 .loc 1 3581 8 view .LVU114 369 002a C384 strh r3, [r0, #38] @ movhi 370 002c 4BB9 cbnz r3, .L12 3584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 371 .loc 1 3584 7 is_stmt 1 view .LVU115 372 002e 0268 ldr r2, [r0] 373 0030 D368 ldr r3, [r2, #12] 374 0032 23F08003 bic r3, r3, #128 375 0036 D360 str r3, [r2, #12] 3587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 376 .loc 1 3587 7 view .LVU116 377 0038 0268 ldr r2, [r0] 378 003a D368 ldr r3, [r2, #12] 379 003c 43F04003 orr r3, r3, #64 380 0040 D360 str r3, [r2, #12] 381 .L12: 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 382 .loc 1 3589 5 view .LVU117 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 383 .loc 1 3589 12 is_stmt 0 view .LVU118 384 0042 0020 movs r0, #0 ARM GAS /tmp/cc4vHZRy.s page 81 385 .LVL32: 3589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 386 .loc 1 3589 12 view .LVU119 387 0044 7047 bx lr 388 .LVL33: 389 .L15: 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 390 .loc 1 3570 71 discriminator 1 view .LVU120 391 0046 0369 ldr r3, [r0, #16] 3570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 392 .loc 1 3570 56 discriminator 1 view .LVU121 393 0048 002B cmp r3, #0 394 004a E4D1 bne .L10 3572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF); 395 .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); 396 .loc 1 3572 11 is_stmt 0 view .LVU123 397 004c 036A ldr r3, [r0, #32] 398 .LVL34: 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 399 .loc 1 3573 7 is_stmt 1 view .LVU124 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 400 .loc 1 3573 40 is_stmt 0 view .LVU125 401 004e 1B88 ldrh r3, [r3] 402 .LVL35: 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 403 .loc 1 3573 12 view .LVU126 404 0050 0268 ldr r2, [r0] 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 405 .loc 1 3573 29 view .LVU127 406 0052 C3F30803 ubfx r3, r3, #0, #9 3573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pTxBuffPtr += 2U; 407 .loc 1 3573 27 view .LVU128 408 0056 5360 str r3, [r2, #4] 409 .LVL36: 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 410 .loc 1 3574 7 is_stmt 1 view .LVU129 3574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 411 .loc 1 3574 25 is_stmt 0 view .LVU130 412 0058 036A ldr r3, [r0, #32] 413 005a 0233 adds r3, r3, #2 414 005c 0362 str r3, [r0, #32] 415 005e E0E7 b .L11 416 .cfi_endproc 417 .LFE192: 419 .global __aeabi_uldivmod 420 .section .text.UART_SetConfig,"ax",%progbits 421 .align 1 422 .syntax unified 423 .thumb 424 .thumb_func 426 UART_SetConfig: 427 .LVL37: 428 .LFB195: 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. ARM GAS /tmp/cc4vHZRy.s page 82 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); 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 **** { ARM GAS /tmp/cc4vHZRy.s page 83 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 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 */ ARM GAS /tmp/cc4vHZRy.s page 84 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 **** { 429 .loc 1 3732 1 is_stmt 1 view -0 430 .cfi_startproc 431 @ args = 0, pretend = 0, frame = 0 432 @ frame_needed = 0, uses_anonymous_args = 0 433 .loc 1 3732 1 is_stmt 0 view .LVU132 434 0000 38B5 push {r3, r4, r5, lr} 435 .LCFI0: 436 .cfi_def_cfa_offset 16 437 .cfi_offset 3, -16 438 .cfi_offset 4, -12 439 .cfi_offset 5, -8 440 .cfi_offset 14, -4 441 0002 0446 mov r4, r0 3733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg; 442 .loc 1 3733 3 is_stmt 1 view .LVU133 3734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t pclk; 443 .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)); 444 .loc 1 3737 3 view .LVU135 3738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_STOPBITS(huart->Init.StopBits)); 445 .loc 1 3738 3 view .LVU136 3739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_PARITY(huart->Init.Parity)); 446 .loc 1 3739 3 view .LVU137 3740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_MODE(huart->Init.Mode)); 447 .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); 448 .loc 1 3745 3 view .LVU139 449 0004 0268 ldr r2, [r0] 450 0006 1369 ldr r3, [r2, #16] 451 0008 23F44053 bic r3, r3, #12288 452 000c C168 ldr r1, [r0, #12] ARM GAS /tmp/cc4vHZRy.s page 85 453 000e 0B43 orrs r3, r3, r1 454 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 455 .loc 1 3754 3 view .LVU140 456 .loc 1 3754 33 is_stmt 0 view .LVU141 457 0012 8368 ldr r3, [r0, #8] 458 .loc 1 3754 58 view .LVU142 459 0014 0269 ldr r2, [r0, #16] 460 .loc 1 3754 45 view .LVU143 461 0016 1343 orrs r3, r3, r2 462 .loc 1 3754 79 view .LVU144 463 0018 4269 ldr r2, [r0, #20] 464 .loc 1 3754 66 view .LVU145 465 001a 1343 orrs r3, r3, r2 466 .loc 1 3754 98 view .LVU146 467 001c C269 ldr r2, [r0, #28] 468 .loc 1 3754 10 view .LVU147 469 001e 1A43 orrs r2, r2, r3 470 .LVL38: 3755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** MODIFY_REG(huart->Instance->CR1, 471 .loc 1 3755 3 is_stmt 1 view .LVU148 472 0020 0168 ldr r1, [r0] 473 0022 CB68 ldr r3, [r1, #12] 474 0024 23F41643 bic r3, r3, #38400 475 0028 23F00C03 bic r3, r3, #12 476 002c 1343 orrs r3, r3, r2 477 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); 478 .loc 1 3761 3 view .LVU149 479 0030 0268 ldr r2, [r0] 480 .LVL39: 481 .loc 1 3761 3 is_stmt 0 view .LVU150 482 0032 5369 ldr r3, [r2, #20] 483 0034 23F44073 bic r3, r3, #768 484 0038 8169 ldr r1, [r0, #24] 485 003a 0B43 orrs r3, r3, r1 486 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) || 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 **** } ARM GAS /tmp/cc4vHZRy.s page 86 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)) 487 .loc 1 3770 5 is_stmt 1 view .LVU151 488 .loc 1 3770 15 is_stmt 0 view .LVU152 489 003e 0368 ldr r3, [r0] 490 .loc 1 3770 8 view .LVU153 491 0040 314A ldr r2, .L24 492 0042 9342 cmp r3, r2 493 0044 06D0 beq .L17 494 .loc 1 3770 37 discriminator 1 view .LVU154 495 0046 02F58062 add r2, r2, #1024 496 004a 9342 cmp r3, r2 497 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(); 498 .loc 1 3782 7 is_stmt 1 view .LVU155 499 .loc 1 3782 14 is_stmt 0 view .LVU156 500 004e FFF7FEFF bl HAL_RCC_GetPCLK1Freq 501 .LVL40: 502 .loc 1 3782 14 view .LVU157 503 0052 01E0 b .L19 504 .LVL41: 505 .L17: 3772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 506 .loc 1 3772 7 is_stmt 1 view .LVU158 3772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 507 .loc 1 3772 14 is_stmt 0 view .LVU159 508 0054 FFF7FEFF bl HAL_RCC_GetPCLK2Freq 509 .LVL42: 510 .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) 511 .loc 1 3785 3 is_stmt 1 view .LVU160 512 .loc 1 3785 18 is_stmt 0 view .LVU161 513 0058 E369 ldr r3, [r4, #28] 514 .loc 1 3785 6 view .LVU162 515 005a B3F5004F cmp r3, #32768 516 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 **** { 3791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->Instance->BRR = UART_BRR_SAMPLING16(pclk, huart->Init.BaudRate); 517 .loc 1 3791 5 is_stmt 1 view .LVU163 518 .loc 1 3791 28 is_stmt 0 view .LVU164 ARM GAS /tmp/cc4vHZRy.s page 87 519 0060 0021 movs r1, #0 520 0062 0318 adds r3, r0, r0 521 0064 4941 adcs r1, r1, r1 522 0066 1B18 adds r3, r3, r0 523 0068 41F10001 adc r1, r1, #0 524 006c C900 lsls r1, r1, #3 525 006e 41EA5371 orr r1, r1, r3, lsr #29 526 0072 DB00 lsls r3, r3, #3 527 0074 1818 adds r0, r3, r0 528 .LVL43: 529 .loc 1 3791 28 view .LVU165 530 0076 6368 ldr r3, [r4, #4] 531 0078 4FEA8302 lsl r2, r3, #2 532 007c 4FEA9373 lsr r3, r3, #30 533 0080 41F10001 adc r1, r1, #0 534 0084 FFF7FEFF bl __aeabi_uldivmod 535 .LVL44: 536 0088 204D ldr r5, .L24+4 537 008a A5FB0032 umull r3, r2, r5, r0 538 008e 5109 lsrs r1, r2, #5 539 0090 6423 movs r3, #100 540 0092 03FB1103 mls r3, r3, r1, r0 541 0096 1B01 lsls r3, r3, #4 542 0098 3233 adds r3, r3, #50 543 009a A5FB0323 umull r2, r3, r5, r3 544 009e 5B09 lsrs r3, r3, #5 545 00a0 03F0F002 and r2, r3, #240 546 00a4 02EB0112 add r2, r2, r1, lsl #4 547 00a8 03F00F03 and r3, r3, #15 548 .loc 1 3791 10 view .LVU166 549 00ac 2168 ldr r1, [r4] 550 .loc 1 3791 28 view .LVU167 551 00ae 1344 add r3, r3, r2 552 .loc 1 3791 26 view .LVU168 553 00b0 8B60 str r3, [r1, #8] 554 .L16: 3792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 555 .loc 1 3793 1 view .LVU169 556 00b2 38BD pop {r3, r4, r5, pc} 557 .LVL45: 558 .L23: 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 559 .loc 1 3787 5 is_stmt 1 view .LVU170 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 560 .loc 1 3787 28 is_stmt 0 view .LVU171 561 00b4 0023 movs r3, #0 562 00b6 0218 adds r2, r0, r0 563 00b8 43EB0301 adc r1, r3, r3 564 00bc 1218 adds r2, r2, r0 565 00be 41F10001 adc r1, r1, #0 566 00c2 C900 lsls r1, r1, #3 567 00c4 41EA5271 orr r1, r1, r2, lsr #29 568 00c8 D200 lsls r2, r2, #3 569 00ca 1018 adds r0, r2, r0 570 .LVL46: 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 88 571 .loc 1 3787 28 view .LVU172 572 00cc 41F10001 adc r1, r1, #0 573 00d0 6268 ldr r2, [r4, #4] 574 00d2 9218 adds r2, r2, r2 575 00d4 5B41 adcs r3, r3, r3 576 00d6 FFF7FEFF bl __aeabi_uldivmod 577 .LVL47: 578 00da 0C4D ldr r5, .L24+4 579 00dc A5FB0032 umull r3, r2, r5, r0 580 00e0 5109 lsrs r1, r2, #5 581 00e2 6423 movs r3, #100 582 00e4 03FB1103 mls r3, r3, r1, r0 583 00e8 DB00 lsls r3, r3, #3 584 00ea 3233 adds r3, r3, #50 585 00ec A5FB0323 umull r2, r3, r5, r3 586 00f0 5B09 lsrs r3, r3, #5 587 00f2 5A00 lsls r2, r3, #1 588 00f4 02F4F872 and r2, r2, #496 589 00f8 02EB0112 add r2, r2, r1, lsl #4 590 00fc 03F00703 and r3, r3, #7 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 591 .loc 1 3787 10 view .LVU173 592 0100 2168 ldr r1, [r4] 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 593 .loc 1 3787 28 view .LVU174 594 0102 1344 add r3, r3, r2 3787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 595 .loc 1 3787 26 view .LVU175 596 0104 8B60 str r3, [r1, #8] 597 0106 D4E7 b .L16 598 .L25: 599 .align 2 600 .L24: 601 0108 00100140 .word 1073811456 602 010c 1F85EB51 .word 1374389535 603 .cfi_endproc 604 .LFE195: 606 .section .text.UART_WaitOnFlagUntilTimeout,"ax",%progbits 607 .align 1 608 .syntax unified 609 .thumb 610 .thumb_func 612 UART_WaitOnFlagUntilTimeout: 613 .LVL48: 614 .LFB182: 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 615 .loc 1 3214 1 is_stmt 1 view -0 616 .cfi_startproc 617 @ args = 4, pretend = 0, frame = 8 618 @ frame_needed = 0, uses_anonymous_args = 0 3214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Wait until flag is set */ 619 .loc 1 3214 1 is_stmt 0 view .LVU177 620 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 621 .LCFI1: 622 .cfi_def_cfa_offset 28 623 .cfi_offset 4, -28 624 .cfi_offset 5, -24 ARM GAS /tmp/cc4vHZRy.s page 89 625 .cfi_offset 6, -20 626 .cfi_offset 7, -16 627 .cfi_offset 8, -12 628 .cfi_offset 9, -8 629 .cfi_offset 14, -4 630 0004 83B0 sub sp, sp, #12 631 .LCFI2: 632 .cfi_def_cfa_offset 40 633 0006 0546 mov r5, r0 634 0008 0E46 mov r6, r1 635 000a 1746 mov r7, r2 636 000c 9946 mov r9, r3 637 000e DDF82880 ldr r8, [sp, #40] 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 638 .loc 1 3216 3 is_stmt 1 view .LVU178 639 .LVL49: 640 .L28: 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 641 .loc 1 3216 9 view .LVU179 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 642 .loc 1 3216 11 is_stmt 0 view .LVU180 643 0012 2C68 ldr r4, [r5] 644 0014 2468 ldr r4, [r4] 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 645 .loc 1 3216 50 view .LVU181 646 0016 36EA0403 bics r3, r6, r4 647 001a 0CBF ite eq 648 001c 4FF0010C moveq ip, #1 649 0020 4FF0000C movne ip, #0 3216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 650 .loc 1 3216 9 view .LVU182 651 0024 BC45 cmp ip, r7 652 0026 28D1 bne .L34 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 653 .loc 1 3219 5 is_stmt 1 view .LVU183 3219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 654 .loc 1 3219 8 is_stmt 0 view .LVU184 655 0028 B8F1FF3F cmp r8, #-1 656 002c F1D0 beq .L28 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 657 .loc 1 3221 7 is_stmt 1 view .LVU185 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 658 .loc 1 3221 13 is_stmt 0 view .LVU186 659 002e FFF7FEFF bl HAL_GetTick 660 .LVL50: 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 661 .loc 1 3221 27 view .LVU187 662 0032 A0EB0900 sub r0, r0, r9 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 663 .loc 1 3221 10 view .LVU188 664 0036 4045 cmp r0, r8 665 0038 23D8 bhi .L31 3221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 666 .loc 1 3221 51 discriminator 1 view .LVU189 667 003a B8F1000F cmp r8, #0 668 003e 22D0 beq .L32 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 90 669 .loc 1 3227 7 is_stmt 1 view .LVU190 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 670 .loc 1 3227 12 is_stmt 0 view .LVU191 671 0040 2B68 ldr r3, [r5] 672 0042 DA68 ldr r2, [r3, #12] 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 673 .loc 1 3227 10 view .LVU192 674 0044 12F0040F tst r2, #4 675 0048 E3D0 beq .L28 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 676 .loc 1 3227 64 discriminator 1 view .LVU193 677 004a 802E cmp r6, #128 678 004c E1D0 beq .L28 3227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 679 .loc 1 3227 91 discriminator 2 view .LVU194 680 004e 402E cmp r6, #64 681 0050 DFD0 beq .L28 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 682 .loc 1 3229 9 is_stmt 1 view .LVU195 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 683 .loc 1 3229 13 is_stmt 0 view .LVU196 684 0052 1A68 ldr r2, [r3] 3229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 685 .loc 1 3229 12 view .LVU197 686 0054 12F0080F tst r2, #8 687 0058 DBD0 beq .L28 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 688 .loc 1 3232 11 is_stmt 1 view .LVU198 689 .LBB330: 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 690 .loc 1 3232 11 view .LVU199 691 005a 0024 movs r4, #0 692 005c 0194 str r4, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 693 .loc 1 3232 11 view .LVU200 694 005e 1A68 ldr r2, [r3] 695 0060 0192 str r2, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 696 .loc 1 3232 11 view .LVU201 697 0062 5B68 ldr r3, [r3, #4] 698 0064 0193 str r3, [sp, #4] 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 699 .loc 1 3232 11 view .LVU202 700 0066 019B ldr r3, [sp, #4] 701 .LBE330: 3232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 702 .loc 1 3232 11 view .LVU203 3237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 703 .loc 1 3237 11 view .LVU204 704 0068 2846 mov r0, r5 705 006a FFF7FEFF bl UART_EndRxTransfer 706 .LVL51: 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 707 .loc 1 3239 11 view .LVU205 3239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 708 .loc 1 3239 28 is_stmt 0 view .LVU206 709 006e 0823 movs r3, #8 ARM GAS /tmp/cc4vHZRy.s page 91 710 0070 6B64 str r3, [r5, #68] 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 711 .loc 1 3242 11 is_stmt 1 view .LVU207 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 712 .loc 1 3242 11 view .LVU208 713 0072 85F84040 strb r4, [r5, #64] 3242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 714 .loc 1 3242 11 view .LVU209 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 715 .loc 1 3244 11 view .LVU210 3244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 716 .loc 1 3244 18 is_stmt 0 view .LVU211 717 0076 0120 movs r0, #1 718 0078 00E0 b .L29 719 .L34: 3249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 720 .loc 1 3249 10 view .LVU212 721 007a 0020 movs r0, #0 722 .L29: 3250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 723 .loc 1 3250 1 view .LVU213 724 007c 03B0 add sp, sp, #12 725 .LCFI3: 726 .cfi_remember_state 727 .cfi_def_cfa_offset 28 728 @ sp needed 729 007e BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 730 .LVL52: 731 .L31: 732 .LCFI4: 733 .cfi_restore_state 3224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 734 .loc 1 3224 16 view .LVU214 735 0082 0320 movs r0, #3 736 0084 FAE7 b .L29 737 .L32: 738 0086 0320 movs r0, #3 739 0088 F8E7 b .L29 740 .cfi_endproc 741 .LFE182: 743 .section .text.HAL_UART_MspInit,"ax",%progbits 744 .align 1 745 .weak HAL_UART_MspInit 746 .syntax unified 747 .thumb 748 .thumb_func 750 HAL_UART_MspInit: 751 .LVL53: 752 .LFB139: 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 753 .loc 1 716 1 is_stmt 1 view -0 754 .cfi_startproc 755 @ args = 0, pretend = 0, frame = 0 756 @ frame_needed = 0, uses_anonymous_args = 0 757 @ 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, 758 .loc 1 718 3 view .LVU216 ARM GAS /tmp/cc4vHZRy.s page 92 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 759 .loc 1 722 1 is_stmt 0 view .LVU217 760 0000 7047 bx lr 761 .cfi_endproc 762 .LFE139: 764 .section .text.HAL_UART_Init,"ax",%progbits 765 .align 1 766 .global HAL_UART_Init 767 .syntax unified 768 .thumb 769 .thumb_func 771 HAL_UART_Init: 772 .LVL54: 773 .LFB134: 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 774 .loc 1 358 1 is_stmt 1 view -0 775 .cfi_startproc 776 @ args = 0, pretend = 0, frame = 0 777 @ frame_needed = 0, uses_anonymous_args = 0 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 778 .loc 1 360 3 view .LVU219 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 779 .loc 1 360 6 is_stmt 0 view .LVU220 780 0000 60B3 cbz r0, .L39 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 781 .loc 1 358 1 view .LVU221 782 0002 10B5 push {r4, lr} 783 .LCFI5: 784 .cfi_def_cfa_offset 8 785 .cfi_offset 4, -8 786 .cfi_offset 14, -4 787 0004 0446 mov r4, r0 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 788 .loc 1 366 3 is_stmt 1 view .LVU222 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 789 .loc 1 376 5 view .LVU223 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 790 .loc 1 378 3 view .LVU224 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 791 .loc 1 379 3 view .LVU225 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 792 .loc 1 381 3 view .LVU226 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 793 .loc 1 381 12 is_stmt 0 view .LVU227 794 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 795 .loc 1 381 6 view .LVU228 796 000a 13B3 cbz r3, .L44 797 .LVL55: 798 .L38: 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 799 .loc 1 402 3 is_stmt 1 view .LVU229 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 800 .loc 1 402 17 is_stmt 0 view .LVU230 801 000c 2423 movs r3, #36 802 000e 84F84130 strb r3, [r4, #65] 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 93 803 .loc 1 405 3 is_stmt 1 view .LVU231 804 0012 2268 ldr r2, [r4] 805 0014 D368 ldr r3, [r2, #12] 806 0016 23F40053 bic r3, r3, #8192 807 001a D360 str r3, [r2, #12] 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 808 .loc 1 408 3 view .LVU232 809 001c 2046 mov r0, r4 810 001e FFF7FEFF bl UART_SetConfig 811 .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)); 812 .loc 1 413 3 view .LVU233 813 0022 2268 ldr r2, [r4] 814 0024 1369 ldr r3, [r2, #16] 815 0026 23F49043 bic r3, r3, #18432 816 002a 1361 str r3, [r2, #16] 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 817 .loc 1 414 3 view .LVU234 818 002c 2268 ldr r2, [r4] 819 002e 5369 ldr r3, [r2, #20] 820 0030 23F02A03 bic r3, r3, #42 821 0034 5361 str r3, [r2, #20] 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 822 .loc 1 417 3 view .LVU235 823 0036 2268 ldr r2, [r4] 824 0038 D368 ldr r3, [r2, #12] 825 003a 43F40053 orr r3, r3, #8192 826 003e D360 str r3, [r2, #12] 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 827 .loc 1 420 3 view .LVU236 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 828 .loc 1 420 20 is_stmt 0 view .LVU237 829 0040 0020 movs r0, #0 830 0042 6064 str r0, [r4, #68] 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 831 .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; 832 .loc 1 421 17 is_stmt 0 view .LVU239 833 0044 2023 movs r3, #32 834 0046 84F84130 strb r3, [r4, #65] 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 835 .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; 836 .loc 1 422 18 is_stmt 0 view .LVU241 837 004a 84F84230 strb r3, [r4, #66] 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 838 .loc 1 423 3 is_stmt 1 view .LVU242 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 839 .loc 1 423 22 is_stmt 0 view .LVU243 840 004e 6063 str r0, [r4, #52] 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 841 .loc 1 425 3 is_stmt 1 view .LVU244 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 842 .loc 1 426 1 is_stmt 0 view .LVU245 843 0050 10BD pop {r4, pc} 844 .LVL57: 845 .L44: ARM GAS /tmp/cc4vHZRy.s page 94 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 846 .loc 1 384 5 is_stmt 1 view .LVU246 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 847 .loc 1 384 17 is_stmt 0 view .LVU247 848 0052 80F84030 strb r3, [r0, #64] 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 849 .loc 1 398 5 is_stmt 1 view .LVU248 850 0056 FFF7FEFF bl HAL_UART_MspInit 851 .LVL58: 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 852 .loc 1 398 5 is_stmt 0 view .LVU249 853 005a D7E7 b .L38 854 .LVL59: 855 .L39: 856 .LCFI6: 857 .cfi_def_cfa_offset 0 858 .cfi_restore 4 859 .cfi_restore 14 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 860 .loc 1 362 12 view .LVU250 861 005c 0120 movs r0, #1 862 .LVL60: 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 863 .loc 1 426 1 view .LVU251 864 005e 7047 bx lr 865 .cfi_endproc 866 .LFE134: 868 .section .text.HAL_HalfDuplex_Init,"ax",%progbits 869 .align 1 870 .global HAL_HalfDuplex_Init 871 .syntax unified 872 .thumb 873 .thumb_func 875 HAL_HalfDuplex_Init: 876 .LVL61: 877 .LFB135: 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 878 .loc 1 436 1 is_stmt 1 view -0 879 .cfi_startproc 880 @ args = 0, pretend = 0, frame = 0 881 @ frame_needed = 0, uses_anonymous_args = 0 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 882 .loc 1 438 3 view .LVU253 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 883 .loc 1 438 6 is_stmt 0 view .LVU254 884 0000 0028 cmp r0, #0 885 0002 31D0 beq .L48 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 886 .loc 1 436 1 view .LVU255 887 0004 10B5 push {r4, lr} 888 .LCFI7: 889 .cfi_def_cfa_offset 8 890 .cfi_offset 4, -8 891 .cfi_offset 14, -4 892 0006 0446 mov r4, r0 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_WORD_LENGTH(huart->Init.WordLength)); 893 .loc 1 444 3 is_stmt 1 view .LVU256 ARM GAS /tmp/cc4vHZRy.s page 95 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 894 .loc 1 445 3 view .LVU257 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 895 .loc 1 446 3 view .LVU258 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 896 .loc 1 448 3 view .LVU259 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 897 .loc 1 448 12 is_stmt 0 view .LVU260 898 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 899 .loc 1 448 6 view .LVU261 900 000c 3BB3 cbz r3, .L53 901 .LVL62: 902 .L47: 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 903 .loc 1 469 3 is_stmt 1 view .LVU262 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 904 .loc 1 469 17 is_stmt 0 view .LVU263 905 000e 2423 movs r3, #36 906 0010 84F84130 strb r3, [r4, #65] 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 907 .loc 1 472 3 is_stmt 1 view .LVU264 908 0014 2268 ldr r2, [r4] 909 0016 D368 ldr r3, [r2, #12] 910 0018 23F40053 bic r3, r3, #8192 911 001c D360 str r3, [r2, #12] 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 912 .loc 1 475 3 view .LVU265 913 001e 2046 mov r0, r4 914 0020 FFF7FEFF bl UART_SetConfig 915 .LVL63: 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** CLEAR_BIT(huart->Instance->CR3, (USART_CR3_IREN | USART_CR3_SCEN)); 916 .loc 1 480 3 view .LVU266 917 0024 2268 ldr r2, [r4] 918 0026 1369 ldr r3, [r2, #16] 919 0028 23F49043 bic r3, r3, #18432 920 002c 1361 str r3, [r2, #16] 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 921 .loc 1 481 3 view .LVU267 922 002e 2268 ldr r2, [r4] 923 0030 5369 ldr r3, [r2, #20] 924 0032 23F02203 bic r3, r3, #34 925 0036 5361 str r3, [r2, #20] 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 926 .loc 1 484 3 view .LVU268 927 0038 2268 ldr r2, [r4] 928 003a 5369 ldr r3, [r2, #20] 929 003c 43F00803 orr r3, r3, #8 930 0040 5361 str r3, [r2, #20] 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 931 .loc 1 487 3 view .LVU269 932 0042 2268 ldr r2, [r4] 933 0044 D368 ldr r3, [r2, #12] 934 0046 43F40053 orr r3, r3, #8192 935 004a D360 str r3, [r2, #12] 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 936 .loc 1 490 3 view .LVU270 ARM GAS /tmp/cc4vHZRy.s page 96 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 937 .loc 1 490 20 is_stmt 0 view .LVU271 938 004c 0020 movs r0, #0 939 004e 6064 str r0, [r4, #68] 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 940 .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; 941 .loc 1 491 17 is_stmt 0 view .LVU273 942 0050 2023 movs r3, #32 943 0052 84F84130 strb r3, [r4, #65] 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 944 .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; 945 .loc 1 492 18 is_stmt 0 view .LVU275 946 0056 84F84230 strb r3, [r4, #66] 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 947 .loc 1 493 3 is_stmt 1 view .LVU276 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 948 .loc 1 493 22 is_stmt 0 view .LVU277 949 005a 6063 str r0, [r4, #52] 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 950 .loc 1 495 3 is_stmt 1 view .LVU278 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 951 .loc 1 496 1 is_stmt 0 view .LVU279 952 005c 10BD pop {r4, pc} 953 .LVL64: 954 .L53: 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 955 .loc 1 451 5 is_stmt 1 view .LVU280 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 956 .loc 1 451 17 is_stmt 0 view .LVU281 957 005e 80F84030 strb r3, [r0, #64] 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 958 .loc 1 465 5 is_stmt 1 view .LVU282 959 0062 FFF7FEFF bl HAL_UART_MspInit 960 .LVL65: 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 961 .loc 1 465 5 is_stmt 0 view .LVU283 962 0066 D2E7 b .L47 963 .LVL66: 964 .L48: 965 .LCFI8: 966 .cfi_def_cfa_offset 0 967 .cfi_restore 4 968 .cfi_restore 14 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 969 .loc 1 440 12 view .LVU284 970 0068 0120 movs r0, #1 971 .LVL67: 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 972 .loc 1 496 1 view .LVU285 973 006a 7047 bx lr 974 .cfi_endproc 975 .LFE135: 977 .section .text.HAL_LIN_Init,"ax",%progbits 978 .align 1 979 .global HAL_LIN_Init ARM GAS /tmp/cc4vHZRy.s page 97 980 .syntax unified 981 .thumb 982 .thumb_func 984 HAL_LIN_Init: 985 .LVL68: 986 .LFB136: 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 987 .loc 1 510 1 is_stmt 1 view -0 988 .cfi_startproc 989 @ args = 0, pretend = 0, frame = 0 990 @ frame_needed = 0, uses_anonymous_args = 0 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 991 .loc 1 512 3 view .LVU287 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 992 .loc 1 512 6 is_stmt 0 view .LVU288 993 0000 0028 cmp r0, #0 994 0002 3CD0 beq .L57 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 995 .loc 1 510 1 view .LVU289 996 0004 38B5 push {r3, r4, r5, lr} 997 .LCFI9: 998 .cfi_def_cfa_offset 16 999 .cfi_offset 3, -16 1000 .cfi_offset 4, -12 1001 .cfi_offset 5, -8 1002 .cfi_offset 14, -4 1003 0006 0D46 mov r5, r1 1004 0008 0446 mov r4, r0 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1005 .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)); 1006 .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)); 1007 .loc 1 522 3 view .LVU292 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1008 .loc 1 523 3 view .LVU293 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1009 .loc 1 525 3 view .LVU294 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1010 .loc 1 525 12 is_stmt 0 view .LVU295 1011 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1012 .loc 1 525 6 view .LVU296 1013 000e 002B cmp r3, #0 1014 0010 30D0 beq .L62 1015 .LVL69: 1016 .L56: 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1017 .loc 1 546 3 is_stmt 1 view .LVU297 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1018 .loc 1 546 17 is_stmt 0 view .LVU298 1019 0012 2423 movs r3, #36 1020 0014 84F84130 strb r3, [r4, #65] 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1021 .loc 1 549 3 is_stmt 1 view .LVU299 1022 0018 2268 ldr r2, [r4] 1023 001a D368 ldr r3, [r2, #12] ARM GAS /tmp/cc4vHZRy.s page 98 1024 001c 23F40053 bic r3, r3, #8192 1025 0020 D360 str r3, [r2, #12] 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1026 .loc 1 552 3 view .LVU300 1027 0022 2046 mov r0, r4 1028 0024 FFF7FEFF bl UART_SetConfig 1029 .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)); 1030 .loc 1 557 3 view .LVU301 1031 0028 2268 ldr r2, [r4] 1032 002a 1369 ldr r3, [r2, #16] 1033 002c 23F40063 bic r3, r3, #2048 1034 0030 1361 str r3, [r2, #16] 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1035 .loc 1 558 3 view .LVU302 1036 0032 2268 ldr r2, [r4] 1037 0034 5369 ldr r3, [r2, #20] 1038 0036 23F02A03 bic r3, r3, #42 1039 003a 5361 str r3, [r2, #20] 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1040 .loc 1 561 3 view .LVU303 1041 003c 2268 ldr r2, [r4] 1042 003e 1369 ldr r3, [r2, #16] 1043 0040 43F48043 orr r3, r3, #16384 1044 0044 1361 str r3, [r2, #16] 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, BreakDetectLength); 1045 .loc 1 564 3 view .LVU304 1046 0046 2268 ldr r2, [r4] 1047 0048 1369 ldr r3, [r2, #16] 1048 004a 23F02003 bic r3, r3, #32 1049 004e 1361 str r3, [r2, #16] 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1050 .loc 1 565 3 view .LVU305 1051 0050 2368 ldr r3, [r4] 1052 0052 1969 ldr r1, [r3, #16] 1053 0054 0D43 orrs r5, r5, r1 1054 .LVL71: 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1055 .loc 1 565 3 is_stmt 0 view .LVU306 1056 0056 1D61 str r5, [r3, #16] 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1057 .loc 1 568 3 is_stmt 1 view .LVU307 1058 0058 2268 ldr r2, [r4] 1059 005a D368 ldr r3, [r2, #12] 1060 005c 43F40053 orr r3, r3, #8192 1061 0060 D360 str r3, [r2, #12] 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1062 .loc 1 571 3 view .LVU308 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1063 .loc 1 571 20 is_stmt 0 view .LVU309 1064 0062 0020 movs r0, #0 1065 0064 6064 str r0, [r4, #68] 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1066 .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; 1067 .loc 1 572 17 is_stmt 0 view .LVU311 1068 0066 2023 movs r3, #32 ARM GAS /tmp/cc4vHZRy.s page 99 1069 0068 84F84130 strb r3, [r4, #65] 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1070 .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; 1071 .loc 1 573 18 is_stmt 0 view .LVU313 1072 006c 84F84230 strb r3, [r4, #66] 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1073 .loc 1 574 3 is_stmt 1 view .LVU314 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1074 .loc 1 574 22 is_stmt 0 view .LVU315 1075 0070 6063 str r0, [r4, #52] 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1076 .loc 1 576 3 is_stmt 1 view .LVU316 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1077 .loc 1 577 1 is_stmt 0 view .LVU317 1078 0072 38BD pop {r3, r4, r5, pc} 1079 .LVL72: 1080 .L62: 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1081 .loc 1 528 5 is_stmt 1 view .LVU318 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1082 .loc 1 528 17 is_stmt 0 view .LVU319 1083 0074 80F84030 strb r3, [r0, #64] 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1084 .loc 1 542 5 is_stmt 1 view .LVU320 1085 0078 FFF7FEFF bl HAL_UART_MspInit 1086 .LVL73: 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1087 .loc 1 542 5 is_stmt 0 view .LVU321 1088 007c C9E7 b .L56 1089 .LVL74: 1090 .L57: 1091 .LCFI10: 1092 .cfi_def_cfa_offset 0 1093 .cfi_restore 3 1094 .cfi_restore 4 1095 .cfi_restore 5 1096 .cfi_restore 14 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1097 .loc 1 514 12 view .LVU322 1098 007e 0120 movs r0, #1 1099 .LVL75: 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1100 .loc 1 577 1 view .LVU323 1101 0080 7047 bx lr 1102 .cfi_endproc 1103 .LFE136: 1105 .section .text.HAL_MultiProcessor_Init,"ax",%progbits 1106 .align 1 1107 .global HAL_MultiProcessor_Init 1108 .syntax unified 1109 .thumb 1110 .thumb_func 1112 HAL_MultiProcessor_Init: 1113 .LVL76: 1114 .LFB137: 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ ARM GAS /tmp/cc4vHZRy.s page 100 1115 .loc 1 592 1 is_stmt 1 view -0 1116 .cfi_startproc 1117 @ args = 0, pretend = 0, frame = 0 1118 @ frame_needed = 0, uses_anonymous_args = 0 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1119 .loc 1 594 3 view .LVU325 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1120 .loc 1 594 6 is_stmt 0 view .LVU326 1121 0000 0028 cmp r0, #0 1122 0002 41D0 beq .L66 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1123 .loc 1 592 1 view .LVU327 1124 0004 70B5 push {r4, r5, r6, lr} 1125 .LCFI11: 1126 .cfi_def_cfa_offset 16 1127 .cfi_offset 4, -16 1128 .cfi_offset 5, -12 1129 .cfi_offset 6, -8 1130 .cfi_offset 14, -4 1131 0006 0D46 mov r5, r1 1132 0008 1646 mov r6, r2 1133 000a 0446 mov r4, r0 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1134 .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)); 1135 .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)); 1136 .loc 1 604 3 view .LVU330 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** assert_param(IS_UART_OVERSAMPLING(huart->Init.OverSampling)); 1137 .loc 1 605 3 view .LVU331 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1138 .loc 1 606 3 view .LVU332 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1139 .loc 1 608 3 view .LVU333 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1140 .loc 1 608 12 is_stmt 0 view .LVU334 1141 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1142 .loc 1 608 6 view .LVU335 1143 0010 002B cmp r3, #0 1144 0012 34D0 beq .L71 1145 .LVL77: 1146 .L65: 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1147 .loc 1 629 3 is_stmt 1 view .LVU336 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1148 .loc 1 629 17 is_stmt 0 view .LVU337 1149 0014 2423 movs r3, #36 1150 0016 84F84130 strb r3, [r4, #65] 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1151 .loc 1 632 3 is_stmt 1 view .LVU338 1152 001a 2268 ldr r2, [r4] 1153 001c D368 ldr r3, [r2, #12] 1154 001e 23F40053 bic r3, r3, #8192 1155 0022 D360 str r3, [r2, #12] 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1156 .loc 1 635 3 view .LVU339 ARM GAS /tmp/cc4vHZRy.s page 101 1157 0024 2046 mov r0, r4 1158 0026 FFF7FEFF bl UART_SetConfig 1159 .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)); 1160 .loc 1 640 3 view .LVU340 1161 002a 2268 ldr r2, [r4] 1162 002c 1369 ldr r3, [r2, #16] 1163 002e 23F49043 bic r3, r3, #18432 1164 0032 1361 str r3, [r2, #16] 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1165 .loc 1 641 3 view .LVU341 1166 0034 2268 ldr r2, [r4] 1167 0036 5369 ldr r3, [r2, #20] 1168 0038 23F02A03 bic r3, r3, #42 1169 003c 5361 str r3, [r2, #20] 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR2, Address); 1170 .loc 1 644 3 view .LVU342 1171 003e 2268 ldr r2, [r4] 1172 0040 1369 ldr r3, [r2, #16] 1173 0042 23F00F03 bic r3, r3, #15 1174 0046 1361 str r3, [r2, #16] 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1175 .loc 1 645 3 view .LVU343 1176 0048 2368 ldr r3, [r4] 1177 004a 1969 ldr r1, [r3, #16] 1178 004c 0D43 orrs r5, r5, r1 1179 004e 1D61 str r5, [r3, #16] 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** SET_BIT(huart->Instance->CR1, WakeUpMethod); 1180 .loc 1 648 3 view .LVU344 1181 0050 2268 ldr r2, [r4] 1182 0052 D368 ldr r3, [r2, #12] 1183 0054 23F40063 bic r3, r3, #2048 1184 0058 D360 str r3, [r2, #12] 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1185 .loc 1 649 3 view .LVU345 1186 005a 2368 ldr r3, [r4] 1187 005c DA68 ldr r2, [r3, #12] 1188 005e 1643 orrs r6, r6, r2 1189 .LVL79: 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1190 .loc 1 649 3 is_stmt 0 view .LVU346 1191 0060 DE60 str r6, [r3, #12] 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1192 .loc 1 652 3 is_stmt 1 view .LVU347 1193 0062 2268 ldr r2, [r4] 1194 0064 D368 ldr r3, [r2, #12] 1195 0066 43F40053 orr r3, r3, #8192 1196 006a D360 str r3, [r2, #12] 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1197 .loc 1 655 3 view .LVU348 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 1198 .loc 1 655 20 is_stmt 0 view .LVU349 1199 006c 0020 movs r0, #0 1200 006e 6064 str r0, [r4, #68] 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 1201 .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; ARM GAS /tmp/cc4vHZRy.s page 102 1202 .loc 1 656 17 is_stmt 0 view .LVU351 1203 0070 2023 movs r3, #32 1204 0072 84F84130 strb r3, [r4, #65] 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1205 .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; 1206 .loc 1 657 18 is_stmt 0 view .LVU353 1207 0076 84F84230 strb r3, [r4, #66] 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1208 .loc 1 658 3 is_stmt 1 view .LVU354 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1209 .loc 1 658 22 is_stmt 0 view .LVU355 1210 007a 6063 str r0, [r4, #52] 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1211 .loc 1 660 3 is_stmt 1 view .LVU356 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1212 .loc 1 661 1 is_stmt 0 view .LVU357 1213 007c 70BD pop {r4, r5, r6, pc} 1214 .LVL80: 1215 .L71: 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1216 .loc 1 611 5 is_stmt 1 view .LVU358 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1217 .loc 1 611 17 is_stmt 0 view .LVU359 1218 007e 80F84030 strb r3, [r0, #64] 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1219 .loc 1 625 5 is_stmt 1 view .LVU360 1220 0082 FFF7FEFF bl HAL_UART_MspInit 1221 .LVL81: 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1222 .loc 1 625 5 is_stmt 0 view .LVU361 1223 0086 C5E7 b .L65 1224 .LVL82: 1225 .L66: 1226 .LCFI12: 1227 .cfi_def_cfa_offset 0 1228 .cfi_restore 4 1229 .cfi_restore 5 1230 .cfi_restore 6 1231 .cfi_restore 14 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1232 .loc 1 596 12 view .LVU362 1233 0088 0120 movs r0, #1 1234 .LVL83: 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1235 .loc 1 661 1 view .LVU363 1236 008a 7047 bx lr 1237 .cfi_endproc 1238 .LFE137: 1240 .section .text.HAL_UART_MspDeInit,"ax",%progbits 1241 .align 1 1242 .weak HAL_UART_MspDeInit 1243 .syntax unified 1244 .thumb 1245 .thumb_func 1247 HAL_UART_MspDeInit: 1248 .LVL84: ARM GAS /tmp/cc4vHZRy.s page 103 1249 .LFB140: 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 1250 .loc 1 731 1 is_stmt 1 view -0 1251 .cfi_startproc 1252 @ args = 0, pretend = 0, frame = 0 1253 @ frame_needed = 0, uses_anonymous_args = 0 1254 @ 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, 1255 .loc 1 733 3 view .LVU365 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1256 .loc 1 737 1 is_stmt 0 view .LVU366 1257 0000 7047 bx lr 1258 .cfi_endproc 1259 .LFE140: 1261 .section .text.HAL_UART_DeInit,"ax",%progbits 1262 .align 1 1263 .global HAL_UART_DeInit 1264 .syntax unified 1265 .thumb 1266 .thumb_func 1268 HAL_UART_DeInit: 1269 .LVL85: 1270 .LFB138: 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1271 .loc 1 670 1 is_stmt 1 view -0 1272 .cfi_startproc 1273 @ args = 0, pretend = 0, frame = 0 1274 @ frame_needed = 0, uses_anonymous_args = 0 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1275 .loc 1 672 3 view .LVU368 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1276 .loc 1 672 6 is_stmt 0 view .LVU369 1277 0000 B0B1 cbz r0, .L75 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the UART handle allocation */ 1278 .loc 1 670 1 view .LVU370 1279 0002 10B5 push {r4, lr} 1280 .LCFI13: 1281 .cfi_def_cfa_offset 8 1282 .cfi_offset 4, -8 1283 .cfi_offset 14, -4 1284 0004 0446 mov r4, r0 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1285 .loc 1 678 3 is_stmt 1 view .LVU371 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1286 .loc 1 680 3 view .LVU372 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1287 .loc 1 680 17 is_stmt 0 view .LVU373 1288 0006 2423 movs r3, #36 1289 0008 80F84130 strb r3, [r0, #65] 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1290 .loc 1 683 3 is_stmt 1 view .LVU374 1291 000c 0268 ldr r2, [r0] 1292 000e D368 ldr r3, [r2, #12] 1293 0010 23F40053 bic r3, r3, #8192 1294 0014 D360 str r3, [r2, #12] 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 1295 .loc 1 694 3 view .LVU375 ARM GAS /tmp/cc4vHZRy.s page 104 1296 0016 FFF7FEFF bl HAL_UART_MspDeInit 1297 .LVL86: 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1298 .loc 1 697 3 view .LVU376 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_RESET; 1299 .loc 1 697 20 is_stmt 0 view .LVU377 1300 001a 0020 movs r0, #0 1301 001c 6064 str r0, [r4, #68] 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_RESET; 1302 .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; 1303 .loc 1 698 17 is_stmt 0 view .LVU379 1304 001e 84F84100 strb r0, [r4, #65] 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1305 .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; 1306 .loc 1 699 18 is_stmt 0 view .LVU381 1307 0022 84F84200 strb r0, [r4, #66] 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 1308 .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; 1309 .loc 1 700 24 is_stmt 0 view .LVU383 1310 0026 2063 str r0, [r4, #48] 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1311 .loc 1 701 3 is_stmt 1 view .LVU384 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1312 .loc 1 701 22 is_stmt 0 view .LVU385 1313 0028 6063 str r0, [r4, #52] 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1314 .loc 1 704 3 is_stmt 1 view .LVU386 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1315 .loc 1 704 3 view .LVU387 1316 002a 84F84000 strb r0, [r4, #64] 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1317 .loc 1 704 3 view .LVU388 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1318 .loc 1 706 3 view .LVU389 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1319 .loc 1 707 1 is_stmt 0 view .LVU390 1320 002e 10BD pop {r4, pc} 1321 .LVL87: 1322 .L75: 1323 .LCFI14: 1324 .cfi_def_cfa_offset 0 1325 .cfi_restore 4 1326 .cfi_restore 14 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1327 .loc 1 674 12 view .LVU391 1328 0030 0120 movs r0, #1 1329 .LVL88: 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1330 .loc 1 707 1 view .LVU392 1331 0032 7047 bx lr 1332 .cfi_endproc 1333 .LFE138: 1335 .section .text.HAL_UART_Transmit,"ax",%progbits 1336 .align 1 ARM GAS /tmp/cc4vHZRy.s page 105 1337 .global HAL_UART_Transmit 1338 .syntax unified 1339 .thumb 1340 .thumb_func 1342 HAL_UART_Transmit: 1343 .LVL89: 1344 .LFB141: 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1345 .loc 1 1136 1 is_stmt 1 view -0 1346 .cfi_startproc 1347 @ args = 0, pretend = 0, frame = 0 1348 @ frame_needed = 0, uses_anonymous_args = 0 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint8_t *pdata8bits; 1349 .loc 1 1136 1 is_stmt 0 view .LVU394 1350 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1351 .LCFI15: 1352 .cfi_def_cfa_offset 24 1353 .cfi_offset 4, -24 1354 .cfi_offset 5, -20 1355 .cfi_offset 6, -16 1356 .cfi_offset 7, -12 1357 .cfi_offset 8, -8 1358 .cfi_offset 14, -4 1359 0004 82B0 sub sp, sp, #8 1360 .LCFI16: 1361 .cfi_def_cfa_offset 32 1362 0006 1E46 mov r6, r3 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint16_t *pdata16bits; 1363 .loc 1 1137 3 is_stmt 1 view .LVU395 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1364 .loc 1 1138 3 view .LVU396 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1365 .loc 1 1139 3 view .LVU397 1366 .LVL90: 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1367 .loc 1 1142 3 view .LVU398 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1368 .loc 1 1142 12 is_stmt 0 view .LVU399 1369 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1370 .LVL91: 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1371 .loc 1 1142 12 view .LVU400 1372 000c DBB2 uxtb r3, r3 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1373 .loc 1 1142 6 view .LVU401 1374 000e 202B cmp r3, #32 1375 0010 56D1 bne .L89 1376 0012 0446 mov r4, r0 1377 0014 0D46 mov r5, r1 1378 0016 9046 mov r8, r2 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1379 .loc 1 1144 5 is_stmt 1 view .LVU402 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1380 .loc 1 1144 8 is_stmt 0 view .LVU403 1381 0018 0029 cmp r1, #0 1382 001a 55D0 beq .L90 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 106 1383 .loc 1 1144 25 discriminator 1 view .LVU404 1384 001c 0AB9 cbnz r2, .L95 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1385 .loc 1 1146 15 view .LVU405 1386 001e 0120 movs r0, #1 1387 .LVL92: 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1388 .loc 1 1146 15 view .LVU406 1389 0020 4FE0 b .L81 1390 .LVL93: 1391 .L95: 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1392 .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; 1393 .loc 1 1149 22 is_stmt 0 view .LVU408 1394 0022 0023 movs r3, #0 1395 0024 4364 str r3, [r0, #68] 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1396 .loc 1 1150 5 is_stmt 1 view .LVU409 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1397 .loc 1 1150 19 is_stmt 0 view .LVU410 1398 0026 2123 movs r3, #33 1399 0028 80F84130 strb r3, [r0, #65] 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1400 .loc 1 1153 5 is_stmt 1 view .LVU411 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1401 .loc 1 1153 17 is_stmt 0 view .LVU412 1402 002c FFF7FEFF bl HAL_GetTick 1403 .LVL94: 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1404 .loc 1 1153 17 view .LVU413 1405 0030 0746 mov r7, r0 1406 .LVL95: 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1407 .loc 1 1155 5 is_stmt 1 view .LVU414 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1408 .loc 1 1155 23 is_stmt 0 view .LVU415 1409 0032 A4F82480 strh r8, [r4, #36] @ movhi 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1410 .loc 1 1156 5 is_stmt 1 view .LVU416 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1411 .loc 1 1156 24 is_stmt 0 view .LVU417 1412 0036 A4F82680 strh r8, [r4, #38] @ movhi 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1413 .loc 1 1159 5 is_stmt 1 view .LVU418 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1414 .loc 1 1159 21 is_stmt 0 view .LVU419 1415 003a A368 ldr r3, [r4, #8] 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1416 .loc 1 1159 8 view .LVU420 1417 003c B3F5805F cmp r3, #4096 1418 0040 02D0 beq .L96 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1419 .loc 1 1167 19 view .LVU421 1420 0042 4FF00008 mov r8, #0 1421 0046 14E0 b .L86 1422 .L96: ARM GAS /tmp/cc4vHZRy.s page 107 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1423 .loc 1 1159 71 discriminator 1 view .LVU422 1424 0048 2369 ldr r3, [r4, #16] 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1425 .loc 1 1159 56 discriminator 1 view .LVU423 1426 004a 2BB3 cbz r3, .L93 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1427 .loc 1 1167 19 view .LVU424 1428 004c 4FF00008 mov r8, #0 1429 0050 0FE0 b .L86 1430 .LVL96: 1431 .L98: 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1432 .loc 1 1174 9 is_stmt 1 view .LVU425 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1433 .loc 1 1174 23 is_stmt 0 view .LVU426 1434 0052 2023 movs r3, #32 1435 0054 84F84130 strb r3, [r4, #65] 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1436 .loc 1 1176 9 is_stmt 1 view .LVU427 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1437 .loc 1 1176 16 is_stmt 0 view .LVU428 1438 0058 0320 movs r0, #3 1439 005a 32E0 b .L81 1440 .L99: 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1441 .loc 1 1180 9 is_stmt 1 view .LVU429 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1442 .loc 1 1180 42 is_stmt 0 view .LVU430 1443 005c 38F8023B ldrh r3, [r8], #2 1444 .LVL97: 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1445 .loc 1 1180 14 view .LVU431 1446 0060 2268 ldr r2, [r4] 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1447 .loc 1 1180 31 view .LVU432 1448 0062 C3F30803 ubfx r3, r3, #0, #9 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1449 .loc 1 1180 29 view .LVU433 1450 0066 5360 str r3, [r2, #4] 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1451 .loc 1 1181 9 is_stmt 1 view .LVU434 1452 .LVL98: 1453 .L85: 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1454 .loc 1 1188 7 view .LVU435 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1455 .loc 1 1188 12 is_stmt 0 view .LVU436 1456 0068 E28C ldrh r2, [r4, #38] 1457 006a 92B2 uxth r2, r2 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1458 .loc 1 1188 25 view .LVU437 1459 006c 013A subs r2, r2, #1 1460 006e 92B2 uxth r2, r2 1461 0070 E284 strh r2, [r4, #38] @ movhi 1462 .LVL99: 1463 .L86: ARM GAS /tmp/cc4vHZRy.s page 108 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1464 .loc 1 1170 11 is_stmt 1 view .LVU438 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1465 .loc 1 1170 17 is_stmt 0 view .LVU439 1466 0072 E38C ldrh r3, [r4, #38] 1467 0074 9BB2 uxth r3, r3 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1468 .loc 1 1170 11 view .LVU440 1469 0076 93B1 cbz r3, .L97 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1470 .loc 1 1172 7 is_stmt 1 view .LVU441 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1471 .loc 1 1172 11 is_stmt 0 view .LVU442 1472 0078 0096 str r6, [sp] 1473 007a 3B46 mov r3, r7 1474 007c 0022 movs r2, #0 1475 007e 8021 movs r1, #128 1476 0080 2046 mov r0, r4 1477 0082 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1478 .LVL100: 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1479 .loc 1 1172 10 view .LVU443 1480 0086 0028 cmp r0, #0 1481 0088 E3D1 bne .L98 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1482 .loc 1 1178 7 is_stmt 1 view .LVU444 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1483 .loc 1 1178 10 is_stmt 0 view .LVU445 1484 008a 002D cmp r5, #0 1485 008c E6D0 beq .L99 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1486 .loc 1 1185 9 is_stmt 1 view .LVU446 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1487 .loc 1 1185 41 is_stmt 0 view .LVU447 1488 008e 15F8012B ldrb r2, [r5], #1 @ zero_extendqisi2 1489 .LVL101: 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1490 .loc 1 1185 14 view .LVU448 1491 0092 2368 ldr r3, [r4] 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata8bits++; 1492 .loc 1 1185 29 view .LVU449 1493 0094 5A60 str r2, [r3, #4] 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1494 .loc 1 1186 9 is_stmt 1 view .LVU450 1495 .LVL102: 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1496 .loc 1 1186 9 is_stmt 0 view .LVU451 1497 0096 E7E7 b .L85 1498 .LVL103: 1499 .L93: 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1500 .loc 1 1162 19 view .LVU452 1501 0098 A846 mov r8, r5 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 1502 .loc 1 1161 19 view .LVU453 1503 009a 0025 movs r5, #0 1504 .LVL104: ARM GAS /tmp/cc4vHZRy.s page 109 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (const uint16_t *) pData; 1505 .loc 1 1161 19 view .LVU454 1506 009c E9E7 b .L86 1507 .LVL105: 1508 .L97: 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1509 .loc 1 1191 5 is_stmt 1 view .LVU455 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1510 .loc 1 1191 9 is_stmt 0 view .LVU456 1511 009e 0096 str r6, [sp] 1512 00a0 3B46 mov r3, r7 1513 00a2 0022 movs r2, #0 1514 00a4 4021 movs r1, #64 1515 00a6 2046 mov r0, r4 1516 00a8 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1517 .LVL106: 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1518 .loc 1 1191 8 view .LVU457 1519 00ac 18B9 cbnz r0, .L100 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1520 .loc 1 1199 5 is_stmt 1 view .LVU458 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1521 .loc 1 1199 19 is_stmt 0 view .LVU459 1522 00ae 2023 movs r3, #32 1523 00b0 84F84130 strb r3, [r4, #65] 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1524 .loc 1 1201 5 is_stmt 1 view .LVU460 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1525 .loc 1 1201 12 is_stmt 0 view .LVU461 1526 00b4 05E0 b .L81 1527 .L100: 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1528 .loc 1 1193 7 is_stmt 1 view .LVU462 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1529 .loc 1 1193 21 is_stmt 0 view .LVU463 1530 00b6 2023 movs r3, #32 1531 00b8 84F84130 strb r3, [r4, #65] 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1532 .loc 1 1195 7 is_stmt 1 view .LVU464 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1533 .loc 1 1195 14 is_stmt 0 view .LVU465 1534 00bc 0320 movs r0, #3 1535 00be 00E0 b .L81 1536 .LVL107: 1537 .L89: 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1538 .loc 1 1205 12 view .LVU466 1539 00c0 0220 movs r0, #2 1540 .LVL108: 1541 .L81: 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1542 .loc 1 1207 1 view .LVU467 1543 00c2 02B0 add sp, sp, #8 1544 .LCFI17: 1545 .cfi_remember_state 1546 .cfi_def_cfa_offset 24 1547 @ sp needed ARM GAS /tmp/cc4vHZRy.s page 110 1548 00c4 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1549 .LVL109: 1550 .L90: 1551 .LCFI18: 1552 .cfi_restore_state 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1553 .loc 1 1146 15 view .LVU468 1554 00c8 0120 movs r0, #1 1555 .LVL110: 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1556 .loc 1 1146 15 view .LVU469 1557 00ca FAE7 b .L81 1558 .cfi_endproc 1559 .LFE141: 1561 .section .text.HAL_UART_Receive,"ax",%progbits 1562 .align 1 1563 .global HAL_UART_Receive 1564 .syntax unified 1565 .thumb 1566 .thumb_func 1568 HAL_UART_Receive: 1569 .LVL111: 1570 .LFB142: 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1571 .loc 1 1222 1 is_stmt 1 view -0 1572 .cfi_startproc 1573 @ args = 0, pretend = 0, frame = 0 1574 @ frame_needed = 0, uses_anonymous_args = 0 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 1575 .loc 1 1222 1 is_stmt 0 view .LVU471 1576 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1577 .LCFI19: 1578 .cfi_def_cfa_offset 24 1579 .cfi_offset 4, -24 1580 .cfi_offset 5, -20 1581 .cfi_offset 6, -16 1582 .cfi_offset 7, -12 1583 .cfi_offset 8, -8 1584 .cfi_offset 14, -4 1585 0004 82B0 sub sp, sp, #8 1586 .LCFI20: 1587 .cfi_def_cfa_offset 32 1588 0006 1E46 mov r6, r3 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 1589 .loc 1 1223 3 is_stmt 1 view .LVU472 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart = 0U; 1590 .loc 1 1224 3 view .LVU473 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1591 .loc 1 1225 3 view .LVU474 1592 .LVL112: 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1593 .loc 1 1228 3 view .LVU475 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1594 .loc 1 1228 12 is_stmt 0 view .LVU476 1595 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 1596 .LVL113: 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 111 1597 .loc 1 1228 12 view .LVU477 1598 000c DBB2 uxtb r3, r3 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1599 .loc 1 1228 6 view .LVU478 1600 000e 202B cmp r3, #32 1601 0010 59D1 bne .L112 1602 0012 0446 mov r4, r0 1603 0014 0D46 mov r5, r1 1604 0016 9046 mov r8, r2 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1605 .loc 1 1230 5 is_stmt 1 view .LVU479 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1606 .loc 1 1230 8 is_stmt 0 view .LVU480 1607 0018 0029 cmp r1, #0 1608 001a 58D0 beq .L113 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1609 .loc 1 1230 25 discriminator 1 view .LVU481 1610 001c 0AB9 cbnz r2, .L118 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1611 .loc 1 1232 15 view .LVU482 1612 001e 0120 movs r0, #1 1613 .LVL114: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1614 .loc 1 1232 15 view .LVU483 1615 0020 52E0 b .L102 1616 .LVL115: 1617 .L118: 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 1618 .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; 1619 .loc 1 1235 22 is_stmt 0 view .LVU485 1620 0022 0023 movs r3, #0 1621 0024 4364 str r3, [r0, #68] 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1622 .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; 1623 .loc 1 1236 20 is_stmt 0 view .LVU487 1624 0026 2222 movs r2, #34 1625 .LVL116: 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 1626 .loc 1 1236 20 view .LVU488 1627 0028 80F84220 strb r2, [r0, #66] 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1628 .loc 1 1237 5 is_stmt 1 view .LVU489 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1629 .loc 1 1237 26 is_stmt 0 view .LVU490 1630 002c 0363 str r3, [r0, #48] 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1631 .loc 1 1240 5 is_stmt 1 view .LVU491 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1632 .loc 1 1240 17 is_stmt 0 view .LVU492 1633 002e FFF7FEFF bl HAL_GetTick 1634 .LVL117: 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1635 .loc 1 1240 17 view .LVU493 1636 0032 0746 mov r7, r0 1637 .LVL118: ARM GAS /tmp/cc4vHZRy.s page 112 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1638 .loc 1 1242 5 is_stmt 1 view .LVU494 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 1639 .loc 1 1242 23 is_stmt 0 view .LVU495 1640 0034 A4F82C80 strh r8, [r4, #44] @ movhi 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1641 .loc 1 1243 5 is_stmt 1 view .LVU496 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1642 .loc 1 1243 24 is_stmt 0 view .LVU497 1643 0038 A4F82E80 strh r8, [r4, #46] @ movhi 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1644 .loc 1 1246 5 is_stmt 1 view .LVU498 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1645 .loc 1 1246 21 is_stmt 0 view .LVU499 1646 003c A368 ldr r3, [r4, #8] 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1647 .loc 1 1246 8 view .LVU500 1648 003e B3F5805F cmp r3, #4096 1649 0042 02D0 beq .L119 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1650 .loc 1 1254 19 view .LVU501 1651 0044 4FF00008 mov r8, #0 1652 0048 1CE0 b .L104 1653 .L119: 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1654 .loc 1 1246 71 discriminator 1 view .LVU502 1655 004a 2369 ldr r3, [r4, #16] 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1656 .loc 1 1246 56 discriminator 1 view .LVU503 1657 004c 13B1 cbz r3, .L116 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1658 .loc 1 1254 19 view .LVU504 1659 004e 4FF00008 mov r8, #0 1660 0052 17E0 b .L104 1661 .L116: 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1662 .loc 1 1249 19 view .LVU505 1663 0054 A846 mov r8, r5 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1664 .loc 1 1248 19 view .LVU506 1665 0056 0025 movs r5, #0 1666 .LVL119: 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 1667 .loc 1 1248 19 view .LVU507 1668 0058 14E0 b .L104 1669 .LVL120: 1670 .L121: 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1671 .loc 1 1262 9 is_stmt 1 view .LVU508 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1672 .loc 1 1262 24 is_stmt 0 view .LVU509 1673 005a 2023 movs r3, #32 1674 005c 84F84230 strb r3, [r4, #66] 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1675 .loc 1 1264 9 is_stmt 1 view .LVU510 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1676 .loc 1 1264 16 is_stmt 0 view .LVU511 ARM GAS /tmp/cc4vHZRy.s page 113 1677 0060 0320 movs r0, #3 1678 0062 31E0 b .L102 1679 .L122: 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1680 .loc 1 1268 9 is_stmt 1 view .LVU512 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1681 .loc 1 1268 40 is_stmt 0 view .LVU513 1682 0064 2368 ldr r3, [r4] 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1683 .loc 1 1268 50 view .LVU514 1684 0066 5B68 ldr r3, [r3, #4] 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1685 .loc 1 1268 24 view .LVU515 1686 0068 C3F30803 ubfx r3, r3, #0, #9 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 1687 .loc 1 1268 22 view .LVU516 1688 006c 28F8023B strh r3, [r8], #2 @ movhi 1689 .LVL121: 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1690 .loc 1 1269 9 is_stmt 1 view .LVU517 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1691 .loc 1 1269 9 is_stmt 0 view .LVU518 1692 0070 03E0 b .L107 1693 .L108: 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1694 .loc 1 1275 11 is_stmt 1 view .LVU519 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1695 .loc 1 1275 40 is_stmt 0 view .LVU520 1696 0072 2368 ldr r3, [r4] 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1697 .loc 1 1275 50 view .LVU521 1698 0074 5B68 ldr r3, [r3, #4] 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1699 .loc 1 1275 23 view .LVU522 1700 0076 2B70 strb r3, [r5] 1701 .L110: 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1702 .loc 1 1281 9 is_stmt 1 view .LVU523 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1703 .loc 1 1281 19 is_stmt 0 view .LVU524 1704 0078 0135 adds r5, r5, #1 1705 .LVL122: 1706 .L107: 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1707 .loc 1 1283 7 is_stmt 1 view .LVU525 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1708 .loc 1 1283 12 is_stmt 0 view .LVU526 1709 007a E28D ldrh r2, [r4, #46] 1710 007c 92B2 uxth r2, r2 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1711 .loc 1 1283 25 view .LVU527 1712 007e 013A subs r2, r2, #1 1713 0080 92B2 uxth r2, r2 1714 0082 E285 strh r2, [r4, #46] @ movhi 1715 .LVL123: 1716 .L104: 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 114 1717 .loc 1 1258 11 is_stmt 1 view .LVU528 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1718 .loc 1 1258 17 is_stmt 0 view .LVU529 1719 0084 E38D ldrh r3, [r4, #46] 1720 0086 9BB2 uxth r3, r3 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1721 .loc 1 1258 11 view .LVU530 1722 0088 C3B1 cbz r3, .L120 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1723 .loc 1 1260 7 is_stmt 1 view .LVU531 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1724 .loc 1 1260 11 is_stmt 0 view .LVU532 1725 008a 0096 str r6, [sp] 1726 008c 3B46 mov r3, r7 1727 008e 0022 movs r2, #0 1728 0090 2021 movs r1, #32 1729 0092 2046 mov r0, r4 1730 0094 FFF7FEFF bl UART_WaitOnFlagUntilTimeout 1731 .LVL124: 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1732 .loc 1 1260 10 view .LVU533 1733 0098 0028 cmp r0, #0 1734 009a DED1 bne .L121 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1735 .loc 1 1266 7 is_stmt 1 view .LVU534 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1736 .loc 1 1266 10 is_stmt 0 view .LVU535 1737 009c 002D cmp r5, #0 1738 009e E1D0 beq .L122 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1739 .loc 1 1273 9 is_stmt 1 view .LVU536 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1740 .loc 1 1273 25 is_stmt 0 view .LVU537 1741 00a0 A368 ldr r3, [r4, #8] 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1742 .loc 1 1273 12 view .LVU538 1743 00a2 B3F5805F cmp r3, #4096 1744 00a6 E4D0 beq .L108 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1745 .loc 1 1273 60 discriminator 1 view .LVU539 1746 00a8 13B9 cbnz r3, .L109 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1747 .loc 1 1273 126 discriminator 2 view .LVU540 1748 00aa 2369 ldr r3, [r4, #16] 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1749 .loc 1 1273 111 discriminator 2 view .LVU541 1750 00ac 002B cmp r3, #0 1751 00ae E0D0 beq .L108 1752 .L109: 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1753 .loc 1 1279 11 is_stmt 1 view .LVU542 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1754 .loc 1 1279 40 is_stmt 0 view .LVU543 1755 00b0 2368 ldr r3, [r4] 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1756 .loc 1 1279 50 view .LVU544 1757 00b2 5B68 ldr r3, [r3, #4] ARM GAS /tmp/cc4vHZRy.s page 115 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1758 .loc 1 1279 25 view .LVU545 1759 00b4 03F07F03 and r3, r3, #127 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1760 .loc 1 1279 23 view .LVU546 1761 00b8 2B70 strb r3, [r5] 1762 00ba DDE7 b .L110 1763 .L120: 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1764 .loc 1 1287 5 is_stmt 1 view .LVU547 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1765 .loc 1 1287 20 is_stmt 0 view .LVU548 1766 00bc 2023 movs r3, #32 1767 00be 84F84230 strb r3, [r4, #66] 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1768 .loc 1 1289 5 is_stmt 1 view .LVU549 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1769 .loc 1 1289 12 is_stmt 0 view .LVU550 1770 00c2 0020 movs r0, #0 1771 00c4 00E0 b .L102 1772 .LVL125: 1773 .L112: 1293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1774 .loc 1 1293 12 view .LVU551 1775 00c6 0220 movs r0, #2 1776 .LVL126: 1777 .L102: 1295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1778 .loc 1 1295 1 view .LVU552 1779 00c8 02B0 add sp, sp, #8 1780 .LCFI21: 1781 .cfi_remember_state 1782 .cfi_def_cfa_offset 24 1783 @ sp needed 1784 00ca BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1785 .LVL127: 1786 .L113: 1787 .LCFI22: 1788 .cfi_restore_state 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1789 .loc 1 1232 15 view .LVU553 1790 00ce 0120 movs r0, #1 1791 .LVL128: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1792 .loc 1 1232 15 view .LVU554 1793 00d0 FAE7 b .L102 1794 .cfi_endproc 1795 .LFE142: 1797 .section .text.HAL_UART_Transmit_IT,"ax",%progbits 1798 .align 1 1799 .global HAL_UART_Transmit_IT 1800 .syntax unified 1801 .thumb 1802 .thumb_func 1804 HAL_UART_Transmit_IT: 1805 .LVL129: 1806 .LFB143: ARM GAS /tmp/cc4vHZRy.s page 116 1309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Tx process is not already ongoing */ 1807 .loc 1 1309 1 is_stmt 1 view -0 1808 .cfi_startproc 1809 @ args = 0, pretend = 0, frame = 0 1810 @ frame_needed = 0, uses_anonymous_args = 0 1811 @ link register save eliminated. 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1812 .loc 1 1311 3 view .LVU556 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1813 .loc 1 1311 12 is_stmt 0 view .LVU557 1814 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1815 0004 DBB2 uxtb r3, r3 1311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1816 .loc 1 1311 6 view .LVU558 1817 0006 202B cmp r3, #32 1818 0008 10D1 bne .L125 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1819 .loc 1 1313 5 is_stmt 1 view .LVU559 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1820 .loc 1 1313 8 is_stmt 0 view .LVU560 1821 000a 89B1 cbz r1, .L126 1313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1822 .loc 1 1313 25 discriminator 1 view .LVU561 1823 000c 92B1 cbz r2, .L127 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1824 .loc 1 1318 5 is_stmt 1 view .LVU562 1318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1825 .loc 1 1318 23 is_stmt 0 view .LVU563 1826 000e 0162 str r1, [r0, #32] 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1827 .loc 1 1319 5 is_stmt 1 view .LVU564 1319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1828 .loc 1 1319 23 is_stmt 0 view .LVU565 1829 0010 8284 strh r2, [r0, #36] @ movhi 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1830 .loc 1 1320 5 is_stmt 1 view .LVU566 1320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1831 .loc 1 1320 24 is_stmt 0 view .LVU567 1832 0012 C284 strh r2, [r0, #38] @ movhi 1322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1833 .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; 1834 .loc 1 1322 22 is_stmt 0 view .LVU569 1835 0014 0023 movs r3, #0 1836 0016 4364 str r3, [r0, #68] 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1837 .loc 1 1323 5 is_stmt 1 view .LVU570 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1838 .loc 1 1323 19 is_stmt 0 view .LVU571 1839 0018 2122 movs r2, #33 1840 .LVL130: 1323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1841 .loc 1 1323 19 view .LVU572 1842 001a 80F84120 strb r2, [r0, #65] 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1843 .loc 1 1326 5 is_stmt 1 view .LVU573 1844 001e 0168 ldr r1, [r0] ARM GAS /tmp/cc4vHZRy.s page 117 1845 .LVL131: 1326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1846 .loc 1 1326 5 is_stmt 0 view .LVU574 1847 0020 CA68 ldr r2, [r1, #12] 1848 0022 42F08002 orr r2, r2, #128 1849 0026 CA60 str r2, [r1, #12] 1850 .LVL132: 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1851 .loc 1 1328 5 is_stmt 1 view .LVU575 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1852 .loc 1 1328 12 is_stmt 0 view .LVU576 1853 0028 1846 mov r0, r3 1854 .LVL133: 1328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1855 .loc 1 1328 12 view .LVU577 1856 002a 7047 bx lr 1857 .LVL134: 1858 .L125: 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1859 .loc 1 1332 12 view .LVU578 1860 002c 0220 movs r0, #2 1861 .LVL135: 1332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1862 .loc 1 1332 12 view .LVU579 1863 002e 7047 bx lr 1864 .LVL136: 1865 .L126: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1866 .loc 1 1315 14 view .LVU580 1867 0030 0120 movs r0, #1 1868 .LVL137: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1869 .loc 1 1315 14 view .LVU581 1870 0032 7047 bx lr 1871 .LVL138: 1872 .L127: 1315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1873 .loc 1 1315 14 view .LVU582 1874 0034 0120 movs r0, #1 1875 .LVL139: 1334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1876 .loc 1 1334 1 view .LVU583 1877 0036 7047 bx lr 1878 .cfi_endproc 1879 .LFE143: 1881 .section .text.HAL_UART_Transmit_DMA,"ax",%progbits 1882 .align 1 1883 .global HAL_UART_Transmit_DMA 1884 .syntax unified 1885 .thumb 1886 .thumb_func 1888 HAL_UART_Transmit_DMA: 1889 .LVL140: 1890 .LFB145: 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1891 .loc 1 1380 1 is_stmt 1 view -0 1892 .cfi_startproc ARM GAS /tmp/cc4vHZRy.s page 118 1893 @ args = 0, pretend = 0, frame = 0 1894 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** const uint32_t *tmp; 1895 .loc 1 1380 1 is_stmt 0 view .LVU585 1896 0000 38B5 push {r3, r4, r5, lr} 1897 .LCFI23: 1898 .cfi_def_cfa_offset 16 1899 .cfi_offset 3, -16 1900 .cfi_offset 4, -12 1901 .cfi_offset 5, -8 1902 .cfi_offset 14, -4 1903 0002 1346 mov r3, r2 1381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1904 .loc 1 1381 3 is_stmt 1 view .LVU586 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1905 .loc 1 1384 3 view .LVU587 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1906 .loc 1 1384 12 is_stmt 0 view .LVU588 1907 0004 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 1908 .LVL141: 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1909 .loc 1 1384 12 view .LVU589 1910 0008 D2B2 uxtb r2, r2 1384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1911 .loc 1 1384 6 view .LVU590 1912 000a 202A cmp r2, #32 1913 000c 36D1 bne .L132 1914 000e 0446 mov r4, r0 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1915 .loc 1 1386 5 is_stmt 1 view .LVU591 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1916 .loc 1 1386 8 is_stmt 0 view .LVU592 1917 0010 0029 cmp r1, #0 1918 0012 35D0 beq .L133 1386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1919 .loc 1 1386 25 discriminator 1 view .LVU593 1920 0014 0BB9 cbnz r3, .L136 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1921 .loc 1 1388 14 view .LVU594 1922 0016 0120 movs r0, #1 1923 .LVL142: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1924 .loc 1 1388 14 view .LVU595 1925 0018 31E0 b .L129 1926 .LVL143: 1927 .L136: 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1928 .loc 1 1391 5 is_stmt 1 view .LVU596 1391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferSize = Size; 1929 .loc 1 1391 23 is_stmt 0 view .LVU597 1930 001a 0162 str r1, [r0, #32] 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1931 .loc 1 1392 5 is_stmt 1 view .LVU598 1392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->TxXferCount = Size; 1932 .loc 1 1392 23 is_stmt 0 view .LVU599 1933 001c 8384 strh r3, [r0, #36] @ movhi 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 119 1934 .loc 1 1393 5 is_stmt 1 view .LVU600 1393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1935 .loc 1 1393 24 is_stmt 0 view .LVU601 1936 001e C384 strh r3, [r0, #38] @ movhi 1395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_BUSY_TX; 1937 .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; 1938 .loc 1 1395 22 is_stmt 0 view .LVU603 1939 0020 0022 movs r2, #0 1940 0022 4264 str r2, [r0, #68] 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1941 .loc 1 1396 5 is_stmt 1 view .LVU604 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1942 .loc 1 1396 19 is_stmt 0 view .LVU605 1943 0024 2120 movs r0, #33 1944 .LVL144: 1396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1945 .loc 1 1396 19 view .LVU606 1946 0026 84F84100 strb r0, [r4, #65] 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1947 .loc 1 1399 5 is_stmt 1 view .LVU607 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1948 .loc 1 1399 10 is_stmt 0 view .LVU608 1949 002a A06B ldr r0, [r4, #56] 1399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1950 .loc 1 1399 37 view .LVU609 1951 002c 154D ldr r5, .L137 1952 002e C563 str r5, [r0, #60] 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1953 .loc 1 1402 5 is_stmt 1 view .LVU610 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1954 .loc 1 1402 10 is_stmt 0 view .LVU611 1955 0030 A06B ldr r0, [r4, #56] 1402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1956 .loc 1 1402 41 view .LVU612 1957 0032 154D ldr r5, .L137+4 1958 0034 0564 str r5, [r0, #64] 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1959 .loc 1 1405 5 is_stmt 1 view .LVU613 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1960 .loc 1 1405 10 is_stmt 0 view .LVU614 1961 0036 A06B ldr r0, [r4, #56] 1405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1962 .loc 1 1405 38 view .LVU615 1963 0038 144D ldr r5, .L137+8 1964 003a C564 str r5, [r0, #76] 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1965 .loc 1 1408 5 is_stmt 1 view .LVU616 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1966 .loc 1 1408 10 is_stmt 0 view .LVU617 1967 003c A06B ldr r0, [r4, #56] 1408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1968 .loc 1 1408 38 view .LVU618 1969 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 1970 .loc 1 1411 5 is_stmt 1 view .LVU619 1971 .LVL145: ARM GAS /tmp/cc4vHZRy.s page 120 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1972 .loc 1 1412 5 view .LVU620 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1973 .loc 1 1412 81 is_stmt 0 view .LVU621 1974 0040 2268 ldr r2, [r4] 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1975 .loc 1 1412 9 view .LVU622 1976 0042 0432 adds r2, r2, #4 1977 0044 A06B ldr r0, [r4, #56] 1978 0046 FFF7FEFF bl HAL_DMA_Start_IT 1979 .LVL146: 1412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 1980 .loc 1 1412 8 view .LVU623 1981 004a 30B1 cbz r0, .L130 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1982 .loc 1 1415 7 is_stmt 1 view .LVU624 1415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1983 .loc 1 1415 24 is_stmt 0 view .LVU625 1984 004c 1023 movs r3, #16 1985 004e 6364 str r3, [r4, #68] 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1986 .loc 1 1418 7 is_stmt 1 view .LVU626 1418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1987 .loc 1 1418 21 is_stmt 0 view .LVU627 1988 0050 2023 movs r3, #32 1989 0052 84F84130 strb r3, [r4, #65] 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1990 .loc 1 1420 7 is_stmt 1 view .LVU628 1420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 1991 .loc 1 1420 14 is_stmt 0 view .LVU629 1992 0056 0120 movs r0, #1 1993 0058 11E0 b .L129 1994 .L130: 1423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 1995 .loc 1 1423 5 is_stmt 1 view .LVU630 1996 005a 2368 ldr r3, [r4] 1997 005c 6FF04002 mvn r2, #64 1998 0060 1A60 str r2, [r3] 1999 .L131: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2000 .loc 1 1427 5 discriminator 1 view .LVU631 2001 .LBB331: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2002 .loc 1 1427 5 discriminator 1 view .LVU632 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2003 .loc 1 1427 5 discriminator 1 view .LVU633 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2004 .loc 1 1427 5 discriminator 1 view .LVU634 2005 0062 2268 ldr r2, [r4] 2006 .LVL147: 2007 .LBB332: 2008 .LBI332: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2009 .loc 2 476 31 discriminator 1 view .LVU635 2010 .LBB333: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2011 .loc 2 478 5 discriminator 1 view .LVU636 ARM GAS /tmp/cc4vHZRy.s page 121 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2012 .loc 2 480 4 discriminator 1 view .LVU637 2013 0064 02F11403 add r3, r2, #20 2014 .LVL148: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2015 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU638 2016 .syntax unified 2017 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2018 0068 53E8003F ldrex r3, [r3] 2019 @ 0 "" 2 2020 .LVL149: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2021 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU639 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2022 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU640 2023 .thumb 2024 .syntax unified 2025 .LBE333: 2026 .LBE332: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2027 .loc 1 1427 5 discriminator 1 view .LVU641 2028 006c 43F08003 orr r3, r3, #128 2029 .LVL150: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2030 .loc 1 1427 5 is_stmt 1 discriminator 1 view .LVU642 2031 .LBB334: 2032 .LBI334: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2033 .loc 2 527 31 discriminator 1 view .LVU643 2034 .LBB335: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2035 .loc 2 529 4 discriminator 1 view .LVU644 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2036 .loc 2 531 4 discriminator 1 view .LVU645 2037 0070 1432 adds r2, r2, #20 2038 .LVL151: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2039 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU646 2040 .syntax unified 2041 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2042 0072 42E80031 strex r1, r3, [r2] 2043 @ 0 "" 2 2044 .LVL152: 2045 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU647 2046 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU648 2047 .thumb 2048 .syntax unified 2049 .LBE335: 2050 .LBE334: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2051 .loc 1 1427 5 discriminator 1 view .LVU649 2052 0076 0029 cmp r1, #0 2053 0078 F3D1 bne .L131 2054 007a 00E0 b .L129 2055 .LVL153: 2056 .L132: 1427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 122 2057 .loc 1 1427 5 discriminator 1 view .LVU650 2058 .LBE331: 1433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2059 .loc 1 1433 12 view .LVU651 2060 007c 0220 movs r0, #2 2061 .LVL154: 2062 .L129: 1435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2063 .loc 1 1435 1 view .LVU652 2064 007e 38BD pop {r3, r4, r5, pc} 2065 .LVL155: 2066 .L133: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2067 .loc 1 1388 14 view .LVU653 2068 0080 0120 movs r0, #1 2069 .LVL156: 1388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2070 .loc 1 1388 14 view .LVU654 2071 0082 FCE7 b .L129 2072 .L138: 2073 .align 2 2074 .L137: 2075 0084 00000000 .word UART_DMATransmitCplt 2076 0088 00000000 .word UART_DMATxHalfCplt 2077 008c 00000000 .word UART_DMAError 2078 .cfi_endproc 2079 .LFE145: 2081 .section .text.HAL_UART_DMAPause,"ax",%progbits 2082 .align 1 2083 .global HAL_UART_DMAPause 2084 .syntax unified 2085 .thumb 2086 .thumb_func 2088 HAL_UART_DMAPause: 2089 .LVL157: 2090 .LFB147: 1477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2091 .loc 1 1477 1 is_stmt 1 view -0 2092 .cfi_startproc 2093 @ args = 0, pretend = 0, frame = 0 2094 @ frame_needed = 0, uses_anonymous_args = 0 2095 @ link register save eliminated. 1478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2096 .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) 2097 .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) 2098 .loc 1 1480 16 is_stmt 0 view .LVU658 2099 0000 0368 ldr r3, [r0] 2100 0002 5A69 ldr r2, [r3, #20] 2101 0004 02F08002 and r2, r2, #128 2102 .LVL158: 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2103 .loc 1 1481 3 is_stmt 1 view .LVU659 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2104 .loc 1 1481 13 is_stmt 0 view .LVU660 2105 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/cc4vHZRy.s page 123 2106 000c DBB2 uxtb r3, r3 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2107 .loc 1 1481 6 view .LVU661 2108 000e 212B cmp r3, #33 2109 0010 0AD0 beq .L146 2110 .LVL159: 2111 .L140: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2112 .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) 2113 .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) 2114 .loc 1 1487 16 is_stmt 0 discriminator 2 view .LVU664 2115 0012 0368 ldr r3, [r0] 2116 0014 5A69 ldr r2, [r3, #20] 2117 0016 02F04002 and r2, r2, #64 2118 .LVL160: 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2119 .loc 1 1488 3 is_stmt 1 discriminator 2 view .LVU665 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2120 .loc 1 1488 13 is_stmt 0 discriminator 2 view .LVU666 2121 001a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2122 001e DBB2 uxtb r3, r3 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2123 .loc 1 1488 6 discriminator 2 view .LVU667 2124 0020 222B cmp r3, #34 2125 0022 10D0 beq .L147 2126 .LVL161: 2127 .L142: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2128 .loc 1 1495 5 is_stmt 1 discriminator 2 view .LVU668 1498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2129 .loc 1 1498 3 discriminator 2 view .LVU669 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2130 .loc 1 1499 1 is_stmt 0 discriminator 2 view .LVU670 2131 0024 0020 movs r0, #0 2132 .LVL162: 1499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2133 .loc 1 1499 1 discriminator 2 view .LVU671 2134 0026 7047 bx lr 2135 .LVL163: 2136 .L146: 1481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2137 .loc 1 1481 49 discriminator 1 view .LVU672 2138 0028 002A cmp r2, #0 2139 002a F2D0 beq .L140 2140 .LVL164: 2141 .L141: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2142 .loc 1 1484 5 is_stmt 1 discriminator 1 view .LVU673 2143 .LBB336: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2144 .loc 1 1484 5 discriminator 1 view .LVU674 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2145 .loc 1 1484 5 discriminator 1 view .LVU675 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2146 .loc 1 1484 5 discriminator 1 view .LVU676 ARM GAS /tmp/cc4vHZRy.s page 124 2147 002c 0268 ldr r2, [r0] 2148 .LVL165: 2149 .LBB337: 2150 .LBI337: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2151 .loc 2 476 31 discriminator 1 view .LVU677 2152 .LBB338: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2153 .loc 2 478 5 discriminator 1 view .LVU678 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2154 .loc 2 480 4 discriminator 1 view .LVU679 2155 002e 02F11403 add r3, r2, #20 2156 .LVL166: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2157 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU680 2158 .syntax unified 2159 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2160 0032 53E8003F ldrex r3, [r3] 2161 @ 0 "" 2 2162 .LVL167: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2163 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU681 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2164 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU682 2165 .thumb 2166 .syntax unified 2167 .LBE338: 2168 .LBE337: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2169 .loc 1 1484 5 discriminator 1 view .LVU683 2170 0036 23F08003 bic r3, r3, #128 2171 .LVL168: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2172 .loc 1 1484 5 is_stmt 1 discriminator 1 view .LVU684 2173 .LBB339: 2174 .LBI339: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2175 .loc 2 527 31 discriminator 1 view .LVU685 2176 .LBB340: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2177 .loc 2 529 4 discriminator 1 view .LVU686 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2178 .loc 2 531 4 discriminator 1 view .LVU687 2179 003a 1432 adds r2, r2, #20 2180 .LVL169: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2181 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU688 2182 .syntax unified 2183 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2184 003c 42E80031 strex r1, r3, [r2] 2185 @ 0 "" 2 2186 .LVL170: 2187 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU689 2188 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU690 2189 .thumb 2190 .syntax unified 2191 .LBE340: ARM GAS /tmp/cc4vHZRy.s page 125 2192 .LBE339: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2193 .loc 1 1484 5 discriminator 1 view .LVU691 2194 0040 0029 cmp r1, #0 2195 0042 F3D1 bne .L141 2196 0044 E5E7 b .L140 2197 .LVL171: 2198 .L147: 1484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2199 .loc 1 1484 5 discriminator 1 view .LVU692 2200 .LBE336: 1488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2201 .loc 1 1488 50 discriminator 1 view .LVU693 2202 0046 002A cmp r2, #0 2203 0048 ECD0 beq .L142 2204 .LVL172: 2205 .L143: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2206 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU694 2207 .LBB341: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2208 .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); 2209 .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); 2210 .loc 1 1491 5 discriminator 1 view .LVU697 2211 004a 0268 ldr r2, [r0] 2212 .LVL173: 2213 .LBB342: 2214 .LBI342: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2215 .loc 2 476 31 discriminator 1 view .LVU698 2216 .LBB343: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2217 .loc 2 478 5 discriminator 1 view .LVU699 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2218 .loc 2 480 4 discriminator 1 view .LVU700 2219 004c 02F10C03 add r3, r2, #12 2220 .LVL174: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2221 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU701 2222 .syntax unified 2223 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2224 0050 53E8003F ldrex r3, [r3] 2225 @ 0 "" 2 2226 .LVL175: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2227 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU702 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2228 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU703 2229 .thumb 2230 .syntax unified 2231 .LBE343: 2232 .LBE342: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2233 .loc 1 1491 5 discriminator 1 view .LVU704 2234 0054 23F48073 bic r3, r3, #256 ARM GAS /tmp/cc4vHZRy.s page 126 2235 .LVL176: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2236 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU705 2237 .LBB344: 2238 .LBI344: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2239 .loc 2 527 31 discriminator 1 view .LVU706 2240 .LBB345: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2241 .loc 2 529 4 discriminator 1 view .LVU707 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2242 .loc 2 531 4 discriminator 1 view .LVU708 2243 0058 0C32 adds r2, r2, #12 2244 .LVL177: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2245 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU709 2246 .syntax unified 2247 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2248 005a 42E80031 strex r1, r3, [r2] 2249 @ 0 "" 2 2250 .LVL178: 2251 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU710 2252 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU711 2253 .thumb 2254 .syntax unified 2255 .LBE345: 2256 .LBE344: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2257 .loc 1 1491 5 discriminator 1 view .LVU712 2258 005e 0029 cmp r1, #0 2259 0060 F3D1 bne .L143 2260 .LVL179: 2261 .L144: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2262 .loc 1 1491 5 discriminator 1 view .LVU713 2263 .LBE341: 1491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 2264 .loc 1 1491 5 is_stmt 1 discriminator 1 view .LVU714 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2265 .loc 1 1492 5 discriminator 1 view .LVU715 2266 .LBB346: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2267 .loc 1 1492 5 discriminator 1 view .LVU716 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2268 .loc 1 1492 5 discriminator 1 view .LVU717 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2269 .loc 1 1492 5 discriminator 1 view .LVU718 2270 0062 0268 ldr r2, [r0] 2271 .LVL180: 2272 .LBB347: 2273 .LBI347: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2274 .loc 2 476 31 discriminator 1 view .LVU719 2275 .LBB348: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2276 .loc 2 478 5 discriminator 1 view .LVU720 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 127 2277 .loc 2 480 4 discriminator 1 view .LVU721 2278 0064 02F11403 add r3, r2, #20 2279 .LVL181: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2280 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU722 2281 .syntax unified 2282 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2283 0068 53E8003F ldrex r3, [r3] 2284 @ 0 "" 2 2285 .LVL182: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2286 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU723 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2287 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU724 2288 .thumb 2289 .syntax unified 2290 .LBE348: 2291 .LBE347: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2292 .loc 1 1492 5 discriminator 1 view .LVU725 2293 006c 23F00103 bic r3, r3, #1 2294 .LVL183: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2295 .loc 1 1492 5 is_stmt 1 discriminator 1 view .LVU726 2296 .LBB349: 2297 .LBI349: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2298 .loc 2 527 31 discriminator 1 view .LVU727 2299 .LBB350: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2300 .loc 2 529 4 discriminator 1 view .LVU728 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2301 .loc 2 531 4 discriminator 1 view .LVU729 2302 0070 1432 adds r2, r2, #20 2303 .LVL184: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2304 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU730 2305 .syntax unified 2306 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2307 0072 42E80031 strex r1, r3, [r2] 2308 @ 0 "" 2 2309 .LVL185: 2310 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU731 2311 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU732 2312 .thumb 2313 .syntax unified 2314 .LBE350: 2315 .LBE349: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2316 .loc 1 1492 5 discriminator 1 view .LVU733 2317 0076 0029 cmp r1, #0 2318 0078 F3D1 bne .L144 2319 .LVL186: 2320 .L145: 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2321 .loc 1 1492 5 discriminator 1 view .LVU734 2322 .LBE346: ARM GAS /tmp/cc4vHZRy.s page 128 1492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2323 .loc 1 1492 5 is_stmt 1 discriminator 1 view .LVU735 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2324 .loc 1 1495 5 discriminator 1 view .LVU736 2325 .LBB351: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2326 .loc 1 1495 5 discriminator 1 view .LVU737 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2327 .loc 1 1495 5 discriminator 1 view .LVU738 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2328 .loc 1 1495 5 discriminator 1 view .LVU739 2329 007a 0268 ldr r2, [r0] 2330 .LVL187: 2331 .LBB352: 2332 .LBI352: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2333 .loc 2 476 31 discriminator 1 view .LVU740 2334 .LBB353: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2335 .loc 2 478 5 discriminator 1 view .LVU741 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2336 .loc 2 480 4 discriminator 1 view .LVU742 2337 007c 02F11403 add r3, r2, #20 2338 .LVL188: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2339 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU743 2340 .syntax unified 2341 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2342 0080 53E8003F ldrex r3, [r3] 2343 @ 0 "" 2 2344 .LVL189: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2345 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU744 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2346 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU745 2347 .thumb 2348 .syntax unified 2349 .LBE353: 2350 .LBE352: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2351 .loc 1 1495 5 discriminator 1 view .LVU746 2352 0084 23F04003 bic r3, r3, #64 2353 .LVL190: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2354 .loc 1 1495 5 is_stmt 1 discriminator 1 view .LVU747 2355 .LBB354: 2356 .LBI354: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2357 .loc 2 527 31 discriminator 1 view .LVU748 2358 .LBB355: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2359 .loc 2 529 4 discriminator 1 view .LVU749 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2360 .loc 2 531 4 discriminator 1 view .LVU750 2361 0088 1432 adds r2, r2, #20 2362 .LVL191: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 129 2363 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU751 2364 .syntax unified 2365 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2366 008a 42E80031 strex r1, r3, [r2] 2367 @ 0 "" 2 2368 .LVL192: 2369 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU752 2370 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU753 2371 .thumb 2372 .syntax unified 2373 .LBE355: 2374 .LBE354: 1495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2375 .loc 1 1495 5 discriminator 1 view .LVU754 2376 008e 0029 cmp r1, #0 2377 0090 F3D1 bne .L145 2378 0092 C7E7 b .L142 2379 .LBE351: 2380 .cfi_endproc 2381 .LFE147: 2383 .section .text.HAL_UART_DMAResume,"ax",%progbits 2384 .align 1 2385 .global HAL_UART_DMAResume 2386 .syntax unified 2387 .thumb 2388 .thumb_func 2390 HAL_UART_DMAResume: 2391 .LVL193: 2392 .LFB148: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2393 .loc 1 1508 1 is_stmt 1 view -0 2394 .cfi_startproc 2395 @ args = 0, pretend = 0, frame = 8 2396 @ frame_needed = 0, uses_anonymous_args = 0 2397 @ link register save eliminated. 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2398 .loc 1 1510 3 view .LVU756 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2399 .loc 1 1510 12 is_stmt 0 view .LVU757 2400 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2401 0004 DBB2 uxtb r3, r3 1510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2402 .loc 1 1510 6 view .LVU758 2403 0006 212B cmp r3, #33 2404 0008 06D0 beq .L150 2405 .L149: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2406 .loc 1 1513 5 is_stmt 1 discriminator 2 view .LVU759 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2407 .loc 1 1516 3 discriminator 2 view .LVU760 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2408 .loc 1 1516 12 is_stmt 0 discriminator 2 view .LVU761 2409 000a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2410 000e DBB2 uxtb r3, r3 1516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2411 .loc 1 1516 6 discriminator 2 view .LVU762 2412 0010 222B cmp r3, #34 ARM GAS /tmp/cc4vHZRy.s page 130 2413 0012 0ED0 beq .L160 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2414 .loc 1 1529 5 is_stmt 1 view .LVU763 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2415 .loc 1 1532 3 view .LVU764 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2416 .loc 1 1533 1 is_stmt 0 view .LVU765 2417 0014 0020 movs r0, #0 2418 .LVL194: 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2419 .loc 1 1533 1 view .LVU766 2420 0016 7047 bx lr 2421 .LVL195: 2422 .L150: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2423 .loc 1 1513 5 is_stmt 1 discriminator 1 view .LVU767 2424 .LBB356: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2425 .loc 1 1513 5 discriminator 1 view .LVU768 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2426 .loc 1 1513 5 discriminator 1 view .LVU769 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2427 .loc 1 1513 5 discriminator 1 view .LVU770 2428 0018 0268 ldr r2, [r0] 2429 .LVL196: 2430 .LBB357: 2431 .LBI357: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2432 .loc 2 476 31 discriminator 1 view .LVU771 2433 .LBB358: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2434 .loc 2 478 5 discriminator 1 view .LVU772 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2435 .loc 2 480 4 discriminator 1 view .LVU773 2436 001a 02F11403 add r3, r2, #20 2437 .LVL197: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2438 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU774 2439 .syntax unified 2440 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2441 001e 53E8003F ldrex r3, [r3] 2442 @ 0 "" 2 2443 .LVL198: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2444 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU775 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2445 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU776 2446 .thumb 2447 .syntax unified 2448 .LBE358: 2449 .LBE357: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2450 .loc 1 1513 5 discriminator 1 view .LVU777 2451 0022 43F08003 orr r3, r3, #128 2452 .LVL199: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2453 .loc 1 1513 5 is_stmt 1 discriminator 1 view .LVU778 ARM GAS /tmp/cc4vHZRy.s page 131 2454 .LBB359: 2455 .LBI359: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2456 .loc 2 527 31 discriminator 1 view .LVU779 2457 .LBB360: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2458 .loc 2 529 4 discriminator 1 view .LVU780 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2459 .loc 2 531 4 discriminator 1 view .LVU781 2460 0026 1432 adds r2, r2, #20 2461 .LVL200: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2462 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU782 2463 .syntax unified 2464 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2465 0028 42E80031 strex r1, r3, [r2] 2466 @ 0 "" 2 2467 .LVL201: 2468 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU783 2469 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU784 2470 .thumb 2471 .syntax unified 2472 .LBE360: 2473 .LBE359: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2474 .loc 1 1513 5 discriminator 1 view .LVU785 2475 002c 0029 cmp r1, #0 2476 002e F3D1 bne .L150 2477 0030 EBE7 b .L149 2478 .LVL202: 2479 .L160: 1513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2480 .loc 1 1513 5 discriminator 1 view .LVU786 2481 .LBE356: 1508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2482 .loc 1 1508 1 view .LVU787 2483 0032 82B0 sub sp, sp, #8 2484 .LCFI24: 2485 .cfi_def_cfa_offset 8 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2486 .loc 1 1519 5 is_stmt 1 view .LVU788 2487 .LBB361: 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2488 .loc 1 1519 5 view .LVU789 2489 0034 0023 movs r3, #0 2490 0036 0193 str r3, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2491 .loc 1 1519 5 view .LVU790 2492 0038 0368 ldr r3, [r0] 2493 003a 1A68 ldr r2, [r3] 2494 003c 0192 str r2, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2495 .loc 1 1519 5 view .LVU791 2496 003e 5B68 ldr r3, [r3, #4] 2497 0040 0193 str r3, [sp, #4] 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2498 .loc 1 1519 5 view .LVU792 ARM GAS /tmp/cc4vHZRy.s page 132 2499 0042 019B ldr r3, [sp, #4] 2500 .LBE361: 1519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2501 .loc 1 1519 5 view .LVU793 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2502 .loc 1 1522 5 view .LVU794 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2503 .loc 1 1522 20 is_stmt 0 view .LVU795 2504 0044 0369 ldr r3, [r0, #16] 1522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2505 .loc 1 1522 8 view .LVU796 2506 0046 5BB1 cbz r3, .L154 2507 .L153: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2508 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU797 2509 .LBB362: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2510 .loc 1 1524 7 discriminator 1 view .LVU798 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2511 .loc 1 1524 7 discriminator 1 view .LVU799 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2512 .loc 1 1524 7 discriminator 1 view .LVU800 2513 0048 0268 ldr r2, [r0] 2514 .LVL203: 2515 .LBB363: 2516 .LBI363: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2517 .loc 2 476 31 discriminator 1 view .LVU801 2518 .LBB364: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2519 .loc 2 478 5 discriminator 1 view .LVU802 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2520 .loc 2 480 4 discriminator 1 view .LVU803 2521 004a 02F10C03 add r3, r2, #12 2522 .LVL204: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2523 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU804 2524 .syntax unified 2525 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2526 004e 53E8003F ldrex r3, [r3] 2527 @ 0 "" 2 2528 .LVL205: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2529 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU805 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2530 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU806 2531 .thumb 2532 .syntax unified 2533 .LBE364: 2534 .LBE363: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2535 .loc 1 1524 7 discriminator 1 view .LVU807 2536 0052 43F48073 orr r3, r3, #256 2537 .LVL206: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2538 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU808 2539 .LBB365: ARM GAS /tmp/cc4vHZRy.s page 133 2540 .LBI365: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2541 .loc 2 527 31 discriminator 1 view .LVU809 2542 .LBB366: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2543 .loc 2 529 4 discriminator 1 view .LVU810 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2544 .loc 2 531 4 discriminator 1 view .LVU811 2545 0056 0C32 adds r2, r2, #12 2546 .LVL207: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2547 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU812 2548 .syntax unified 2549 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2550 0058 42E80031 strex r1, r3, [r2] 2551 @ 0 "" 2 2552 .LVL208: 2553 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU813 2554 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU814 2555 .thumb 2556 .syntax unified 2557 .LBE366: 2558 .LBE365: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2559 .loc 1 1524 7 discriminator 1 view .LVU815 2560 005c 0029 cmp r1, #0 2561 005e F3D1 bne .L153 2562 .LVL209: 2563 .L154: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2564 .loc 1 1524 7 discriminator 1 view .LVU816 2565 .LBE362: 1524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2566 .loc 1 1524 7 is_stmt 1 discriminator 1 view .LVU817 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2567 .loc 1 1526 5 discriminator 1 view .LVU818 2568 .LBB367: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2569 .loc 1 1526 5 discriminator 1 view .LVU819 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2570 .loc 1 1526 5 discriminator 1 view .LVU820 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2571 .loc 1 1526 5 discriminator 1 view .LVU821 2572 0060 0268 ldr r2, [r0] 2573 .LVL210: 2574 .LBB368: 2575 .LBI368: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2576 .loc 2 476 31 discriminator 1 view .LVU822 2577 .LBB369: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2578 .loc 2 478 5 discriminator 1 view .LVU823 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2579 .loc 2 480 4 discriminator 1 view .LVU824 2580 0062 02F11403 add r3, r2, #20 2581 .LVL211: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 134 2582 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU825 2583 .syntax unified 2584 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2585 0066 53E8003F ldrex r3, [r3] 2586 @ 0 "" 2 2587 .LVL212: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2588 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU826 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2589 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU827 2590 .thumb 2591 .syntax unified 2592 .LBE369: 2593 .LBE368: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2594 .loc 1 1526 5 discriminator 1 view .LVU828 2595 006a 43F00103 orr r3, r3, #1 2596 .LVL213: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2597 .loc 1 1526 5 is_stmt 1 discriminator 1 view .LVU829 2598 .LBB370: 2599 .LBI370: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2600 .loc 2 527 31 discriminator 1 view .LVU830 2601 .LBB371: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2602 .loc 2 529 4 discriminator 1 view .LVU831 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2603 .loc 2 531 4 discriminator 1 view .LVU832 2604 006e 1432 adds r2, r2, #20 2605 .LVL214: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2606 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU833 2607 .syntax unified 2608 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2609 0070 42E80031 strex r1, r3, [r2] 2610 @ 0 "" 2 2611 .LVL215: 2612 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU834 2613 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU835 2614 .thumb 2615 .syntax unified 2616 .LBE371: 2617 .LBE370: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2618 .loc 1 1526 5 discriminator 1 view .LVU836 2619 0074 0029 cmp r1, #0 2620 0076 F3D1 bne .L154 2621 .LVL216: 2622 .L155: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2623 .loc 1 1526 5 discriminator 1 view .LVU837 2624 .LBE367: 1526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2625 .loc 1 1526 5 is_stmt 1 discriminator 1 view .LVU838 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2626 .loc 1 1529 5 discriminator 1 view .LVU839 ARM GAS /tmp/cc4vHZRy.s page 135 2627 .LBB372: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2628 .loc 1 1529 5 discriminator 1 view .LVU840 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2629 .loc 1 1529 5 discriminator 1 view .LVU841 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2630 .loc 1 1529 5 discriminator 1 view .LVU842 2631 0078 0268 ldr r2, [r0] 2632 .LVL217: 2633 .LBB373: 2634 .LBI373: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2635 .loc 2 476 31 discriminator 1 view .LVU843 2636 .LBB374: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2637 .loc 2 478 5 discriminator 1 view .LVU844 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2638 .loc 2 480 4 discriminator 1 view .LVU845 2639 007a 02F11403 add r3, r2, #20 2640 .LVL218: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2641 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU846 2642 .syntax unified 2643 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2644 007e 53E8003F ldrex r3, [r3] 2645 @ 0 "" 2 2646 .LVL219: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2647 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU847 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2648 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU848 2649 .thumb 2650 .syntax unified 2651 .LBE374: 2652 .LBE373: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2653 .loc 1 1529 5 discriminator 1 view .LVU849 2654 0082 43F04003 orr r3, r3, #64 2655 .LVL220: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2656 .loc 1 1529 5 is_stmt 1 discriminator 1 view .LVU850 2657 .LBB375: 2658 .LBI375: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2659 .loc 2 527 31 discriminator 1 view .LVU851 2660 .LBB376: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2661 .loc 2 529 4 discriminator 1 view .LVU852 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2662 .loc 2 531 4 discriminator 1 view .LVU853 2663 0086 1432 adds r2, r2, #20 2664 .LVL221: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2665 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU854 2666 .syntax unified 2667 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2668 0088 42E80031 strex r1, r3, [r2] ARM GAS /tmp/cc4vHZRy.s page 136 2669 @ 0 "" 2 2670 .LVL222: 2671 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU855 2672 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU856 2673 .thumb 2674 .syntax unified 2675 .LBE376: 2676 .LBE375: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2677 .loc 1 1529 5 discriminator 1 view .LVU857 2678 008c 0029 cmp r1, #0 2679 008e F3D1 bne .L155 2680 .LBE372: 1529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2681 .loc 1 1529 5 is_stmt 1 discriminator 2 view .LVU858 1532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2682 .loc 1 1532 3 discriminator 2 view .LVU859 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2683 .loc 1 1533 1 is_stmt 0 discriminator 2 view .LVU860 2684 0090 0020 movs r0, #0 2685 .LVL223: 1533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2686 .loc 1 1533 1 discriminator 2 view .LVU861 2687 0092 02B0 add sp, sp, #8 2688 .LCFI25: 2689 .cfi_def_cfa_offset 0 2690 @ sp needed 2691 0094 7047 bx lr 2692 .cfi_endproc 2693 .LFE148: 2695 .section .text.HAL_UART_DMAStop,"ax",%progbits 2696 .align 1 2697 .global HAL_UART_DMAStop 2698 .syntax unified 2699 .thumb 2700 .thumb_func 2702 HAL_UART_DMAStop: 2703 .LVL224: 2704 .LFB149: 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2705 .loc 1 1542 1 is_stmt 1 view -0 2706 .cfi_startproc 2707 @ args = 0, pretend = 0, frame = 0 2708 @ frame_needed = 0, uses_anonymous_args = 0 1542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 2709 .loc 1 1542 1 is_stmt 0 view .LVU863 2710 0000 10B5 push {r4, lr} 2711 .LCFI26: 2712 .cfi_def_cfa_offset 8 2713 .cfi_offset 4, -8 2714 .cfi_offset 14, -4 2715 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 2716 .loc 1 1543 3 is_stmt 1 view .LVU864 2717 .LVL225: 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2718 .loc 1 1551 3 view .LVU865 ARM GAS /tmp/cc4vHZRy.s page 137 1551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 2719 .loc 1 1551 16 is_stmt 0 view .LVU866 2720 0004 0368 ldr r3, [r0] 2721 0006 5A69 ldr r2, [r3, #20] 2722 .LVL226: 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2723 .loc 1 1552 3 is_stmt 1 view .LVU867 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2724 .loc 1 1552 13 is_stmt 0 view .LVU868 2725 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2726 000c DBB2 uxtb r3, r3 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2727 .loc 1 1552 6 view .LVU869 2728 000e 212B cmp r3, #33 2729 0010 0AD0 beq .L169 2730 .LVL227: 2731 .L162: 1565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 2732 .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) 2733 .loc 1 1565 16 is_stmt 0 view .LVU871 2734 0012 2368 ldr r3, [r4] 2735 0014 5A69 ldr r2, [r3, #20] 2736 0016 02F04002 and r2, r2, #64 2737 .LVL228: 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2738 .loc 1 1566 3 is_stmt 1 view .LVU872 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2739 .loc 1 1566 13 is_stmt 0 view .LVU873 2740 001a 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 2741 001e DBB2 uxtb r3, r3 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2742 .loc 1 1566 6 view .LVU874 2743 0020 222B cmp r3, #34 2744 0022 19D0 beq .L170 2745 .LVL229: 2746 .L165: 1578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2747 .loc 1 1578 3 is_stmt 1 view .LVU875 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2748 .loc 1 1579 1 is_stmt 0 view .LVU876 2749 0024 0020 movs r0, #0 2750 0026 10BD pop {r4, pc} 2751 .LVL230: 2752 .L169: 1579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2753 .loc 1 1579 1 view .LVU877 2754 0028 02F08002 and r2, r2, #128 2755 .LVL231: 1552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2756 .loc 1 1552 49 discriminator 1 view .LVU878 2757 002c 002A cmp r2, #0 2758 002e F0D0 beq .L162 2759 .L163: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2760 .loc 1 1554 5 is_stmt 1 discriminator 1 view .LVU879 2761 .LBB377: ARM GAS /tmp/cc4vHZRy.s page 138 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2762 .loc 1 1554 5 discriminator 1 view .LVU880 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2763 .loc 1 1554 5 discriminator 1 view .LVU881 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2764 .loc 1 1554 5 discriminator 1 view .LVU882 2765 0030 2268 ldr r2, [r4] 2766 .LVL232: 2767 .LBB378: 2768 .LBI378: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2769 .loc 2 476 31 discriminator 1 view .LVU883 2770 .LBB379: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2771 .loc 2 478 5 discriminator 1 view .LVU884 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2772 .loc 2 480 4 discriminator 1 view .LVU885 2773 0032 02F11403 add r3, r2, #20 2774 .LVL233: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2775 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU886 2776 .syntax unified 2777 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2778 0036 53E8003F ldrex r3, [r3] 2779 @ 0 "" 2 2780 .LVL234: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2781 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU887 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2782 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU888 2783 .thumb 2784 .syntax unified 2785 .LBE379: 2786 .LBE378: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2787 .loc 1 1554 5 discriminator 1 view .LVU889 2788 003a 23F08003 bic r3, r3, #128 2789 .LVL235: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2790 .loc 1 1554 5 is_stmt 1 discriminator 1 view .LVU890 2791 .LBB380: 2792 .LBI380: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2793 .loc 2 527 31 discriminator 1 view .LVU891 2794 .LBB381: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2795 .loc 2 529 4 discriminator 1 view .LVU892 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2796 .loc 2 531 4 discriminator 1 view .LVU893 2797 003e 1432 adds r2, r2, #20 2798 .LVL236: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2799 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU894 2800 .syntax unified 2801 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2802 0040 42E80031 strex r1, r3, [r2] 2803 @ 0 "" 2 ARM GAS /tmp/cc4vHZRy.s page 139 2804 .LVL237: 2805 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU895 2806 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU896 2807 .thumb 2808 .syntax unified 2809 .LBE381: 2810 .LBE380: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2811 .loc 1 1554 5 discriminator 1 view .LVU897 2812 0044 0029 cmp r1, #0 2813 0046 F3D1 bne .L163 2814 .LBE377: 1554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2815 .loc 1 1554 5 is_stmt 1 discriminator 2 view .LVU898 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2816 .loc 1 1557 5 discriminator 2 view .LVU899 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2817 .loc 1 1557 14 is_stmt 0 discriminator 2 view .LVU900 2818 0048 A06B ldr r0, [r4, #56] 2819 .LVL238: 1557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2820 .loc 1 1557 8 discriminator 2 view .LVU901 2821 004a 08B1 cbz r0, .L164 1559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2822 .loc 1 1559 7 is_stmt 1 view .LVU902 2823 004c FFF7FEFF bl HAL_DMA_Abort 2824 .LVL239: 2825 .L164: 1561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2826 .loc 1 1561 5 view .LVU903 2827 0050 2046 mov r0, r4 2828 0052 FFF7FEFF bl UART_EndTxTransfer 2829 .LVL240: 2830 0056 DCE7 b .L162 2831 .LVL241: 2832 .L170: 1566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2833 .loc 1 1566 50 is_stmt 0 discriminator 1 view .LVU904 2834 0058 002A cmp r2, #0 2835 005a E3D0 beq .L165 2836 .LVL242: 2837 .L166: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2838 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU905 2839 .LBB382: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2840 .loc 1 1568 5 discriminator 1 view .LVU906 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2841 .loc 1 1568 5 discriminator 1 view .LVU907 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2842 .loc 1 1568 5 discriminator 1 view .LVU908 2843 005c 2268 ldr r2, [r4] 2844 .LVL243: 2845 .LBB383: 2846 .LBI383: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2847 .loc 2 476 31 discriminator 1 view .LVU909 ARM GAS /tmp/cc4vHZRy.s page 140 2848 .LBB384: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 2849 .loc 2 478 5 discriminator 1 view .LVU910 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2850 .loc 2 480 4 discriminator 1 view .LVU911 2851 005e 02F11403 add r3, r2, #20 2852 .LVL244: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2853 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU912 2854 .syntax unified 2855 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2856 0062 53E8003F ldrex r3, [r3] 2857 @ 0 "" 2 2858 .LVL245: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2859 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU913 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 2860 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU914 2861 .thumb 2862 .syntax unified 2863 .LBE384: 2864 .LBE383: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2865 .loc 1 1568 5 discriminator 1 view .LVU915 2866 0066 23F04003 bic r3, r3, #64 2867 .LVL246: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2868 .loc 1 1568 5 is_stmt 1 discriminator 1 view .LVU916 2869 .LBB385: 2870 .LBI385: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 2871 .loc 2 527 31 discriminator 1 view .LVU917 2872 .LBB386: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 2873 .loc 2 529 4 discriminator 1 view .LVU918 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2874 .loc 2 531 4 discriminator 1 view .LVU919 2875 006a 1432 adds r2, r2, #20 2876 .LVL247: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 2877 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU920 2878 .syntax unified 2879 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 2880 006c 42E80031 strex r1, r3, [r2] 2881 @ 0 "" 2 2882 .LVL248: 2883 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU921 2884 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU922 2885 .thumb 2886 .syntax unified 2887 .LBE386: 2888 .LBE385: 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2889 .loc 1 1568 5 discriminator 1 view .LVU923 2890 0070 0029 cmp r1, #0 2891 0072 F3D1 bne .L166 2892 .LBE382: ARM GAS /tmp/cc4vHZRy.s page 141 1568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2893 .loc 1 1568 5 is_stmt 1 discriminator 2 view .LVU924 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2894 .loc 1 1571 5 discriminator 2 view .LVU925 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2895 .loc 1 1571 14 is_stmt 0 discriminator 2 view .LVU926 2896 0074 E06B ldr r0, [r4, #60] 1571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2897 .loc 1 1571 8 discriminator 2 view .LVU927 2898 0076 08B1 cbz r0, .L167 1573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2899 .loc 1 1573 7 is_stmt 1 view .LVU928 2900 0078 FFF7FEFF bl HAL_DMA_Abort 2901 .LVL249: 2902 .L167: 1575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2903 .loc 1 1575 5 view .LVU929 2904 007c 2046 mov r0, r4 2905 007e FFF7FEFF bl UART_EndRxTransfer 2906 .LVL250: 2907 0082 CFE7 b .L165 2908 .cfi_endproc 2909 .LFE149: 2911 .section .text.HAL_UARTEx_ReceiveToIdle,"ax",%progbits 2912 .align 1 2913 .global HAL_UARTEx_ReceiveToIdle 2914 .syntax unified 2915 .thumb 2916 .thumb_func 2918 HAL_UARTEx_ReceiveToIdle: 2919 .LVL251: 2920 .LFB150: 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 2921 .loc 1 1598 1 view -0 2922 .cfi_startproc 2923 @ args = 4, pretend = 0, frame = 8 2924 @ frame_needed = 0, uses_anonymous_args = 0 1598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits; 2925 .loc 1 1598 1 is_stmt 0 view .LVU931 2926 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 2927 .LCFI27: 2928 .cfi_def_cfa_offset 28 2929 .cfi_offset 4, -28 2930 .cfi_offset 5, -24 2931 .cfi_offset 6, -20 2932 .cfi_offset 7, -16 2933 .cfi_offset 8, -12 2934 .cfi_offset 9, -8 2935 .cfi_offset 14, -4 2936 0004 83B0 sub sp, sp, #12 2937 .LCFI28: 2938 .cfi_def_cfa_offset 40 2939 0006 1E46 mov r6, r3 2940 0008 0A9F ldr r7, [sp, #40] 1599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits; 2941 .loc 1 1599 3 is_stmt 1 view .LVU932 1600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tickstart; ARM GAS /tmp/cc4vHZRy.s page 142 2942 .loc 1 1600 3 view .LVU933 1601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2943 .loc 1 1601 3 view .LVU934 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2944 .loc 1 1604 3 view .LVU935 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2945 .loc 1 1604 12 is_stmt 0 view .LVU936 2946 000a 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 2947 .LVL252: 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2948 .loc 1 1604 12 view .LVU937 2949 000e DBB2 uxtb r3, r3 1604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2950 .loc 1 1604 6 view .LVU938 2951 0010 202B cmp r3, #32 2952 0012 7FD1 bne .L185 2953 0014 0446 mov r4, r0 2954 0016 0D46 mov r5, r1 2955 0018 9146 mov r9, r2 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2956 .loc 1 1606 5 is_stmt 1 view .LVU939 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2957 .loc 1 1606 8 is_stmt 0 view .LVU940 2958 001a 0029 cmp r1, #0 2959 001c 7ED0 beq .L186 1606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2960 .loc 1 1606 25 discriminator 1 view .LVU941 2961 001e 0AB9 cbnz r2, .L191 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2962 .loc 1 1608 15 view .LVU942 2963 0020 0120 movs r0, #1 2964 .LVL253: 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 2965 .loc 1 1608 15 view .LVU943 2966 0022 78E0 b .L172 2967 .LVL254: 2968 .L191: 1611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 2969 .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; 2970 .loc 1 1611 22 is_stmt 0 view .LVU945 2971 0024 0023 movs r3, #0 2972 0026 4364 str r3, [r0, #68] 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2973 .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; 2974 .loc 1 1612 20 is_stmt 0 view .LVU947 2975 0028 2222 movs r2, #34 2976 .LVL255: 1612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_TOIDLE; 2977 .loc 1 1612 20 view .LVU948 2978 002a 80F84220 strb r2, [r0, #66] 1613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 2979 .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; 2980 .loc 1 1613 26 is_stmt 0 view .LVU950 2981 002e 0122 movs r2, #1 ARM GAS /tmp/cc4vHZRy.s page 143 2982 0030 0263 str r2, [r0, #48] 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2983 .loc 1 1614 5 is_stmt 1 view .LVU951 1614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2984 .loc 1 1614 24 is_stmt 0 view .LVU952 2985 0032 4363 str r3, [r0, #52] 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2986 .loc 1 1617 5 is_stmt 1 view .LVU953 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2987 .loc 1 1617 17 is_stmt 0 view .LVU954 2988 0034 FFF7FEFF bl HAL_GetTick 2989 .LVL256: 1617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2990 .loc 1 1617 17 view .LVU955 2991 0038 8046 mov r8, r0 2992 .LVL257: 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 2993 .loc 1 1619 5 is_stmt 1 view .LVU956 1619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 2994 .loc 1 1619 24 is_stmt 0 view .LVU957 2995 003a A4F82C90 strh r9, [r4, #44] @ movhi 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2996 .loc 1 1620 5 is_stmt 1 view .LVU958 1620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 2997 .loc 1 1620 24 is_stmt 0 view .LVU959 2998 003e A4F82E90 strh r9, [r4, #46] @ movhi 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 2999 .loc 1 1623 5 is_stmt 1 view .LVU960 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3000 .loc 1 1623 21 is_stmt 0 view .LVU961 3001 0042 A368 ldr r3, [r4, #8] 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3002 .loc 1 1623 8 view .LVU962 3003 0044 B3F5805F cmp r3, #4096 3004 0048 04D0 beq .L192 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3005 .loc 1 1631 19 view .LVU963 3006 004a 4FF00009 mov r9, #0 3007 .LVL258: 3008 .L173: 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3009 .loc 1 1635 5 is_stmt 1 view .LVU964 1635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3010 .loc 1 1635 12 is_stmt 0 view .LVU965 3011 004e 0023 movs r3, #0 3012 0050 3380 strh r3, [r6] @ movhi 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3013 .loc 1 1638 5 is_stmt 1 view .LVU966 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3014 .loc 1 1638 11 is_stmt 0 view .LVU967 3015 0052 22E0 b .L174 3016 .LVL259: 3017 .L192: 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3018 .loc 1 1623 71 discriminator 1 view .LVU968 3019 0054 2369 ldr r3, [r4, #16] 1623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 144 3020 .loc 1 1623 56 discriminator 1 view .LVU969 3021 0056 13B1 cbz r3, .L189 1631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3022 .loc 1 1631 19 view .LVU970 3023 0058 4FF00009 mov r9, #0 3024 005c F7E7 b .L173 3025 .L189: 1626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3026 .loc 1 1626 19 view .LVU971 3027 005e A946 mov r9, r5 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 3028 .loc 1 1625 19 view .LVU972 3029 0060 0025 movs r5, #0 3030 .LVL260: 1625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) pData; 3031 .loc 1 1625 19 view .LVU973 3032 0062 F4E7 b .L173 3033 .LVL261: 3034 .L195: 1650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 3035 .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; 3036 .loc 1 1650 30 is_stmt 0 view .LVU975 3037 0064 0223 movs r3, #2 3038 0066 6363 str r3, [r4, #52] 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3039 .loc 1 1651 11 is_stmt 1 view .LVU976 1651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3040 .loc 1 1651 26 is_stmt 0 view .LVU977 3041 0068 2023 movs r3, #32 3042 006a 84F84230 strb r3, [r4, #66] 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3043 .loc 1 1653 11 is_stmt 1 view .LVU978 1653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3044 .loc 1 1653 18 is_stmt 0 view .LVU979 3045 006e 0020 movs r0, #0 3046 0070 51E0 b .L172 3047 .L196: 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3048 .loc 1 1662 11 is_stmt 1 view .LVU980 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3049 .loc 1 1662 52 is_stmt 0 view .LVU981 3050 0072 5368 ldr r3, [r2, #4] 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3051 .loc 1 1662 26 view .LVU982 3052 0074 C3F30803 ubfx r3, r3, #0, #9 1662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits++; 3053 .loc 1 1662 24 view .LVU983 3054 0078 29F8023B strh r3, [r9], #2 @ movhi 3055 .LVL262: 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3056 .loc 1 1663 11 is_stmt 1 view .LVU984 1663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3057 .loc 1 1663 11 is_stmt 0 view .LVU985 3058 007c 02E0 b .L178 3059 .L179: 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 145 3060 .loc 1 1669 13 is_stmt 1 view .LVU986 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3061 .loc 1 1669 52 is_stmt 0 view .LVU987 3062 007e 5368 ldr r3, [r2, #4] 1669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3063 .loc 1 1669 25 view .LVU988 3064 0080 2B70 strb r3, [r5] 3065 .L181: 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3066 .loc 1 1676 11 is_stmt 1 view .LVU989 1676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3067 .loc 1 1676 21 is_stmt 0 view .LVU990 3068 0082 0135 adds r5, r5, #1 3069 .LVL263: 3070 .L178: 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 3071 .loc 1 1679 9 is_stmt 1 view .LVU991 1679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount--; 3072 .loc 1 1679 16 is_stmt 0 view .LVU992 3073 0084 3388 ldrh r3, [r6] 3074 0086 0133 adds r3, r3, #1 3075 0088 3380 strh r3, [r6] @ movhi 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3076 .loc 1 1680 9 is_stmt 1 view .LVU993 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3077 .loc 1 1680 14 is_stmt 0 view .LVU994 3078 008a E38D ldrh r3, [r4, #46] 3079 008c 9BB2 uxth r3, r3 1680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3080 .loc 1 1680 27 view .LVU995 3081 008e 013B subs r3, r3, #1 3082 0090 9BB2 uxth r3, r3 3083 0092 E385 strh r3, [r4, #46] @ movhi 3084 .L176: 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3085 .loc 1 1684 7 is_stmt 1 view .LVU996 1684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3086 .loc 1 1684 10 is_stmt 0 view .LVU997 3087 0094 B7F1FF3F cmp r7, #-1 3088 0098 25D1 bne .L193 3089 .L174: 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3090 .loc 1 1638 11 is_stmt 1 view .LVU998 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3091 .loc 1 1638 17 is_stmt 0 view .LVU999 3092 009a E28D ldrh r2, [r4, #46] 3093 009c 92B2 uxth r2, r2 1638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3094 .loc 1 1638 11 view .LVU1000 3095 009e 002A cmp r2, #0 3096 00a0 2ED0 beq .L194 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3097 .loc 1 1641 7 is_stmt 1 view .LVU1001 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3098 .loc 1 1641 11 is_stmt 0 view .LVU1002 3099 00a2 2268 ldr r2, [r4] 3100 00a4 1368 ldr r3, [r2] ARM GAS /tmp/cc4vHZRy.s page 146 1641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3101 .loc 1 1641 10 view .LVU1003 3102 00a6 13F0100F tst r3, #16 3103 00aa 09D0 beq .L175 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3104 .loc 1 1644 9 is_stmt 1 view .LVU1004 3105 .LBB387: 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3106 .loc 1 1644 9 view .LVU1005 3107 00ac 0023 movs r3, #0 3108 00ae 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3109 .loc 1 1644 9 view .LVU1006 3110 00b0 1368 ldr r3, [r2] 3111 00b2 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3112 .loc 1 1644 9 view .LVU1007 3113 00b4 5368 ldr r3, [r2, #4] 3114 00b6 0193 str r3, [sp, #4] 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3115 .loc 1 1644 9 view .LVU1008 3116 00b8 019B ldr r3, [sp, #4] 3117 .LBE387: 1644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3118 .loc 1 1644 9 view .LVU1009 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3119 .loc 1 1648 9 view .LVU1010 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3120 .loc 1 1648 13 is_stmt 0 view .LVU1011 3121 00ba 3388 ldrh r3, [r6] 1648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3122 .loc 1 1648 12 view .LVU1012 3123 00bc 002B cmp r3, #0 3124 00be D1D1 bne .L195 3125 .L175: 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3126 .loc 1 1658 7 is_stmt 1 view .LVU1013 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3127 .loc 1 1658 11 is_stmt 0 view .LVU1014 3128 00c0 1368 ldr r3, [r2] 1658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3129 .loc 1 1658 10 view .LVU1015 3130 00c2 13F0200F tst r3, #32 3131 00c6 E5D0 beq .L176 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3132 .loc 1 1660 9 is_stmt 1 view .LVU1016 1660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3133 .loc 1 1660 12 is_stmt 0 view .LVU1017 3134 00c8 002D cmp r5, #0 3135 00ca D2D0 beq .L196 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3136 .loc 1 1667 11 is_stmt 1 view .LVU1018 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3137 .loc 1 1667 27 is_stmt 0 view .LVU1019 3138 00cc A368 ldr r3, [r4, #8] 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3139 .loc 1 1667 14 view .LVU1020 ARM GAS /tmp/cc4vHZRy.s page 147 3140 00ce B3F5805F cmp r3, #4096 3141 00d2 D4D0 beq .L179 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3142 .loc 1 1667 62 discriminator 1 view .LVU1021 3143 00d4 13B9 cbnz r3, .L180 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3144 .loc 1 1667 128 discriminator 2 view .LVU1022 3145 00d6 2369 ldr r3, [r4, #16] 1667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3146 .loc 1 1667 113 discriminator 2 view .LVU1023 3147 00d8 002B cmp r3, #0 3148 00da D0D0 beq .L179 3149 .L180: 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3150 .loc 1 1673 13 is_stmt 1 view .LVU1024 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3151 .loc 1 1673 52 is_stmt 0 view .LVU1025 3152 00dc 5368 ldr r3, [r2, #4] 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3153 .loc 1 1673 27 view .LVU1026 3154 00de 03F07F03 and r3, r3, #127 1673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3155 .loc 1 1673 25 view .LVU1027 3156 00e2 2B70 strb r3, [r5] 3157 00e4 CDE7 b .L181 3158 .L193: 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3159 .loc 1 1686 9 is_stmt 1 view .LVU1028 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3160 .loc 1 1686 15 is_stmt 0 view .LVU1029 3161 00e6 FFF7FEFF bl HAL_GetTick 3162 .LVL264: 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3163 .loc 1 1686 29 view .LVU1030 3164 00ea A0EB0800 sub r0, r0, r8 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3165 .loc 1 1686 12 view .LVU1031 3166 00ee B842 cmp r0, r7 3167 00f0 01D8 bhi .L183 1686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3168 .loc 1 1686 53 discriminator 1 view .LVU1032 3169 00f2 002F cmp r7, #0 3170 00f4 D1D1 bne .L174 3171 .L183: 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3172 .loc 1 1688 11 is_stmt 1 view .LVU1033 1688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3173 .loc 1 1688 26 is_stmt 0 view .LVU1034 3174 00f6 2023 movs r3, #32 3175 00f8 84F84230 strb r3, [r4, #66] 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3176 .loc 1 1690 11 is_stmt 1 view .LVU1035 1690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3177 .loc 1 1690 18 is_stmt 0 view .LVU1036 3178 00fc 0320 movs r0, #3 3179 00fe 0AE0 b .L172 3180 .L194: ARM GAS /tmp/cc4vHZRy.s page 148 1696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* At end of Rx process, restore huart->RxState to Ready */ 3181 .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 */ 3182 .loc 1 1696 19 is_stmt 0 view .LVU1038 3183 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 */ 3184 .loc 1 1696 39 view .LVU1039 3185 0102 E28D ldrh r2, [r4, #46] 3186 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 */ 3187 .loc 1 1696 32 view .LVU1040 3188 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 */ 3189 .loc 1 1696 12 view .LVU1041 3190 0108 3380 strh r3, [r6] @ movhi 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3191 .loc 1 1698 5 is_stmt 1 view .LVU1042 1698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3192 .loc 1 1698 20 is_stmt 0 view .LVU1043 3193 010a 2023 movs r3, #32 3194 010c 84F84230 strb r3, [r4, #66] 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3195 .loc 1 1700 5 is_stmt 1 view .LVU1044 1700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3196 .loc 1 1700 12 is_stmt 0 view .LVU1045 3197 0110 0020 movs r0, #0 3198 0112 00E0 b .L172 3199 .LVL265: 3200 .L185: 1704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3201 .loc 1 1704 12 view .LVU1046 3202 0114 0220 movs r0, #2 3203 .LVL266: 3204 .L172: 1706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3205 .loc 1 1706 1 view .LVU1047 3206 0116 03B0 add sp, sp, #12 3207 .LCFI29: 3208 .cfi_remember_state 3209 .cfi_def_cfa_offset 28 3210 @ sp needed 3211 0118 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 3212 .LVL267: 3213 .L186: 3214 .LCFI30: 3215 .cfi_restore_state 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3216 .loc 1 1608 15 view .LVU1048 3217 011c 0120 movs r0, #1 3218 .LVL268: 1608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3219 .loc 1 1608 15 view .LVU1049 3220 011e FAE7 b .L172 3221 .cfi_endproc 3222 .LFE150: 3224 .section .text.HAL_UARTEx_GetRxEventType,"ax",%progbits 3225 .align 1 ARM GAS /tmp/cc4vHZRy.s page 149 3226 .global HAL_UARTEx_GetRxEventType 3227 .syntax unified 3228 .thumb 3229 .thumb_func 3231 HAL_UARTEx_GetRxEventType: 3232 .LVL269: 3233 .LFB153: 1847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Return Rx Event type value, as stored in UART handle */ 3234 .loc 1 1847 1 is_stmt 1 view -0 3235 .cfi_startproc 3236 @ args = 0, pretend = 0, frame = 0 3237 @ frame_needed = 0, uses_anonymous_args = 0 3238 @ link register save eliminated. 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3239 .loc 1 1849 3 view .LVU1051 1849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3240 .loc 1 1849 15 is_stmt 0 view .LVU1052 3241 0000 406B ldr r0, [r0, #52] 3242 .LVL270: 1850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3243 .loc 1 1850 1 view .LVU1053 3244 0002 7047 bx lr 3245 .cfi_endproc 3246 .LFE153: 3248 .section .text.HAL_UART_Abort,"ax",%progbits 3249 .align 1 3250 .global HAL_UART_Abort 3251 .syntax unified 3252 .thumb 3253 .thumb_func 3255 HAL_UART_Abort: 3256 .LVL271: 3257 .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 */ 3258 .loc 1 1865 1 is_stmt 1 view -0 3259 .cfi_startproc 3260 @ args = 0, pretend = 0, frame = 0 3261 @ 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 */ 3262 .loc 1 1865 1 is_stmt 0 view .LVU1055 3263 0000 10B5 push {r4, lr} 3264 .LCFI31: 3265 .cfi_def_cfa_offset 8 3266 .cfi_offset 4, -8 3267 .cfi_offset 14, -4 3268 0002 0446 mov r4, r0 3269 .L199: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3270 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1056 3271 .LBB388: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3272 .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); 3273 .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); 3274 .loc 1 1867 3 discriminator 1 view .LVU1059 3275 0004 2268 ldr r2, [r4] ARM GAS /tmp/cc4vHZRy.s page 150 3276 .LVL272: 3277 .LBB389: 3278 .LBI389: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3279 .loc 2 476 31 discriminator 1 view .LVU1060 3280 .LBB390: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3281 .loc 2 478 5 discriminator 1 view .LVU1061 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3282 .loc 2 480 4 discriminator 1 view .LVU1062 3283 0006 02F10C03 add r3, r2, #12 3284 .LVL273: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3285 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1063 3286 .syntax unified 3287 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3288 000a 53E8003F ldrex r3, [r3] 3289 @ 0 "" 2 3290 .LVL274: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3291 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1064 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3292 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1065 3293 .thumb 3294 .syntax unified 3295 .LBE390: 3296 .LBE389: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3297 .loc 1 1867 3 discriminator 1 view .LVU1066 3298 000e 23F4F073 bic r3, r3, #480 3299 .LVL275: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3300 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1067 3301 .LBB391: 3302 .LBI391: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3303 .loc 2 527 31 discriminator 1 view .LVU1068 3304 .LBB392: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3305 .loc 2 529 4 discriminator 1 view .LVU1069 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3306 .loc 2 531 4 discriminator 1 view .LVU1070 3307 0012 0C32 adds r2, r2, #12 3308 .LVL276: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3309 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1071 3310 .syntax unified 3311 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3312 0014 42E80031 strex r1, r3, [r2] 3313 @ 0 "" 2 3314 .LVL277: 3315 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1072 3316 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1073 3317 .thumb 3318 .syntax unified 3319 .LBE392: 3320 .LBE391: ARM GAS /tmp/cc4vHZRy.s page 151 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3321 .loc 1 1867 3 discriminator 1 view .LVU1074 3322 0018 0029 cmp r1, #0 3323 001a F3D1 bne .L199 3324 .LVL278: 3325 .L200: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3326 .loc 1 1867 3 discriminator 1 view .LVU1075 3327 .LBE388: 1867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3328 .loc 1 1867 3 is_stmt 1 discriminator 1 view .LVU1076 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3329 .loc 1 1868 3 discriminator 1 view .LVU1077 3330 .LBB393: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3331 .loc 1 1868 3 discriminator 1 view .LVU1078 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3332 .loc 1 1868 3 discriminator 1 view .LVU1079 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3333 .loc 1 1868 3 discriminator 1 view .LVU1080 3334 001c 2268 ldr r2, [r4] 3335 .LVL279: 3336 .LBB394: 3337 .LBI394: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3338 .loc 2 476 31 discriminator 1 view .LVU1081 3339 .LBB395: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3340 .loc 2 478 5 discriminator 1 view .LVU1082 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3341 .loc 2 480 4 discriminator 1 view .LVU1083 3342 001e 02F11403 add r3, r2, #20 3343 .LVL280: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3344 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1084 3345 .syntax unified 3346 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3347 0022 53E8003F ldrex r3, [r3] 3348 @ 0 "" 2 3349 .LVL281: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3350 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1085 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3351 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1086 3352 .thumb 3353 .syntax unified 3354 .LBE395: 3355 .LBE394: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3356 .loc 1 1868 3 discriminator 1 view .LVU1087 3357 0026 23F00103 bic r3, r3, #1 3358 .LVL282: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3359 .loc 1 1868 3 is_stmt 1 discriminator 1 view .LVU1088 3360 .LBB396: 3361 .LBI396: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { ARM GAS /tmp/cc4vHZRy.s page 152 3362 .loc 2 527 31 discriminator 1 view .LVU1089 3363 .LBB397: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3364 .loc 2 529 4 discriminator 1 view .LVU1090 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3365 .loc 2 531 4 discriminator 1 view .LVU1091 3366 002a 1432 adds r2, r2, #20 3367 .LVL283: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3368 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1092 3369 .syntax unified 3370 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3371 002c 42E80031 strex r1, r3, [r2] 3372 @ 0 "" 2 3373 .LVL284: 3374 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1093 3375 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1094 3376 .thumb 3377 .syntax unified 3378 .LBE397: 3379 .LBE396: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3380 .loc 1 1868 3 discriminator 1 view .LVU1095 3381 0030 0029 cmp r1, #0 3382 0032 F3D1 bne .L200 3383 .LBE393: 1868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3384 .loc 1 1868 3 is_stmt 1 discriminator 2 view .LVU1096 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3385 .loc 1 1871 3 discriminator 2 view .LVU1097 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3386 .loc 1 1871 12 is_stmt 0 discriminator 2 view .LVU1098 3387 0034 236B ldr r3, [r4, #48] 3388 .LVL285: 1871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3389 .loc 1 1871 6 discriminator 2 view .LVU1099 3390 0036 012B cmp r3, #1 3391 0038 3CD0 beq .L202 3392 .L201: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3393 .loc 1 1873 5 is_stmt 1 discriminator 2 view .LVU1100 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3394 .loc 1 1877 3 discriminator 2 view .LVU1101 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3395 .loc 1 1877 7 is_stmt 0 discriminator 2 view .LVU1102 3396 003a 2368 ldr r3, [r4] 3397 003c 5B69 ldr r3, [r3, #20] 1877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3398 .loc 1 1877 6 discriminator 2 view .LVU1103 3399 003e 13F0800F tst r3, #128 3400 0042 13D0 beq .L203 3401 .L204: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3402 .loc 1 1879 5 is_stmt 1 discriminator 1 view .LVU1104 3403 .LBB398: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3404 .loc 1 1879 5 discriminator 1 view .LVU1105 ARM GAS /tmp/cc4vHZRy.s page 153 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3405 .loc 1 1879 5 discriminator 1 view .LVU1106 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3406 .loc 1 1879 5 discriminator 1 view .LVU1107 3407 0044 2268 ldr r2, [r4] 3408 .LVL286: 3409 .LBB399: 3410 .LBI399: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3411 .loc 2 476 31 discriminator 1 view .LVU1108 3412 .LBB400: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3413 .loc 2 478 5 discriminator 1 view .LVU1109 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3414 .loc 2 480 4 discriminator 1 view .LVU1110 3415 0046 02F11403 add r3, r2, #20 3416 .LVL287: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3417 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1111 3418 .syntax unified 3419 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3420 004a 53E8003F ldrex r3, [r3] 3421 @ 0 "" 2 3422 .LVL288: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3423 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1112 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3424 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1113 3425 .thumb 3426 .syntax unified 3427 .LBE400: 3428 .LBE399: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3429 .loc 1 1879 5 discriminator 1 view .LVU1114 3430 004e 23F08003 bic r3, r3, #128 3431 .LVL289: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3432 .loc 1 1879 5 is_stmt 1 discriminator 1 view .LVU1115 3433 .LBB401: 3434 .LBI401: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3435 .loc 2 527 31 discriminator 1 view .LVU1116 3436 .LBB402: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3437 .loc 2 529 4 discriminator 1 view .LVU1117 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3438 .loc 2 531 4 discriminator 1 view .LVU1118 3439 0052 1432 adds r2, r2, #20 3440 .LVL290: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3441 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1119 3442 .syntax unified 3443 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3444 0054 42E80031 strex r1, r3, [r2] 3445 @ 0 "" 2 3446 .LVL291: 3447 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1120 ARM GAS /tmp/cc4vHZRy.s page 154 3448 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1121 3449 .thumb 3450 .syntax unified 3451 .LBE402: 3452 .LBE401: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3453 .loc 1 1879 5 discriminator 1 view .LVU1122 3454 0058 0029 cmp r1, #0 3455 005a F3D1 bne .L204 3456 .LBE398: 1879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3457 .loc 1 1879 5 is_stmt 1 discriminator 2 view .LVU1123 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3458 .loc 1 1882 5 discriminator 2 view .LVU1124 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3459 .loc 1 1882 14 is_stmt 0 discriminator 2 view .LVU1125 3460 005c A36B ldr r3, [r4, #56] 3461 .LVL292: 1882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3462 .loc 1 1882 8 discriminator 2 view .LVU1126 3463 005e 2BB1 cbz r3, .L203 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3464 .loc 1 1886 7 is_stmt 1 view .LVU1127 1886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3465 .loc 1 1886 40 is_stmt 0 view .LVU1128 3466 0060 0022 movs r2, #0 3467 0062 1A65 str r2, [r3, #80] 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3468 .loc 1 1888 7 is_stmt 1 view .LVU1129 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3469 .loc 1 1888 11 is_stmt 0 view .LVU1130 3470 0064 A06B ldr r0, [r4, #56] 3471 .LVL293: 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3472 .loc 1 1888 11 view .LVU1131 3473 0066 FFF7FEFF bl HAL_DMA_Abort 3474 .LVL294: 1888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3475 .loc 1 1888 10 view .LVU1132 3476 006a 80BB cbnz r0, .L209 3477 .L203: 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3478 .loc 1 1902 3 is_stmt 1 view .LVU1133 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3479 .loc 1 1902 7 is_stmt 0 view .LVU1134 3480 006c 2368 ldr r3, [r4] 3481 006e 5B69 ldr r3, [r3, #20] 1902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3482 .loc 1 1902 6 view .LVU1135 3483 0070 13F0400F tst r3, #64 3484 0074 13D0 beq .L206 3485 .L207: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3486 .loc 1 1904 5 is_stmt 1 discriminator 1 view .LVU1136 3487 .LBB403: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3488 .loc 1 1904 5 discriminator 1 view .LVU1137 ARM GAS /tmp/cc4vHZRy.s page 155 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3489 .loc 1 1904 5 discriminator 1 view .LVU1138 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3490 .loc 1 1904 5 discriminator 1 view .LVU1139 3491 0076 2268 ldr r2, [r4] 3492 .LVL295: 3493 .LBB404: 3494 .LBI404: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3495 .loc 2 476 31 discriminator 1 view .LVU1140 3496 .LBB405: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3497 .loc 2 478 5 discriminator 1 view .LVU1141 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3498 .loc 2 480 4 discriminator 1 view .LVU1142 3499 0078 02F11403 add r3, r2, #20 3500 .LVL296: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3501 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1143 3502 .syntax unified 3503 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3504 007c 53E8003F ldrex r3, [r3] 3505 @ 0 "" 2 3506 .LVL297: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3507 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1144 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3508 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1145 3509 .thumb 3510 .syntax unified 3511 .LBE405: 3512 .LBE404: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3513 .loc 1 1904 5 discriminator 1 view .LVU1146 3514 0080 23F04003 bic r3, r3, #64 3515 .LVL298: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3516 .loc 1 1904 5 is_stmt 1 discriminator 1 view .LVU1147 3517 .LBB406: 3518 .LBI406: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3519 .loc 2 527 31 discriminator 1 view .LVU1148 3520 .LBB407: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3521 .loc 2 529 4 discriminator 1 view .LVU1149 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3522 .loc 2 531 4 discriminator 1 view .LVU1150 3523 0084 1432 adds r2, r2, #20 3524 .LVL299: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3525 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1151 3526 .syntax unified 3527 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3528 0086 42E80031 strex r1, r3, [r2] 3529 @ 0 "" 2 3530 .LVL300: 3531 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1152 ARM GAS /tmp/cc4vHZRy.s page 156 3532 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1153 3533 .thumb 3534 .syntax unified 3535 .LBE407: 3536 .LBE406: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3537 .loc 1 1904 5 discriminator 1 view .LVU1154 3538 008a 0029 cmp r1, #0 3539 008c F3D1 bne .L207 3540 .LBE403: 1904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3541 .loc 1 1904 5 is_stmt 1 discriminator 2 view .LVU1155 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3542 .loc 1 1907 5 discriminator 2 view .LVU1156 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3543 .loc 1 1907 14 is_stmt 0 discriminator 2 view .LVU1157 3544 008e E36B ldr r3, [r4, #60] 3545 .LVL301: 1907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3546 .loc 1 1907 8 discriminator 2 view .LVU1158 3547 0090 2BB1 cbz r3, .L206 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3548 .loc 1 1911 7 is_stmt 1 view .LVU1159 1911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3549 .loc 1 1911 40 is_stmt 0 view .LVU1160 3550 0092 0022 movs r2, #0 3551 0094 1A65 str r2, [r3, #80] 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3552 .loc 1 1913 7 is_stmt 1 view .LVU1161 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3553 .loc 1 1913 11 is_stmt 0 view .LVU1162 3554 0096 E06B ldr r0, [r4, #60] 3555 0098 FFF7FEFF bl HAL_DMA_Abort 3556 .LVL302: 1913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3557 .loc 1 1913 10 view .LVU1163 3558 009c 00BB cbnz r0, .L210 3559 .L206: 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3560 .loc 1 1927 3 is_stmt 1 view .LVU1164 1927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 3561 .loc 1 1927 22 is_stmt 0 view .LVU1165 3562 009e 0020 movs r0, #0 3563 00a0 E084 strh r0, [r4, #38] @ movhi 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3564 .loc 1 1928 3 is_stmt 1 view .LVU1166 1928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3565 .loc 1 1928 22 is_stmt 0 view .LVU1167 3566 00a2 E085 strh r0, [r4, #46] @ movhi 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3567 .loc 1 1931 3 is_stmt 1 view .LVU1168 1931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3568 .loc 1 1931 20 is_stmt 0 view .LVU1169 3569 00a4 6064 str r0, [r4, #68] 1934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->gState = HAL_UART_STATE_READY; 3570 .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; ARM GAS /tmp/cc4vHZRy.s page 157 3571 .loc 1 1934 18 is_stmt 0 view .LVU1171 3572 00a6 2023 movs r3, #32 3573 00a8 84F84230 strb r3, [r4, #66] 1935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 3574 .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; 3575 .loc 1 1935 17 is_stmt 0 view .LVU1173 3576 00ac 84F84130 strb r3, [r4, #65] 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3577 .loc 1 1936 3 is_stmt 1 view .LVU1174 1936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3578 .loc 1 1936 24 is_stmt 0 view .LVU1175 3579 00b0 2063 str r0, [r4, #48] 1938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3580 .loc 1 1938 3 is_stmt 1 view .LVU1176 3581 .L205: 1939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3582 .loc 1 1939 1 is_stmt 0 view .LVU1177 3583 00b2 10BD pop {r4, pc} 3584 .LVL303: 3585 .L202: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3586 .loc 1 1873 5 is_stmt 1 discriminator 1 view .LVU1178 3587 .LBB408: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3588 .loc 1 1873 5 discriminator 1 view .LVU1179 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3589 .loc 1 1873 5 discriminator 1 view .LVU1180 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3590 .loc 1 1873 5 discriminator 1 view .LVU1181 3591 00b4 2268 ldr r2, [r4] 3592 .LVL304: 3593 .LBB409: 3594 .LBI409: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3595 .loc 2 476 31 discriminator 1 view .LVU1182 3596 .LBB410: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3597 .loc 2 478 5 discriminator 1 view .LVU1183 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3598 .loc 2 480 4 discriminator 1 view .LVU1184 3599 00b6 02F10C03 add r3, r2, #12 3600 .LVL305: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3601 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1185 3602 .syntax unified 3603 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3604 00ba 53E8003F ldrex r3, [r3] 3605 @ 0 "" 2 3606 .LVL306: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3607 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1186 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3608 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1187 3609 .thumb 3610 .syntax unified 3611 .LBE410: ARM GAS /tmp/cc4vHZRy.s page 158 3612 .LBE409: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3613 .loc 1 1873 5 discriminator 1 view .LVU1188 3614 00be 23F01003 bic r3, r3, #16 3615 .LVL307: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3616 .loc 1 1873 5 is_stmt 1 discriminator 1 view .LVU1189 3617 .LBB411: 3618 .LBI411: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3619 .loc 2 527 31 discriminator 1 view .LVU1190 3620 .LBB412: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3621 .loc 2 529 4 discriminator 1 view .LVU1191 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3622 .loc 2 531 4 discriminator 1 view .LVU1192 3623 00c2 0C32 adds r2, r2, #12 3624 .LVL308: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3625 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1193 3626 .syntax unified 3627 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3628 00c4 42E80031 strex r1, r3, [r2] 3629 @ 0 "" 2 3630 .LVL309: 3631 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1194 3632 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1195 3633 .thumb 3634 .syntax unified 3635 .LBE412: 3636 .LBE411: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3637 .loc 1 1873 5 discriminator 1 view .LVU1196 3638 00c8 0029 cmp r1, #0 3639 00ca F3D1 bne .L202 3640 00cc B5E7 b .L201 3641 .LVL310: 3642 .L209: 1873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3643 .loc 1 1873 5 discriminator 1 view .LVU1197 3644 .LBE408: 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3645 .loc 1 1890 9 is_stmt 1 view .LVU1198 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3646 .loc 1 1890 13 is_stmt 0 view .LVU1199 3647 00ce A06B ldr r0, [r4, #56] 3648 00d0 FFF7FEFF bl HAL_DMA_GetError 3649 .LVL311: 1890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3650 .loc 1 1890 12 view .LVU1200 3651 00d4 2028 cmp r0, #32 3652 00d6 C9D1 bne .L203 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3653 .loc 1 1893 11 is_stmt 1 view .LVU1201 1893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3654 .loc 1 1893 28 is_stmt 0 view .LVU1202 3655 00d8 1023 movs r3, #16 ARM GAS /tmp/cc4vHZRy.s page 159 3656 00da 6364 str r3, [r4, #68] 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3657 .loc 1 1895 11 is_stmt 1 view .LVU1203 1895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3658 .loc 1 1895 18 is_stmt 0 view .LVU1204 3659 00dc 0320 movs r0, #3 3660 00de E8E7 b .L205 3661 .L210: 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3662 .loc 1 1915 9 is_stmt 1 view .LVU1205 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3663 .loc 1 1915 13 is_stmt 0 view .LVU1206 3664 00e0 E06B ldr r0, [r4, #60] 3665 00e2 FFF7FEFF bl HAL_DMA_GetError 3666 .LVL312: 1915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3667 .loc 1 1915 12 view .LVU1207 3668 00e6 2028 cmp r0, #32 3669 00e8 D9D1 bne .L206 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3670 .loc 1 1918 11 is_stmt 1 view .LVU1208 1918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3671 .loc 1 1918 28 is_stmt 0 view .LVU1209 3672 00ea 1023 movs r3, #16 3673 00ec 6364 str r3, [r4, #68] 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3674 .loc 1 1920 11 is_stmt 1 view .LVU1210 1920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3675 .loc 1 1920 18 is_stmt 0 view .LVU1211 3676 00ee 0320 movs r0, #3 3677 00f0 DFE7 b .L205 3678 .cfi_endproc 3679 .LFE154: 3681 .section .text.HAL_UART_AbortTransmit,"ax",%progbits 3682 .align 1 3683 .global HAL_UART_AbortTransmit 3684 .syntax unified 3685 .thumb 3686 .thumb_func 3688 HAL_UART_AbortTransmit: 3689 .LVL313: 3690 .LFB155: 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3691 .loc 1 1954 1 is_stmt 1 view -0 3692 .cfi_startproc 3693 @ args = 0, pretend = 0, frame = 0 3694 @ frame_needed = 0, uses_anonymous_args = 0 1954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 3695 .loc 1 1954 1 is_stmt 0 view .LVU1213 3696 0000 10B5 push {r4, lr} 3697 .LCFI32: 3698 .cfi_def_cfa_offset 8 3699 .cfi_offset 4, -8 3700 .cfi_offset 14, -4 3701 0002 0446 mov r4, r0 3702 .L212: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 160 3703 .loc 1 1956 3 is_stmt 1 discriminator 1 view .LVU1214 3704 .LBB413: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3705 .loc 1 1956 3 discriminator 1 view .LVU1215 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3706 .loc 1 1956 3 discriminator 1 view .LVU1216 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3707 .loc 1 1956 3 discriminator 1 view .LVU1217 3708 0004 2268 ldr r2, [r4] 3709 .LVL314: 3710 .LBB414: 3711 .LBI414: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3712 .loc 2 476 31 discriminator 1 view .LVU1218 3713 .LBB415: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3714 .loc 2 478 5 discriminator 1 view .LVU1219 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3715 .loc 2 480 4 discriminator 1 view .LVU1220 3716 0006 02F10C03 add r3, r2, #12 3717 .LVL315: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3718 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1221 3719 .syntax unified 3720 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3721 000a 53E8003F ldrex r3, [r3] 3722 @ 0 "" 2 3723 .LVL316: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3724 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1222 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3725 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1223 3726 .thumb 3727 .syntax unified 3728 .LBE415: 3729 .LBE414: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3730 .loc 1 1956 3 discriminator 1 view .LVU1224 3731 000e 23F0C003 bic r3, r3, #192 3732 .LVL317: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3733 .loc 1 1956 3 is_stmt 1 discriminator 1 view .LVU1225 3734 .LBB416: 3735 .LBI416: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3736 .loc 2 527 31 discriminator 1 view .LVU1226 3737 .LBB417: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3738 .loc 2 529 4 discriminator 1 view .LVU1227 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3739 .loc 2 531 4 discriminator 1 view .LVU1228 3740 0012 0C32 adds r2, r2, #12 3741 .LVL318: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3742 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1229 3743 .syntax unified 3744 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS /tmp/cc4vHZRy.s page 161 3745 0014 42E80031 strex r1, r3, [r2] 3746 @ 0 "" 2 3747 .LVL319: 3748 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1230 3749 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1231 3750 .thumb 3751 .syntax unified 3752 .LBE417: 3753 .LBE416: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3754 .loc 1 1956 3 discriminator 1 view .LVU1232 3755 0018 0029 cmp r1, #0 3756 001a F3D1 bne .L212 3757 .LBE413: 1956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3758 .loc 1 1956 3 is_stmt 1 discriminator 2 view .LVU1233 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3759 .loc 1 1959 3 discriminator 2 view .LVU1234 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3760 .loc 1 1959 7 is_stmt 0 discriminator 2 view .LVU1235 3761 001c 2368 ldr r3, [r4] 3762 .LVL320: 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3763 .loc 1 1959 7 discriminator 2 view .LVU1236 3764 001e 5B69 ldr r3, [r3, #20] 1959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3765 .loc 1 1959 6 discriminator 2 view .LVU1237 3766 0020 13F0800F tst r3, #128 3767 0024 13D0 beq .L213 3768 .L214: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3769 .loc 1 1961 5 is_stmt 1 discriminator 1 view .LVU1238 3770 .LBB418: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3771 .loc 1 1961 5 discriminator 1 view .LVU1239 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3772 .loc 1 1961 5 discriminator 1 view .LVU1240 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3773 .loc 1 1961 5 discriminator 1 view .LVU1241 3774 0026 2268 ldr r2, [r4] 3775 .LVL321: 3776 .LBB419: 3777 .LBI419: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3778 .loc 2 476 31 discriminator 1 view .LVU1242 3779 .LBB420: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3780 .loc 2 478 5 discriminator 1 view .LVU1243 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3781 .loc 2 480 4 discriminator 1 view .LVU1244 3782 0028 02F11403 add r3, r2, #20 3783 .LVL322: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3784 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1245 3785 .syntax unified 3786 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3787 002c 53E8003F ldrex r3, [r3] ARM GAS /tmp/cc4vHZRy.s page 162 3788 @ 0 "" 2 3789 .LVL323: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3790 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1246 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3791 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1247 3792 .thumb 3793 .syntax unified 3794 .LBE420: 3795 .LBE419: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3796 .loc 1 1961 5 discriminator 1 view .LVU1248 3797 0030 23F08003 bic r3, r3, #128 3798 .LVL324: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3799 .loc 1 1961 5 is_stmt 1 discriminator 1 view .LVU1249 3800 .LBB421: 3801 .LBI421: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3802 .loc 2 527 31 discriminator 1 view .LVU1250 3803 .LBB422: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3804 .loc 2 529 4 discriminator 1 view .LVU1251 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3805 .loc 2 531 4 discriminator 1 view .LVU1252 3806 0034 1432 adds r2, r2, #20 3807 .LVL325: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3808 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1253 3809 .syntax unified 3810 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3811 0036 42E80031 strex r1, r3, [r2] 3812 @ 0 "" 2 3813 .LVL326: 3814 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1254 3815 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1255 3816 .thumb 3817 .syntax unified 3818 .LBE422: 3819 .LBE421: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3820 .loc 1 1961 5 discriminator 1 view .LVU1256 3821 003a 0029 cmp r1, #0 3822 003c F3D1 bne .L214 3823 .LBE418: 1961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3824 .loc 1 1961 5 is_stmt 1 discriminator 2 view .LVU1257 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3825 .loc 1 1964 5 discriminator 2 view .LVU1258 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3826 .loc 1 1964 14 is_stmt 0 discriminator 2 view .LVU1259 3827 003e A36B ldr r3, [r4, #56] 3828 .LVL327: 1964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3829 .loc 1 1964 8 discriminator 2 view .LVU1260 3830 0040 2BB1 cbz r3, .L213 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 163 3831 .loc 1 1968 7 is_stmt 1 view .LVU1261 1968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3832 .loc 1 1968 40 is_stmt 0 view .LVU1262 3833 0042 0022 movs r2, #0 3834 0044 1A65 str r2, [r3, #80] 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3835 .loc 1 1970 7 is_stmt 1 view .LVU1263 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3836 .loc 1 1970 11 is_stmt 0 view .LVU1264 3837 0046 A06B ldr r0, [r4, #56] 3838 .LVL328: 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3839 .loc 1 1970 11 view .LVU1265 3840 0048 FFF7FEFF bl HAL_DMA_Abort 3841 .LVL329: 1970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3842 .loc 1 1970 10 view .LVU1266 3843 004c 28B9 cbnz r0, .L217 3844 .L213: 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3845 .loc 1 1984 3 is_stmt 1 view .LVU1267 1984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3846 .loc 1 1984 22 is_stmt 0 view .LVU1268 3847 004e 0020 movs r0, #0 3848 0050 E084 strh r0, [r4, #38] @ movhi 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3849 .loc 1 1987 3 is_stmt 1 view .LVU1269 1987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3850 .loc 1 1987 17 is_stmt 0 view .LVU1270 3851 0052 2023 movs r3, #32 3852 0054 84F84130 strb r3, [r4, #65] 1989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3853 .loc 1 1989 3 is_stmt 1 view .LVU1271 3854 .L215: 1990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3855 .loc 1 1990 1 is_stmt 0 view .LVU1272 3856 0058 10BD pop {r4, pc} 3857 .LVL330: 3858 .L217: 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3859 .loc 1 1972 9 is_stmt 1 view .LVU1273 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3860 .loc 1 1972 13 is_stmt 0 view .LVU1274 3861 005a A06B ldr r0, [r4, #56] 3862 005c FFF7FEFF bl HAL_DMA_GetError 3863 .LVL331: 1972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 3864 .loc 1 1972 12 view .LVU1275 3865 0060 2028 cmp r0, #32 3866 0062 F4D1 bne .L213 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3867 .loc 1 1975 11 is_stmt 1 view .LVU1276 1975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3868 .loc 1 1975 28 is_stmt 0 view .LVU1277 3869 0064 1023 movs r3, #16 3870 0066 6364 str r3, [r4, #68] 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 164 3871 .loc 1 1977 11 is_stmt 1 view .LVU1278 1977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 3872 .loc 1 1977 18 is_stmt 0 view .LVU1279 3873 0068 0320 movs r0, #3 3874 006a F5E7 b .L215 3875 .cfi_endproc 3876 .LFE155: 3878 .section .text.HAL_UART_AbortReceive,"ax",%progbits 3879 .align 1 3880 .global HAL_UART_AbortReceive 3881 .syntax unified 3882 .thumb 3883 .thumb_func 3885 HAL_UART_AbortReceive: 3886 .LVL332: 3887 .LFB156: 2005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 3888 .loc 1 2005 1 is_stmt 1 view -0 3889 .cfi_startproc 3890 @ args = 0, pretend = 0, frame = 0 3891 @ 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 */ 3892 .loc 1 2005 1 is_stmt 0 view .LVU1281 3893 0000 10B5 push {r4, lr} 3894 .LCFI33: 3895 .cfi_def_cfa_offset 8 3896 .cfi_offset 4, -8 3897 .cfi_offset 14, -4 3898 0002 0446 mov r4, r0 3899 .L219: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3900 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1282 3901 .LBB423: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3902 .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); 3903 .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); 3904 .loc 1 2007 3 discriminator 1 view .LVU1285 3905 0004 2268 ldr r2, [r4] 3906 .LVL333: 3907 .LBB424: 3908 .LBI424: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3909 .loc 2 476 31 discriminator 1 view .LVU1286 3910 .LBB425: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3911 .loc 2 478 5 discriminator 1 view .LVU1287 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3912 .loc 2 480 4 discriminator 1 view .LVU1288 3913 0006 02F10C03 add r3, r2, #12 3914 .LVL334: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3915 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1289 3916 .syntax unified 3917 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3918 000a 53E8003F ldrex r3, [r3] ARM GAS /tmp/cc4vHZRy.s page 165 3919 @ 0 "" 2 3920 .LVL335: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3921 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1290 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3922 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1291 3923 .thumb 3924 .syntax unified 3925 .LBE425: 3926 .LBE424: 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 .LVU1292 3928 000e 23F49073 bic r3, r3, #288 3929 .LVL336: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3930 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1293 3931 .LBB426: 3932 .LBI426: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3933 .loc 2 527 31 discriminator 1 view .LVU1294 3934 .LBB427: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3935 .loc 2 529 4 discriminator 1 view .LVU1295 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3936 .loc 2 531 4 discriminator 1 view .LVU1296 3937 0012 0C32 adds r2, r2, #12 3938 .LVL337: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3939 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1297 3940 .syntax unified 3941 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3942 0014 42E80031 strex r1, r3, [r2] 3943 @ 0 "" 2 3944 .LVL338: 3945 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1298 3946 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1299 3947 .thumb 3948 .syntax unified 3949 .LBE427: 3950 .LBE426: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3951 .loc 1 2007 3 discriminator 1 view .LVU1300 3952 0018 0029 cmp r1, #0 3953 001a F3D1 bne .L219 3954 .LVL339: 3955 .L220: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3956 .loc 1 2007 3 discriminator 1 view .LVU1301 3957 .LBE423: 2007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 3958 .loc 1 2007 3 is_stmt 1 discriminator 1 view .LVU1302 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3959 .loc 1 2008 3 discriminator 1 view .LVU1303 3960 .LBB428: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3961 .loc 1 2008 3 discriminator 1 view .LVU1304 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 166 3962 .loc 1 2008 3 discriminator 1 view .LVU1305 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3963 .loc 1 2008 3 discriminator 1 view .LVU1306 3964 001c 2268 ldr r2, [r4] 3965 .LVL340: 3966 .LBB429: 3967 .LBI429: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3968 .loc 2 476 31 discriminator 1 view .LVU1307 3969 .LBB430: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 3970 .loc 2 478 5 discriminator 1 view .LVU1308 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3971 .loc 2 480 4 discriminator 1 view .LVU1309 3972 001e 02F11403 add r3, r2, #20 3973 .LVL341: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3974 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1310 3975 .syntax unified 3976 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 3977 0022 53E8003F ldrex r3, [r3] 3978 @ 0 "" 2 3979 .LVL342: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3980 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1311 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 3981 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1312 3982 .thumb 3983 .syntax unified 3984 .LBE430: 3985 .LBE429: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3986 .loc 1 2008 3 discriminator 1 view .LVU1313 3987 0026 23F00103 bic r3, r3, #1 3988 .LVL343: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 3989 .loc 1 2008 3 is_stmt 1 discriminator 1 view .LVU1314 3990 .LBB431: 3991 .LBI431: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 3992 .loc 2 527 31 discriminator 1 view .LVU1315 3993 .LBB432: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 3994 .loc 2 529 4 discriminator 1 view .LVU1316 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3995 .loc 2 531 4 discriminator 1 view .LVU1317 3996 002a 1432 adds r2, r2, #20 3997 .LVL344: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 3998 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1318 3999 .syntax unified 4000 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4001 002c 42E80031 strex r1, r3, [r2] 4002 @ 0 "" 2 4003 .LVL345: 4004 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1319 4005 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1320 ARM GAS /tmp/cc4vHZRy.s page 167 4006 .thumb 4007 .syntax unified 4008 .LBE432: 4009 .LBE431: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4010 .loc 1 2008 3 discriminator 1 view .LVU1321 4011 0030 0029 cmp r1, #0 4012 0032 F3D1 bne .L220 4013 .LBE428: 2008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4014 .loc 1 2008 3 is_stmt 1 discriminator 2 view .LVU1322 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4015 .loc 1 2011 3 discriminator 2 view .LVU1323 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4016 .loc 1 2011 12 is_stmt 0 discriminator 2 view .LVU1324 4017 0034 236B ldr r3, [r4, #48] 4018 .LVL346: 2011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4019 .loc 1 2011 6 discriminator 2 view .LVU1325 4020 0036 012B cmp r3, #1 4021 0038 1FD0 beq .L222 4022 .L221: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4023 .loc 1 2013 5 is_stmt 1 discriminator 2 view .LVU1326 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4024 .loc 1 2017 3 discriminator 2 view .LVU1327 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4025 .loc 1 2017 7 is_stmt 0 discriminator 2 view .LVU1328 4026 003a 2368 ldr r3, [r4] 4027 003c 5B69 ldr r3, [r3, #20] 2017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4028 .loc 1 2017 6 discriminator 2 view .LVU1329 4029 003e 13F0400F tst r3, #64 4030 0042 13D0 beq .L223 4031 .L224: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4032 .loc 1 2019 5 is_stmt 1 discriminator 1 view .LVU1330 4033 .LBB433: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4034 .loc 1 2019 5 discriminator 1 view .LVU1331 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4035 .loc 1 2019 5 discriminator 1 view .LVU1332 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4036 .loc 1 2019 5 discriminator 1 view .LVU1333 4037 0044 2268 ldr r2, [r4] 4038 .LVL347: 4039 .LBB434: 4040 .LBI434: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4041 .loc 2 476 31 discriminator 1 view .LVU1334 4042 .LBB435: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4043 .loc 2 478 5 discriminator 1 view .LVU1335 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4044 .loc 2 480 4 discriminator 1 view .LVU1336 4045 0046 02F11403 add r3, r2, #20 4046 .LVL348: ARM GAS /tmp/cc4vHZRy.s page 168 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4047 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1337 4048 .syntax unified 4049 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4050 004a 53E8003F ldrex r3, [r3] 4051 @ 0 "" 2 4052 .LVL349: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4053 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1338 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4054 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1339 4055 .thumb 4056 .syntax unified 4057 .LBE435: 4058 .LBE434: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4059 .loc 1 2019 5 discriminator 1 view .LVU1340 4060 004e 23F04003 bic r3, r3, #64 4061 .LVL350: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4062 .loc 1 2019 5 is_stmt 1 discriminator 1 view .LVU1341 4063 .LBB436: 4064 .LBI436: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4065 .loc 2 527 31 discriminator 1 view .LVU1342 4066 .LBB437: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4067 .loc 2 529 4 discriminator 1 view .LVU1343 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4068 .loc 2 531 4 discriminator 1 view .LVU1344 4069 0052 1432 adds r2, r2, #20 4070 .LVL351: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4071 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1345 4072 .syntax unified 4073 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4074 0054 42E80031 strex r1, r3, [r2] 4075 @ 0 "" 2 4076 .LVL352: 4077 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1346 4078 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1347 4079 .thumb 4080 .syntax unified 4081 .LBE437: 4082 .LBE436: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4083 .loc 1 2019 5 discriminator 1 view .LVU1348 4084 0058 0029 cmp r1, #0 4085 005a F3D1 bne .L224 4086 .LBE433: 2019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4087 .loc 1 2019 5 is_stmt 1 discriminator 2 view .LVU1349 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4088 .loc 1 2022 5 discriminator 2 view .LVU1350 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4089 .loc 1 2022 14 is_stmt 0 discriminator 2 view .LVU1351 4090 005c E36B ldr r3, [r4, #60] ARM GAS /tmp/cc4vHZRy.s page 169 4091 .LVL353: 2022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4092 .loc 1 2022 8 discriminator 2 view .LVU1352 4093 005e 2BB1 cbz r3, .L223 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4094 .loc 1 2026 7 is_stmt 1 view .LVU1353 2026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4095 .loc 1 2026 40 is_stmt 0 view .LVU1354 4096 0060 0022 movs r2, #0 4097 0062 1A65 str r2, [r3, #80] 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4098 .loc 1 2028 7 is_stmt 1 view .LVU1355 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4099 .loc 1 2028 11 is_stmt 0 view .LVU1356 4100 0064 E06B ldr r0, [r4, #60] 4101 .LVL354: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4102 .loc 1 2028 11 view .LVU1357 4103 0066 FFF7FEFF bl HAL_DMA_Abort 4104 .LVL355: 2028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4105 .loc 1 2028 10 view .LVU1358 4106 006a 98B9 cbnz r0, .L227 4107 .L223: 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4108 .loc 1 2042 3 is_stmt 1 view .LVU1359 2042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4109 .loc 1 2042 22 is_stmt 0 view .LVU1360 4110 006c 0020 movs r0, #0 4111 006e E085 strh r0, [r4, #46] @ movhi 2045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 4112 .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; 4113 .loc 1 2045 18 is_stmt 0 view .LVU1362 4114 0070 2023 movs r3, #32 4115 0072 84F84230 strb r3, [r4, #66] 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4116 .loc 1 2046 3 is_stmt 1 view .LVU1363 2046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4117 .loc 1 2046 24 is_stmt 0 view .LVU1364 4118 0076 2063 str r0, [r4, #48] 2048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4119 .loc 1 2048 3 is_stmt 1 view .LVU1365 4120 .L225: 2049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4121 .loc 1 2049 1 is_stmt 0 view .LVU1366 4122 0078 10BD pop {r4, pc} 4123 .LVL356: 4124 .L222: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4125 .loc 1 2013 5 is_stmt 1 discriminator 1 view .LVU1367 4126 .LBB438: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4127 .loc 1 2013 5 discriminator 1 view .LVU1368 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4128 .loc 1 2013 5 discriminator 1 view .LVU1369 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 170 4129 .loc 1 2013 5 discriminator 1 view .LVU1370 4130 007a 2268 ldr r2, [r4] 4131 .LVL357: 4132 .LBB439: 4133 .LBI439: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4134 .loc 2 476 31 discriminator 1 view .LVU1371 4135 .LBB440: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4136 .loc 2 478 5 discriminator 1 view .LVU1372 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4137 .loc 2 480 4 discriminator 1 view .LVU1373 4138 007c 02F10C03 add r3, r2, #12 4139 .LVL358: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4140 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1374 4141 .syntax unified 4142 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4143 0080 53E8003F ldrex r3, [r3] 4144 @ 0 "" 2 4145 .LVL359: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4146 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1375 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4147 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1376 4148 .thumb 4149 .syntax unified 4150 .LBE440: 4151 .LBE439: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4152 .loc 1 2013 5 discriminator 1 view .LVU1377 4153 0084 23F01003 bic r3, r3, #16 4154 .LVL360: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4155 .loc 1 2013 5 is_stmt 1 discriminator 1 view .LVU1378 4156 .LBB441: 4157 .LBI441: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4158 .loc 2 527 31 discriminator 1 view .LVU1379 4159 .LBB442: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4160 .loc 2 529 4 discriminator 1 view .LVU1380 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4161 .loc 2 531 4 discriminator 1 view .LVU1381 4162 0088 0C32 adds r2, r2, #12 4163 .LVL361: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4164 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1382 4165 .syntax unified 4166 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4167 008a 42E80031 strex r1, r3, [r2] 4168 @ 0 "" 2 4169 .LVL362: 4170 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1383 4171 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1384 4172 .thumb 4173 .syntax unified ARM GAS /tmp/cc4vHZRy.s page 171 4174 .LBE442: 4175 .LBE441: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4176 .loc 1 2013 5 discriminator 1 view .LVU1385 4177 008e 0029 cmp r1, #0 4178 0090 F3D1 bne .L222 4179 0092 D2E7 b .L221 4180 .LVL363: 4181 .L227: 2013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4182 .loc 1 2013 5 discriminator 1 view .LVU1386 4183 .LBE438: 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4184 .loc 1 2030 9 is_stmt 1 view .LVU1387 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4185 .loc 1 2030 13 is_stmt 0 view .LVU1388 4186 0094 E06B ldr r0, [r4, #60] 4187 0096 FFF7FEFF bl HAL_DMA_GetError 4188 .LVL364: 2030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4189 .loc 1 2030 12 view .LVU1389 4190 009a 2028 cmp r0, #32 4191 009c E6D1 bne .L223 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4192 .loc 1 2033 11 is_stmt 1 view .LVU1390 2033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4193 .loc 1 2033 28 is_stmt 0 view .LVU1391 4194 009e 1023 movs r3, #16 4195 00a0 6364 str r3, [r4, #68] 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4196 .loc 1 2035 11 is_stmt 1 view .LVU1392 2035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4197 .loc 1 2035 18 is_stmt 0 view .LVU1393 4198 00a2 0320 movs r0, #3 4199 00a4 E8E7 b .L225 4200 .cfi_endproc 4201 .LFE156: 4203 .section .text.HAL_UART_TxCpltCallback,"ax",%progbits 4204 .align 1 4205 .weak HAL_UART_TxCpltCallback 4206 .syntax unified 4207 .thumb 4208 .thumb_func 4210 HAL_UART_TxCpltCallback: 4211 .LVL365: 4212 .LFB161: 2620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4213 .loc 1 2620 1 is_stmt 1 view -0 4214 .cfi_startproc 4215 @ args = 0, pretend = 0, frame = 0 4216 @ frame_needed = 0, uses_anonymous_args = 0 4217 @ 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, 4218 .loc 1 2622 3 view .LVU1395 2626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4219 .loc 1 2626 1 is_stmt 0 view .LVU1396 4220 0000 7047 bx lr ARM GAS /tmp/cc4vHZRy.s page 172 4221 .cfi_endproc 4222 .LFE161: 4224 .section .text.UART_DMATransmitCplt,"ax",%progbits 4225 .align 1 4226 .syntax unified 4227 .thumb 4228 .thumb_func 4230 UART_DMATransmitCplt: 4231 .LVL366: 4232 .LFB177: 3016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4233 .loc 1 3016 1 is_stmt 1 view -0 4234 .cfi_startproc 4235 @ args = 0, pretend = 0, frame = 0 4236 @ 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; 4237 .loc 1 3016 1 is_stmt 0 view .LVU1398 4238 0000 08B5 push {r3, lr} 4239 .LCFI34: 4240 .cfi_def_cfa_offset 8 4241 .cfi_offset 3, -8 4242 .cfi_offset 14, -4 4243 0002 0346 mov r3, r0 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 4244 .loc 1 3017 3 is_stmt 1 view .LVU1399 3017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* DMA Normal mode*/ 4245 .loc 1 3017 23 is_stmt 0 view .LVU1400 4246 0004 806B ldr r0, [r0, #56] 4247 .LVL367: 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4248 .loc 1 3019 3 is_stmt 1 view .LVU1401 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4249 .loc 1 3019 12 is_stmt 0 view .LVU1402 4250 0006 1B68 ldr r3, [r3] 4251 .LVL368: 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4252 .loc 1 3019 22 view .LVU1403 4253 0008 1B68 ldr r3, [r3] 3019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4254 .loc 1 3019 6 view .LVU1404 4255 000a 13F4807F tst r3, #256 4256 000e 1AD1 bne .L230 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4257 .loc 1 3021 5 is_stmt 1 view .LVU1405 3021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4258 .loc 1 3021 24 is_stmt 0 view .LVU1406 4259 0010 0023 movs r3, #0 4260 0012 C384 strh r3, [r0, #38] @ movhi 4261 .L231: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4262 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1407 4263 .LBB443: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4264 .loc 1 3025 5 discriminator 1 view .LVU1408 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4265 .loc 1 3025 5 discriminator 1 view .LVU1409 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 173 4266 .loc 1 3025 5 discriminator 1 view .LVU1410 4267 0014 0268 ldr r2, [r0] 4268 .LVL369: 4269 .LBB444: 4270 .LBI444: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4271 .loc 2 476 31 discriminator 1 view .LVU1411 4272 .LBB445: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4273 .loc 2 478 5 discriminator 1 view .LVU1412 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4274 .loc 2 480 4 discriminator 1 view .LVU1413 4275 0016 02F11403 add r3, r2, #20 4276 .LVL370: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4277 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1414 4278 .syntax unified 4279 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4280 001a 53E8003F ldrex r3, [r3] 4281 @ 0 "" 2 4282 .LVL371: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4283 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1415 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4284 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1416 4285 .thumb 4286 .syntax unified 4287 .LBE445: 4288 .LBE444: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4289 .loc 1 3025 5 discriminator 1 view .LVU1417 4290 001e 23F08003 bic r3, r3, #128 4291 .LVL372: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4292 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1418 4293 .LBB446: 4294 .LBI446: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4295 .loc 2 527 31 discriminator 1 view .LVU1419 4296 .LBB447: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4297 .loc 2 529 4 discriminator 1 view .LVU1420 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4298 .loc 2 531 4 discriminator 1 view .LVU1421 4299 0022 1432 adds r2, r2, #20 4300 .LVL373: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4301 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1422 4302 .syntax unified 4303 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4304 0024 42E80031 strex r1, r3, [r2] 4305 @ 0 "" 2 4306 .LVL374: 4307 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1423 4308 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1424 4309 .thumb 4310 .syntax unified ARM GAS /tmp/cc4vHZRy.s page 174 4311 .LBE447: 4312 .LBE446: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4313 .loc 1 3025 5 discriminator 1 view .LVU1425 4314 0028 0029 cmp r1, #0 4315 002a F3D1 bne .L231 4316 .LVL375: 4317 .L232: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4318 .loc 1 3025 5 discriminator 1 view .LVU1426 4319 .LBE443: 3025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4320 .loc 1 3025 5 is_stmt 1 discriminator 1 view .LVU1427 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4321 .loc 1 3028 5 discriminator 1 view .LVU1428 4322 .LBB448: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4323 .loc 1 3028 5 discriminator 1 view .LVU1429 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4324 .loc 1 3028 5 discriminator 1 view .LVU1430 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4325 .loc 1 3028 5 discriminator 1 view .LVU1431 4326 002c 0268 ldr r2, [r0] 4327 .LVL376: 4328 .LBB449: 4329 .LBI449: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4330 .loc 2 476 31 discriminator 1 view .LVU1432 4331 .LBB450: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4332 .loc 2 478 5 discriminator 1 view .LVU1433 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4333 .loc 2 480 4 discriminator 1 view .LVU1434 4334 002e 02F10C03 add r3, r2, #12 4335 .LVL377: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4336 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1435 4337 .syntax unified 4338 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4339 0032 53E8003F ldrex r3, [r3] 4340 @ 0 "" 2 4341 .LVL378: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4342 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1436 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4343 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1437 4344 .thumb 4345 .syntax unified 4346 .LBE450: 4347 .LBE449: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4348 .loc 1 3028 5 discriminator 1 view .LVU1438 4349 0036 43F04003 orr r3, r3, #64 4350 .LVL379: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4351 .loc 1 3028 5 is_stmt 1 discriminator 1 view .LVU1439 4352 .LBB451: ARM GAS /tmp/cc4vHZRy.s page 175 4353 .LBI451: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4354 .loc 2 527 31 discriminator 1 view .LVU1440 4355 .LBB452: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4356 .loc 2 529 4 discriminator 1 view .LVU1441 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4357 .loc 2 531 4 discriminator 1 view .LVU1442 4358 003a 0C32 adds r2, r2, #12 4359 .LVL380: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4360 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1443 4361 .syntax unified 4362 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4363 003c 42E80031 strex r1, r3, [r2] 4364 @ 0 "" 2 4365 .LVL381: 4366 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1444 4367 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1445 4368 .thumb 4369 .syntax unified 4370 .LBE452: 4371 .LBE451: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4372 .loc 1 3028 5 discriminator 1 view .LVU1446 4373 0040 0029 cmp r1, #0 4374 0042 F3D1 bne .L232 4375 .LVL382: 4376 .L229: 3028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4377 .loc 1 3028 5 discriminator 1 view .LVU1447 4378 .LBE448: 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4379 .loc 1 3042 1 view .LVU1448 4380 0044 08BD pop {r3, pc} 4381 .LVL383: 4382 .L230: 3039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4383 .loc 1 3039 5 is_stmt 1 view .LVU1449 4384 0046 FFF7FEFF bl HAL_UART_TxCpltCallback 4385 .LVL384: 3042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4386 .loc 1 3042 1 is_stmt 0 view .LVU1450 4387 004a FBE7 b .L229 4388 .cfi_endproc 4389 .LFE177: 4391 .section .text.UART_EndTransmit_IT,"ax",%progbits 4392 .align 1 4393 .syntax unified 4394 .thumb 4395 .thumb_func 4397 UART_EndTransmit_IT: 4398 .LVL385: 4399 .LFB193: 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 4400 .loc 1 3604 1 is_stmt 1 view -0 4401 .cfi_startproc ARM GAS /tmp/cc4vHZRy.s page 176 4402 @ args = 0, pretend = 0, frame = 0 4403 @ frame_needed = 0, uses_anonymous_args = 0 3604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable the UART Transmit Complete Interrupt */ 4404 .loc 1 3604 1 is_stmt 0 view .LVU1452 4405 0000 08B5 push {r3, lr} 4406 .LCFI35: 4407 .cfi_def_cfa_offset 8 4408 .cfi_offset 3, -8 4409 .cfi_offset 14, -4 3606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4410 .loc 1 3606 3 is_stmt 1 view .LVU1453 4411 0002 0168 ldr r1, [r0] 4412 0004 CA68 ldr r2, [r1, #12] 4413 0006 22F04002 bic r2, r2, #64 4414 000a CA60 str r2, [r1, #12] 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4415 .loc 1 3609 3 view .LVU1454 3609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4416 .loc 1 3609 17 is_stmt 0 view .LVU1455 4417 000c 2022 movs r2, #32 4418 000e 80F84120 strb r2, [r0, #65] 3616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4419 .loc 1 3616 3 is_stmt 1 view .LVU1456 4420 0012 FFF7FEFF bl HAL_UART_TxCpltCallback 4421 .LVL386: 3619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4422 .loc 1 3619 3 view .LVU1457 3620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4423 .loc 1 3620 1 is_stmt 0 view .LVU1458 4424 0016 0020 movs r0, #0 4425 0018 08BD pop {r3, pc} 4426 .cfi_endproc 4427 .LFE193: 4429 .section .text.HAL_UART_TxHalfCpltCallback,"ax",%progbits 4430 .align 1 4431 .weak HAL_UART_TxHalfCpltCallback 4432 .syntax unified 4433 .thumb 4434 .thumb_func 4436 HAL_UART_TxHalfCpltCallback: 4437 .LVL387: 4438 .LFB162: 2635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4439 .loc 1 2635 1 is_stmt 1 view -0 4440 .cfi_startproc 4441 @ args = 0, pretend = 0, frame = 0 4442 @ frame_needed = 0, uses_anonymous_args = 0 4443 @ 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, 4444 .loc 1 2637 3 view .LVU1460 2641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4445 .loc 1 2641 1 is_stmt 0 view .LVU1461 4446 0000 7047 bx lr 4447 .cfi_endproc 4448 .LFE162: 4450 .section .text.UART_DMATxHalfCplt,"ax",%progbits 4451 .align 1 ARM GAS /tmp/cc4vHZRy.s page 177 4452 .syntax unified 4453 .thumb 4454 .thumb_func 4456 UART_DMATxHalfCplt: 4457 .LVL388: 4458 .LFB178: 3051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4459 .loc 1 3051 1 is_stmt 1 view -0 4460 .cfi_startproc 4461 @ args = 0, pretend = 0, frame = 0 4462 @ 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; 4463 .loc 1 3051 1 is_stmt 0 view .LVU1463 4464 0000 08B5 push {r3, lr} 4465 .LCFI36: 4466 .cfi_def_cfa_offset 8 4467 .cfi_offset 3, -8 4468 .cfi_offset 14, -4 3052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4469 .loc 1 3052 3 is_stmt 1 view .LVU1464 4470 .LVL389: 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4471 .loc 1 3059 3 view .LVU1465 4472 0002 806B ldr r0, [r0, #56] 4473 .LVL390: 3059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4474 .loc 1 3059 3 is_stmt 0 view .LVU1466 4475 0004 FFF7FEFF bl HAL_UART_TxHalfCpltCallback 4476 .LVL391: 3061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4477 .loc 1 3061 1 view .LVU1467 4478 0008 08BD pop {r3, pc} 4479 .cfi_endproc 4480 .LFE178: 4482 .section .text.HAL_UART_RxCpltCallback,"ax",%progbits 4483 .align 1 4484 .weak HAL_UART_RxCpltCallback 4485 .syntax unified 4486 .thumb 4487 .thumb_func 4489 HAL_UART_RxCpltCallback: 4490 .LVL392: 4491 .LFB163: 2650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4492 .loc 1 2650 1 is_stmt 1 view -0 4493 .cfi_startproc 4494 @ args = 0, pretend = 0, frame = 0 4495 @ frame_needed = 0, uses_anonymous_args = 0 4496 @ 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, 4497 .loc 1 2652 3 view .LVU1469 2656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4498 .loc 1 2656 1 is_stmt 0 view .LVU1470 4499 0000 7047 bx lr 4500 .cfi_endproc 4501 .LFE163: 4503 .section .text.HAL_UART_RxHalfCpltCallback,"ax",%progbits ARM GAS /tmp/cc4vHZRy.s page 178 4504 .align 1 4505 .weak HAL_UART_RxHalfCpltCallback 4506 .syntax unified 4507 .thumb 4508 .thumb_func 4510 HAL_UART_RxHalfCpltCallback: 4511 .LVL393: 4512 .LFB164: 2665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4513 .loc 1 2665 1 is_stmt 1 view -0 4514 .cfi_startproc 4515 @ args = 0, pretend = 0, frame = 0 4516 @ frame_needed = 0, uses_anonymous_args = 0 4517 @ 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, 4518 .loc 1 2667 3 view .LVU1472 2671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4519 .loc 1 2671 1 is_stmt 0 view .LVU1473 4520 0000 7047 bx lr 4521 .cfi_endproc 4522 .LFE164: 4524 .section .text.HAL_UART_ErrorCallback,"ax",%progbits 4525 .align 1 4526 .weak HAL_UART_ErrorCallback 4527 .syntax unified 4528 .thumb 4529 .thumb_func 4531 HAL_UART_ErrorCallback: 4532 .LVL394: 4533 .LFB165: 2680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4534 .loc 1 2680 1 is_stmt 1 view -0 4535 .cfi_startproc 4536 @ args = 0, pretend = 0, frame = 0 4537 @ frame_needed = 0, uses_anonymous_args = 0 4538 @ 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, 4539 .loc 1 2682 3 view .LVU1475 2686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4540 .loc 1 2686 1 is_stmt 0 view .LVU1476 4541 0000 7047 bx lr 4542 .cfi_endproc 4543 .LFE165: 4545 .section .text.UART_DMAError,"ax",%progbits 4546 .align 1 4547 .syntax unified 4548 .thumb 4549 .thumb_func 4551 UART_DMAError: 4552 .LVL395: 4553 .LFB181: 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 4554 .loc 1 3171 1 is_stmt 1 view -0 4555 .cfi_startproc 4556 @ args = 0, pretend = 0, frame = 0 4557 @ frame_needed = 0, uses_anonymous_args = 0 3171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; ARM GAS /tmp/cc4vHZRy.s page 179 4558 .loc 1 3171 1 is_stmt 0 view .LVU1478 4559 0000 10B5 push {r4, lr} 4560 .LCFI37: 4561 .cfi_def_cfa_offset 8 4562 .cfi_offset 4, -8 4563 .cfi_offset 14, -4 3172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4564 .loc 1 3172 3 is_stmt 1 view .LVU1479 4565 .LVL396: 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4566 .loc 1 3173 3 view .LVU1480 3173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4567 .loc 1 3173 23 is_stmt 0 view .LVU1481 4568 0002 846B ldr r4, [r0, #56] 4569 .LVL397: 3176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->gState == HAL_UART_STATE_BUSY_TX) && dmarequest) 4570 .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) 4571 .loc 1 3176 16 is_stmt 0 view .LVU1483 4572 0004 2368 ldr r3, [r4] 4573 0006 5A69 ldr r2, [r3, #20] 4574 .LVL398: 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4575 .loc 1 3177 3 is_stmt 1 view .LVU1484 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4576 .loc 1 3177 13 is_stmt 0 view .LVU1485 4577 0008 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4578 000c DBB2 uxtb r3, r3 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4579 .loc 1 3177 6 view .LVU1486 4580 000e 212B cmp r3, #33 4581 0010 10D0 beq .L247 4582 .LVL399: 4583 .L244: 3184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxState == HAL_UART_STATE_BUSY_RX) && dmarequest) 4584 .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) 4585 .loc 1 3184 16 is_stmt 0 view .LVU1488 4586 0012 2368 ldr r3, [r4] 4587 0014 5A69 ldr r2, [r3, #20] 4588 0016 02F04002 and r2, r2, #64 4589 .LVL400: 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4590 .loc 1 3185 3 is_stmt 1 view .LVU1489 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4591 .loc 1 3185 13 is_stmt 0 view .LVU1490 4592 001a 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 4593 001e DBB2 uxtb r3, r3 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4594 .loc 1 3185 6 view .LVU1491 4595 0020 222B cmp r3, #34 4596 0022 11D0 beq .L248 4597 .LVL401: 4598 .L245: 3191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4599 .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) ARM GAS /tmp/cc4vHZRy.s page 180 4600 .loc 1 3191 20 is_stmt 0 view .LVU1493 4601 0024 636C ldr r3, [r4, #68] 4602 0026 43F01003 orr r3, r3, #16 4603 002a 6364 str r3, [r4, #68] 3197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4604 .loc 1 3197 3 is_stmt 1 view .LVU1494 4605 002c 2046 mov r0, r4 4606 002e FFF7FEFF bl HAL_UART_ErrorCallback 4607 .LVL402: 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4608 .loc 1 3199 1 is_stmt 0 view .LVU1495 4609 0032 10BD pop {r4, pc} 4610 .LVL403: 4611 .L247: 3199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4612 .loc 1 3199 1 view .LVU1496 4613 0034 02F08002 and r2, r2, #128 4614 .LVL404: 3177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4615 .loc 1 3177 49 discriminator 1 view .LVU1497 4616 0038 002A cmp r2, #0 4617 003a EAD0 beq .L244 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 4618 .loc 1 3179 5 is_stmt 1 view .LVU1498 3179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndTxTransfer(huart); 4619 .loc 1 3179 24 is_stmt 0 view .LVU1499 4620 003c 0023 movs r3, #0 4621 003e E384 strh r3, [r4, #38] @ movhi 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4622 .loc 1 3180 5 is_stmt 1 view .LVU1500 4623 0040 2046 mov r0, r4 4624 .LVL405: 3180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4625 .loc 1 3180 5 is_stmt 0 view .LVU1501 4626 0042 FFF7FEFF bl UART_EndTxTransfer 4627 .LVL406: 4628 0046 E4E7 b .L244 4629 .LVL407: 4630 .L248: 3185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4631 .loc 1 3185 50 discriminator 1 view .LVU1502 4632 0048 002A cmp r2, #0 4633 004a EBD0 beq .L245 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 4634 .loc 1 3187 5 is_stmt 1 view .LVU1503 3187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_EndRxTransfer(huart); 4635 .loc 1 3187 24 is_stmt 0 view .LVU1504 4636 004c 0023 movs r3, #0 4637 004e E385 strh r3, [r4, #46] @ movhi 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4638 .loc 1 3188 5 is_stmt 1 view .LVU1505 4639 0050 2046 mov r0, r4 4640 0052 FFF7FEFF bl UART_EndRxTransfer 4641 .LVL408: 3188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4642 .loc 1 3188 5 is_stmt 0 view .LVU1506 4643 0056 E5E7 b .L245 ARM GAS /tmp/cc4vHZRy.s page 181 4644 .cfi_endproc 4645 .LFE181: 4647 .section .text.UART_DMAAbortOnError,"ax",%progbits 4648 .align 1 4649 .syntax unified 4650 .thumb 4651 .thumb_func 4653 UART_DMAAbortOnError: 4654 .LVL409: 4655 .LFB187: 3395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 4656 .loc 1 3395 1 is_stmt 1 view -0 4657 .cfi_startproc 4658 @ args = 0, pretend = 0, frame = 0 4659 @ 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; 4660 .loc 1 3395 1 is_stmt 0 view .LVU1508 4661 0000 08B5 push {r3, lr} 4662 .LCFI38: 4663 .cfi_def_cfa_offset 8 4664 .cfi_offset 3, -8 4665 .cfi_offset 14, -4 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4666 .loc 1 3396 3 is_stmt 1 view .LVU1509 3396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 4667 .loc 1 3396 23 is_stmt 0 view .LVU1510 4668 0002 806B ldr r0, [r0, #56] 4669 .LVL410: 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4670 .loc 1 3397 3 is_stmt 1 view .LVU1511 3397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4671 .loc 1 3397 22 is_stmt 0 view .LVU1512 4672 0004 0023 movs r3, #0 4673 0006 C385 strh r3, [r0, #46] @ movhi 3404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 4674 .loc 1 3404 3 is_stmt 1 view .LVU1513 4675 0008 FFF7FEFF bl HAL_UART_ErrorCallback 4676 .LVL411: 3406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4677 .loc 1 3406 1 is_stmt 0 view .LVU1514 4678 000c 08BD pop {r3, pc} 4679 .cfi_endproc 4680 .LFE187: 4682 .section .text.HAL_UART_AbortCpltCallback,"ax",%progbits 4683 .align 1 4684 .weak HAL_UART_AbortCpltCallback 4685 .syntax unified 4686 .thumb 4687 .thumb_func 4689 HAL_UART_AbortCpltCallback: 4690 .LVL412: 4691 .LFB166: 2694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 4692 .loc 1 2694 1 is_stmt 1 view -0 4693 .cfi_startproc 4694 @ args = 0, pretend = 0, frame = 0 4695 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc4vHZRy.s page 182 4696 @ link register save eliminated. 2696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4697 .loc 1 2696 3 view .LVU1516 2701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4698 .loc 1 2701 1 is_stmt 0 view .LVU1517 4699 0000 7047 bx lr 4700 .cfi_endproc 4701 .LFE166: 4703 .section .text.HAL_UART_Abort_IT,"ax",%progbits 4704 .align 1 4705 .global HAL_UART_Abort_IT 4706 .syntax unified 4707 .thumb 4708 .thumb_func 4710 HAL_UART_Abort_IT: 4711 .LVL413: 4712 .LFB157: 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 4713 .loc 1 2066 1 is_stmt 1 view -0 4714 .cfi_startproc 4715 @ args = 0, pretend = 0, frame = 0 4716 @ frame_needed = 0, uses_anonymous_args = 0 2066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t AbortCplt = 0x01U; 4717 .loc 1 2066 1 is_stmt 0 view .LVU1519 4718 0000 38B5 push {r3, r4, r5, lr} 4719 .LCFI39: 4720 .cfi_def_cfa_offset 16 4721 .cfi_offset 3, -16 4722 .cfi_offset 4, -12 4723 .cfi_offset 5, -8 4724 .cfi_offset 14, -4 4725 0002 0446 mov r4, r0 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4726 .loc 1 2067 3 is_stmt 1 view .LVU1520 4727 .LVL414: 4728 .L253: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4729 .loc 1 2070 3 discriminator 1 view .LVU1521 4730 .LBB453: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4731 .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); 4732 .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); 4733 .loc 1 2070 3 discriminator 1 view .LVU1524 4734 0004 2268 ldr r2, [r4] 4735 .LVL415: 4736 .LBB454: 4737 .LBI454: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4738 .loc 2 476 31 discriminator 1 view .LVU1525 4739 .LBB455: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4740 .loc 2 478 5 discriminator 1 view .LVU1526 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4741 .loc 2 480 4 discriminator 1 view .LVU1527 4742 0006 02F10C03 add r3, r2, #12 ARM GAS /tmp/cc4vHZRy.s page 183 4743 .LVL416: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4744 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1528 4745 .syntax unified 4746 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4747 000a 53E8003F ldrex r3, [r3] 4748 @ 0 "" 2 4749 .LVL417: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4750 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1529 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4751 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1530 4752 .thumb 4753 .syntax unified 4754 .LBE455: 4755 .LBE454: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4756 .loc 1 2070 3 discriminator 1 view .LVU1531 4757 000e 23F4F073 bic r3, r3, #480 4758 .LVL418: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4759 .loc 1 2070 3 is_stmt 1 discriminator 1 view .LVU1532 4760 .LBB456: 4761 .LBI456: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4762 .loc 2 527 31 discriminator 1 view .LVU1533 4763 .LBB457: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4764 .loc 2 529 4 discriminator 1 view .LVU1534 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4765 .loc 2 531 4 discriminator 1 view .LVU1535 4766 0012 0C32 adds r2, r2, #12 4767 .LVL419: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4768 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1536 4769 .syntax unified 4770 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4771 0014 42E80031 strex r1, r3, [r2] 4772 @ 0 "" 2 4773 .LVL420: 4774 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1537 4775 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1538 4776 .thumb 4777 .syntax unified 4778 .LBE457: 4779 .LBE456: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4780 .loc 1 2070 3 discriminator 1 view .LVU1539 4781 0018 0029 cmp r1, #0 4782 001a F3D1 bne .L253 4783 .LVL421: 4784 .L254: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4785 .loc 1 2070 3 discriminator 1 view .LVU1540 4786 .LBE453: 2070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 4787 .loc 1 2070 3 is_stmt 1 discriminator 1 view .LVU1541 ARM GAS /tmp/cc4vHZRy.s page 184 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4788 .loc 1 2071 3 discriminator 1 view .LVU1542 4789 .LBB458: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4790 .loc 1 2071 3 discriminator 1 view .LVU1543 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4791 .loc 1 2071 3 discriminator 1 view .LVU1544 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4792 .loc 1 2071 3 discriminator 1 view .LVU1545 4793 001c 2268 ldr r2, [r4] 4794 .LVL422: 4795 .LBB459: 4796 .LBI459: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4797 .loc 2 476 31 discriminator 1 view .LVU1546 4798 .LBB460: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4799 .loc 2 478 5 discriminator 1 view .LVU1547 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4800 .loc 2 480 4 discriminator 1 view .LVU1548 4801 001e 02F11403 add r3, r2, #20 4802 .LVL423: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4803 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1549 4804 .syntax unified 4805 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4806 0022 53E8003F ldrex r3, [r3] 4807 @ 0 "" 2 4808 .LVL424: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4809 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1550 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4810 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1551 4811 .thumb 4812 .syntax unified 4813 .LBE460: 4814 .LBE459: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4815 .loc 1 2071 3 discriminator 1 view .LVU1552 4816 0026 23F00103 bic r3, r3, #1 4817 .LVL425: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4818 .loc 1 2071 3 is_stmt 1 discriminator 1 view .LVU1553 4819 .LBB461: 4820 .LBI461: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4821 .loc 2 527 31 discriminator 1 view .LVU1554 4822 .LBB462: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4823 .loc 2 529 4 discriminator 1 view .LVU1555 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4824 .loc 2 531 4 discriminator 1 view .LVU1556 4825 002a 1432 adds r2, r2, #20 4826 .LVL426: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4827 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1557 4828 .syntax unified ARM GAS /tmp/cc4vHZRy.s page 185 4829 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4830 002c 42E80031 strex r1, r3, [r2] 4831 @ 0 "" 2 4832 .LVL427: 4833 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1558 4834 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1559 4835 .thumb 4836 .syntax unified 4837 .LBE462: 4838 .LBE461: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4839 .loc 1 2071 3 discriminator 1 view .LVU1560 4840 0030 0029 cmp r1, #0 4841 0032 F3D1 bne .L254 4842 .LBE458: 2071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4843 .loc 1 2071 3 is_stmt 1 discriminator 2 view .LVU1561 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4844 .loc 1 2074 3 discriminator 2 view .LVU1562 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4845 .loc 1 2074 12 is_stmt 0 discriminator 2 view .LVU1563 4846 0034 236B ldr r3, [r4, #48] 4847 .LVL428: 2074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4848 .loc 1 2074 6 discriminator 2 view .LVU1564 4849 0036 012B cmp r3, #1 4850 0038 2ED0 beq .L256 4851 .L255: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4852 .loc 1 2076 5 is_stmt 1 discriminator 2 view .LVU1565 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4853 .loc 1 2082 3 discriminator 2 view .LVU1566 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4854 .loc 1 2082 12 is_stmt 0 discriminator 2 view .LVU1567 4855 003a A36B ldr r3, [r4, #56] 2082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4856 .loc 1 2082 6 discriminator 2 view .LVU1568 4857 003c 33B1 cbz r3, .L257 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4858 .loc 1 2086 5 is_stmt 1 view .LVU1569 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4859 .loc 1 2086 9 is_stmt 0 view .LVU1570 4860 003e 2268 ldr r2, [r4] 4861 0040 5269 ldr r2, [r2, #20] 2086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4862 .loc 1 2086 8 view .LVU1571 4863 0042 12F0800F tst r2, #128 4864 0046 34D0 beq .L258 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4865 .loc 1 2088 7 is_stmt 1 view .LVU1572 2088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4866 .loc 1 2088 40 is_stmt 0 view .LVU1573 4867 0048 344A ldr r2, .L270 4868 004a 1A65 str r2, [r3, #80] 4869 .L257: 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4870 .loc 1 2096 3 is_stmt 1 view .LVU1574 ARM GAS /tmp/cc4vHZRy.s page 186 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4871 .loc 1 2096 12 is_stmt 0 view .LVU1575 4872 004c E36B ldr r3, [r4, #60] 2096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4873 .loc 1 2096 6 view .LVU1576 4874 004e 33B1 cbz r3, .L259 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4875 .loc 1 2100 5 is_stmt 1 view .LVU1577 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4876 .loc 1 2100 9 is_stmt 0 view .LVU1578 4877 0050 2268 ldr r2, [r4] 4878 0052 5269 ldr r2, [r2, #20] 2100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4879 .loc 1 2100 8 view .LVU1579 4880 0054 12F0400F tst r2, #64 4881 0058 2ED0 beq .L260 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4882 .loc 1 2102 7 is_stmt 1 view .LVU1580 2102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4883 .loc 1 2102 40 is_stmt 0 view .LVU1581 4884 005a 314A ldr r2, .L270+4 4885 005c 1A65 str r2, [r3, #80] 4886 .L259: 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4887 .loc 1 2111 3 is_stmt 1 view .LVU1582 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4888 .loc 1 2111 7 is_stmt 0 view .LVU1583 4889 005e 2368 ldr r3, [r4] 4890 0060 5B69 ldr r3, [r3, #20] 2111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4891 .loc 1 2111 6 view .LVU1584 4892 0062 13F0800F tst r3, #128 4893 0066 2AD0 beq .L267 4894 .L262: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4895 .loc 1 2114 5 is_stmt 1 discriminator 1 view .LVU1585 4896 .LBB463: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4897 .loc 1 2114 5 discriminator 1 view .LVU1586 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4898 .loc 1 2114 5 discriminator 1 view .LVU1587 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4899 .loc 1 2114 5 discriminator 1 view .LVU1588 4900 0068 2168 ldr r1, [r4] 4901 .LVL429: 4902 .LBB464: 4903 .LBI464: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4904 .loc 2 476 31 discriminator 1 view .LVU1589 4905 .LBB465: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4906 .loc 2 478 5 discriminator 1 view .LVU1590 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4907 .loc 2 480 4 discriminator 1 view .LVU1591 4908 006a 01F11403 add r3, r1, #20 4909 .LVL430: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 187 4910 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1592 4911 .syntax unified 4912 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4913 006e 53E8003F ldrex r3, [r3] 4914 @ 0 "" 2 4915 .LVL431: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4916 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1593 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4917 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1594 4918 .thumb 4919 .syntax unified 4920 .LBE465: 4921 .LBE464: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4922 .loc 1 2114 5 discriminator 1 view .LVU1595 4923 0072 23F08003 bic r3, r3, #128 4924 .LVL432: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4925 .loc 1 2114 5 is_stmt 1 discriminator 1 view .LVU1596 4926 .LBB466: 4927 .LBI466: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4928 .loc 2 527 31 discriminator 1 view .LVU1597 4929 .LBB467: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 4930 .loc 2 529 4 discriminator 1 view .LVU1598 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4931 .loc 2 531 4 discriminator 1 view .LVU1599 4932 0076 1431 adds r1, r1, #20 4933 .LVL433: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4934 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1600 4935 .syntax unified 4936 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4937 0078 41E80032 strex r2, r3, [r1] 4938 @ 0 "" 2 4939 .thumb 4940 .syntax unified 4941 007c 1546 mov r5, r2 4942 .LVL434: 4943 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1601 4944 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1602 4945 .LBE467: 4946 .LBE466: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4947 .loc 1 2114 5 discriminator 1 view .LVU1603 4948 007e 002A cmp r2, #0 4949 0080 F2D1 bne .L262 4950 .LBE463: 2114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4951 .loc 1 2114 5 is_stmt 1 discriminator 2 view .LVU1604 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4952 .loc 1 2117 5 discriminator 2 view .LVU1605 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4953 .loc 1 2117 14 is_stmt 0 discriminator 2 view .LVU1606 4954 0082 A06B ldr r0, [r4, #56] ARM GAS /tmp/cc4vHZRy.s page 188 4955 .LVL435: 2117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4956 .loc 1 2117 8 discriminator 2 view .LVU1607 4957 0084 0028 cmp r0, #0 4958 0086 42D0 beq .L268 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4959 .loc 1 2123 7 is_stmt 1 view .LVU1608 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4960 .loc 1 2123 11 is_stmt 0 view .LVU1609 4961 0088 FFF7FEFF bl HAL_DMA_Abort_IT 4962 .LVL436: 2123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 4963 .loc 1 2123 10 view .LVU1610 4964 008c C0B1 cbz r0, .L261 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4965 .loc 1 2125 9 is_stmt 1 view .LVU1611 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4966 .loc 1 2125 14 is_stmt 0 view .LVU1612 4967 008e A36B ldr r3, [r4, #56] 2125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4968 .loc 1 2125 42 view .LVU1613 4969 0090 0022 movs r2, #0 4970 0092 1A65 str r2, [r3, #80] 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 4971 .loc 1 2067 12 view .LVU1614 4972 0094 0125 movs r5, #1 4973 0096 13E0 b .L261 4974 .LVL437: 4975 .L256: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4976 .loc 1 2076 5 is_stmt 1 discriminator 1 view .LVU1615 4977 .LBB468: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4978 .loc 1 2076 5 discriminator 1 view .LVU1616 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4979 .loc 1 2076 5 discriminator 1 view .LVU1617 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 4980 .loc 1 2076 5 discriminator 1 view .LVU1618 4981 0098 2268 ldr r2, [r4] 4982 .LVL438: 4983 .LBB469: 4984 .LBI469: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 4985 .loc 2 476 31 discriminator 1 view .LVU1619 4986 .LBB470: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 4987 .loc 2 478 5 discriminator 1 view .LVU1620 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4988 .loc 2 480 4 discriminator 1 view .LVU1621 4989 009a 02F10C03 add r3, r2, #12 4990 .LVL439: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 4991 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1622 4992 .syntax unified 4993 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 4994 009e 53E8003F ldrex r3, [r3] 4995 @ 0 "" 2 ARM GAS /tmp/cc4vHZRy.s page 189 4996 .LVL440: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4997 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1623 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 4998 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1624 4999 .thumb 5000 .syntax unified 5001 .LBE470: 5002 .LBE469: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5003 .loc 1 2076 5 discriminator 1 view .LVU1625 5004 00a2 23F01003 bic r3, r3, #16 5005 .LVL441: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5006 .loc 1 2076 5 is_stmt 1 discriminator 1 view .LVU1626 5007 .LBB471: 5008 .LBI471: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5009 .loc 2 527 31 discriminator 1 view .LVU1627 5010 .LBB472: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5011 .loc 2 529 4 discriminator 1 view .LVU1628 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5012 .loc 2 531 4 discriminator 1 view .LVU1629 5013 00a6 0C32 adds r2, r2, #12 5014 .LVL442: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5015 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1630 5016 .syntax unified 5017 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5018 00a8 42E80031 strex r1, r3, [r2] 5019 @ 0 "" 2 5020 .LVL443: 5021 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1631 5022 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1632 5023 .thumb 5024 .syntax unified 5025 .LBE472: 5026 .LBE471: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5027 .loc 1 2076 5 discriminator 1 view .LVU1633 5028 00ac 0029 cmp r1, #0 5029 00ae F3D1 bne .L256 5030 00b0 C3E7 b .L255 5031 .LVL444: 5032 .L258: 2076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5033 .loc 1 2076 5 discriminator 1 view .LVU1634 5034 .LBE468: 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5035 .loc 1 2092 7 is_stmt 1 view .LVU1635 2092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5036 .loc 1 2092 40 is_stmt 0 view .LVU1636 5037 00b2 0022 movs r2, #0 5038 00b4 1A65 str r2, [r3, #80] 5039 00b6 C9E7 b .L257 5040 .L260: ARM GAS /tmp/cc4vHZRy.s page 190 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5041 .loc 1 2106 7 is_stmt 1 view .LVU1637 2106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5042 .loc 1 2106 40 is_stmt 0 view .LVU1638 5043 00b8 0022 movs r2, #0 5044 00ba 1A65 str r2, [r3, #80] 5045 00bc CFE7 b .L259 5046 .L267: 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5047 .loc 1 2067 12 view .LVU1639 5048 00be 0125 movs r5, #1 5049 .LVL445: 5050 .L261: 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5051 .loc 1 2135 3 is_stmt 1 view .LVU1640 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5052 .loc 1 2135 7 is_stmt 0 view .LVU1641 5053 00c0 2368 ldr r3, [r4] 5054 00c2 5B69 ldr r3, [r3, #20] 2135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5055 .loc 1 2135 6 view .LVU1642 5056 00c4 13F0400F tst r3, #64 5057 00c8 23D0 beq .L263 5058 .L264: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5059 .loc 1 2137 5 is_stmt 1 discriminator 1 view .LVU1643 5060 .LBB473: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5061 .loc 1 2137 5 discriminator 1 view .LVU1644 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5062 .loc 1 2137 5 discriminator 1 view .LVU1645 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5063 .loc 1 2137 5 discriminator 1 view .LVU1646 5064 00ca 2268 ldr r2, [r4] 5065 .LVL446: 5066 .LBB474: 5067 .LBI474: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5068 .loc 2 476 31 discriminator 1 view .LVU1647 5069 .LBB475: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5070 .loc 2 478 5 discriminator 1 view .LVU1648 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5071 .loc 2 480 4 discriminator 1 view .LVU1649 5072 00cc 02F11403 add r3, r2, #20 5073 .LVL447: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5074 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1650 5075 .syntax unified 5076 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5077 00d0 53E8003F ldrex r3, [r3] 5078 @ 0 "" 2 5079 .LVL448: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5080 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1651 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5081 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1652 ARM GAS /tmp/cc4vHZRy.s page 191 5082 .thumb 5083 .syntax unified 5084 .LBE475: 5085 .LBE474: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5086 .loc 1 2137 5 discriminator 1 view .LVU1653 5087 00d4 23F04003 bic r3, r3, #64 5088 .LVL449: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5089 .loc 1 2137 5 is_stmt 1 discriminator 1 view .LVU1654 5090 .LBB476: 5091 .LBI476: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5092 .loc 2 527 31 discriminator 1 view .LVU1655 5093 .LBB477: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5094 .loc 2 529 4 discriminator 1 view .LVU1656 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5095 .loc 2 531 4 discriminator 1 view .LVU1657 5096 00d8 1432 adds r2, r2, #20 5097 .LVL450: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5098 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1658 5099 .syntax unified 5100 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5101 00da 42E80031 strex r1, r3, [r2] 5102 @ 0 "" 2 5103 .LVL451: 5104 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1659 5105 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1660 5106 .thumb 5107 .syntax unified 5108 .LBE477: 5109 .LBE476: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5110 .loc 1 2137 5 discriminator 1 view .LVU1661 5111 00de 0029 cmp r1, #0 5112 00e0 F3D1 bne .L264 5113 .LBE473: 2137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5114 .loc 1 2137 5 is_stmt 1 discriminator 2 view .LVU1662 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5115 .loc 1 2140 5 discriminator 2 view .LVU1663 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5116 .loc 1 2140 14 is_stmt 0 discriminator 2 view .LVU1664 5117 00e2 E06B ldr r0, [r4, #60] 2140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5118 .loc 1 2140 8 discriminator 2 view .LVU1665 5119 00e4 A8B1 cbz r0, .L263 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5120 .loc 1 2146 7 is_stmt 1 view .LVU1666 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5121 .loc 1 2146 11 is_stmt 0 view .LVU1667 5122 00e6 FFF7FEFF bl HAL_DMA_Abort_IT 5123 .LVL452: 2146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5124 .loc 1 2146 10 view .LVU1668 ARM GAS /tmp/cc4vHZRy.s page 192 5125 00ea A0B1 cbz r0, .L265 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5126 .loc 1 2148 9 is_stmt 1 view .LVU1669 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5127 .loc 1 2148 14 is_stmt 0 view .LVU1670 5128 00ec E36B ldr r3, [r4, #60] 2148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** AbortCplt = 0x01U; 5129 .loc 1 2148 42 view .LVU1671 5130 00ee 0022 movs r2, #0 5131 00f0 1A65 str r2, [r3, #80] 2149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5132 .loc 1 2149 9 is_stmt 1 view .LVU1672 5133 .LVL453: 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5134 .loc 1 2159 3 view .LVU1673 5135 .L266: 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5136 .loc 1 2162 5 view .LVU1674 2162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5137 .loc 1 2162 24 is_stmt 0 view .LVU1675 5138 00f2 0023 movs r3, #0 5139 00f4 E384 strh r3, [r4, #38] @ movhi 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5140 .loc 1 2163 5 is_stmt 1 view .LVU1676 2163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5141 .loc 1 2163 24 is_stmt 0 view .LVU1677 5142 00f6 E385 strh r3, [r4, #46] @ movhi 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5143 .loc 1 2166 5 is_stmt 1 view .LVU1678 2166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5144 .loc 1 2166 22 is_stmt 0 view .LVU1679 5145 00f8 6364 str r3, [r4, #68] 2169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5146 .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; 5147 .loc 1 2169 20 is_stmt 0 view .LVU1681 5148 00fa 2022 movs r2, #32 5149 00fc 84F84120 strb r2, [r4, #65] 2170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5150 .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; 5151 .loc 1 2170 20 is_stmt 0 view .LVU1683 5152 0100 84F84220 strb r2, [r4, #66] 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5153 .loc 1 2171 5 is_stmt 1 view .LVU1684 2171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5154 .loc 1 2171 26 is_stmt 0 view .LVU1685 5155 0104 2363 str r3, [r4, #48] 2179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5156 .loc 1 2179 5 is_stmt 1 view .LVU1686 5157 0106 2046 mov r0, r4 5158 0108 FFF7FEFF bl HAL_UART_AbortCpltCallback 5159 .LVL454: 5160 010c 03E0 b .L265 5161 .LVL455: 5162 .L268: 2067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 193 5163 .loc 1 2067 12 is_stmt 0 view .LVU1687 5164 010e 0125 movs r5, #1 5165 0110 D6E7 b .L261 5166 .LVL456: 5167 .L263: 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5168 .loc 1 2159 3 is_stmt 1 view .LVU1688 2159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5169 .loc 1 2159 6 is_stmt 0 view .LVU1689 5170 0112 012D cmp r5, #1 5171 0114 EDD0 beq .L266 5172 .LVL457: 5173 .L265: 2183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5174 .loc 1 2183 3 is_stmt 1 view .LVU1690 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5175 .loc 1 2184 1 is_stmt 0 view .LVU1691 5176 0116 0020 movs r0, #0 5177 0118 38BD pop {r3, r4, r5, pc} 5178 .LVL458: 5179 .L271: 2184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5180 .loc 1 2184 1 view .LVU1692 5181 011a 00BF .align 2 5182 .L270: 5183 011c 00000000 .word UART_DMATxAbortCallback 5184 0120 00000000 .word UART_DMARxAbortCallback 5185 .cfi_endproc 5186 .LFE157: 5188 .section .text.UART_DMARxAbortCallback,"ax",%progbits 5189 .align 1 5190 .syntax unified 5191 .thumb 5192 .thumb_func 5194 UART_DMARxAbortCallback: 5195 .LVL459: 5196 .LFB189: 3464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5197 .loc 1 3464 1 is_stmt 1 view -0 5198 .cfi_startproc 5199 @ args = 0, pretend = 0, frame = 0 5200 @ 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; 5201 .loc 1 3464 1 is_stmt 0 view .LVU1694 5202 0000 08B5 push {r3, lr} 5203 .LCFI40: 5204 .cfi_def_cfa_offset 8 5205 .cfi_offset 3, -8 5206 .cfi_offset 14, -4 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5207 .loc 1 3465 3 is_stmt 1 view .LVU1695 3465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5208 .loc 1 3465 23 is_stmt 0 view .LVU1696 5209 0002 806B ldr r0, [r0, #56] 5210 .LVL460: 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5211 .loc 1 3467 3 is_stmt 1 view .LVU1697 ARM GAS /tmp/cc4vHZRy.s page 194 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5212 .loc 1 3467 8 is_stmt 0 view .LVU1698 5213 0004 C36B ldr r3, [r0, #60] 3467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5214 .loc 1 3467 36 view .LVU1699 5215 0006 0022 movs r2, #0 5216 0008 1A65 str r2, [r3, #80] 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5217 .loc 1 3470 3 is_stmt 1 view .LVU1700 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5218 .loc 1 3470 12 is_stmt 0 view .LVU1701 5219 000a 836B ldr r3, [r0, #56] 3470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5220 .loc 1 3470 6 view .LVU1702 5221 000c 0BB1 cbz r3, .L273 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5222 .loc 1 3472 5 is_stmt 1 view .LVU1703 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5223 .loc 1 3472 22 is_stmt 0 view .LVU1704 5224 000e 1B6D ldr r3, [r3, #80] 3472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5225 .loc 1 3472 8 view .LVU1705 5226 0010 5BB9 cbnz r3, .L272 5227 .L273: 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5228 .loc 1 3479 3 is_stmt 1 view .LVU1706 3479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5229 .loc 1 3479 22 is_stmt 0 view .LVU1707 5230 0012 0023 movs r3, #0 5231 0014 C384 strh r3, [r0, #38] @ movhi 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5232 .loc 1 3480 3 is_stmt 1 view .LVU1708 3480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5233 .loc 1 3480 22 is_stmt 0 view .LVU1709 5234 0016 C385 strh r3, [r0, #46] @ movhi 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5235 .loc 1 3483 3 is_stmt 1 view .LVU1710 3483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5236 .loc 1 3483 20 is_stmt 0 view .LVU1711 5237 0018 4364 str r3, [r0, #68] 3486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5238 .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; 5239 .loc 1 3486 18 is_stmt 0 view .LVU1713 5240 001a 2022 movs r2, #32 5241 001c 80F84120 strb r2, [r0, #65] 3487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5242 .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; 5243 .loc 1 3487 18 is_stmt 0 view .LVU1715 5244 0020 80F84220 strb r2, [r0, #66] 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5245 .loc 1 3488 3 is_stmt 1 view .LVU1716 3488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5246 .loc 1 3488 24 is_stmt 0 view .LVU1717 5247 0024 0363 str r3, [r0, #48] 3496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ ARM GAS /tmp/cc4vHZRy.s page 195 5248 .loc 1 3496 3 is_stmt 1 view .LVU1718 5249 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 5250 .LVL461: 5251 .L272: 3498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5252 .loc 1 3498 1 is_stmt 0 view .LVU1719 5253 002a 08BD pop {r3, pc} 5254 .cfi_endproc 5255 .LFE189: 5257 .section .text.UART_DMATxAbortCallback,"ax",%progbits 5258 .align 1 5259 .syntax unified 5260 .thumb 5261 .thumb_func 5263 UART_DMATxAbortCallback: 5264 .LVL462: 5265 .LFB188: 3418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5266 .loc 1 3418 1 is_stmt 1 view -0 5267 .cfi_startproc 5268 @ args = 0, pretend = 0, frame = 0 5269 @ 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; 5270 .loc 1 3418 1 is_stmt 0 view .LVU1721 5271 0000 08B5 push {r3, lr} 5272 .LCFI41: 5273 .cfi_def_cfa_offset 8 5274 .cfi_offset 3, -8 5275 .cfi_offset 14, -4 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5276 .loc 1 3419 3 is_stmt 1 view .LVU1722 3419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5277 .loc 1 3419 23 is_stmt 0 view .LVU1723 5278 0002 806B ldr r0, [r0, #56] 5279 .LVL463: 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5280 .loc 1 3421 3 is_stmt 1 view .LVU1724 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5281 .loc 1 3421 8 is_stmt 0 view .LVU1725 5282 0004 836B ldr r3, [r0, #56] 3421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5283 .loc 1 3421 36 view .LVU1726 5284 0006 0022 movs r2, #0 5285 0008 1A65 str r2, [r3, #80] 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5286 .loc 1 3424 3 is_stmt 1 view .LVU1727 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5287 .loc 1 3424 12 is_stmt 0 view .LVU1728 5288 000a C36B ldr r3, [r0, #60] 3424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5289 .loc 1 3424 6 view .LVU1729 5290 000c 0BB1 cbz r3, .L277 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5291 .loc 1 3426 5 is_stmt 1 view .LVU1730 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5292 .loc 1 3426 22 is_stmt 0 view .LVU1731 5293 000e 1B6D ldr r3, [r3, #80] ARM GAS /tmp/cc4vHZRy.s page 196 3426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5294 .loc 1 3426 8 view .LVU1732 5295 0010 5BB9 cbnz r3, .L276 5296 .L277: 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5297 .loc 1 3433 3 is_stmt 1 view .LVU1733 3433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = 0x00U; 5298 .loc 1 3433 22 is_stmt 0 view .LVU1734 5299 0012 0023 movs r3, #0 5300 0014 C384 strh r3, [r0, #38] @ movhi 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5301 .loc 1 3434 3 is_stmt 1 view .LVU1735 3434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5302 .loc 1 3434 22 is_stmt 0 view .LVU1736 5303 0016 C385 strh r3, [r0, #46] @ movhi 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5304 .loc 1 3437 3 is_stmt 1 view .LVU1737 3437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5305 .loc 1 3437 20 is_stmt 0 view .LVU1738 5306 0018 4364 str r3, [r0, #68] 3440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_READY; 5307 .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; 5308 .loc 1 3440 18 is_stmt 0 view .LVU1740 5309 001a 2022 movs r2, #32 5310 001c 80F84120 strb r2, [r0, #65] 3441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5311 .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; 5312 .loc 1 3441 18 is_stmt 0 view .LVU1742 5313 0020 80F84220 strb r2, [r0, #66] 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5314 .loc 1 3442 3 is_stmt 1 view .LVU1743 3442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5315 .loc 1 3442 24 is_stmt 0 view .LVU1744 5316 0024 0363 str r3, [r0, #48] 3450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5317 .loc 1 3450 3 is_stmt 1 view .LVU1745 5318 0026 FFF7FEFF bl HAL_UART_AbortCpltCallback 5319 .LVL464: 5320 .L276: 3452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5321 .loc 1 3452 1 is_stmt 0 view .LVU1746 5322 002a 08BD pop {r3, pc} 5323 .cfi_endproc 5324 .LFE188: 5326 .section .text.HAL_UART_AbortTransmitCpltCallback,"ax",%progbits 5327 .align 1 5328 .weak HAL_UART_AbortTransmitCpltCallback 5329 .syntax unified 5330 .thumb 5331 .thumb_func 5333 HAL_UART_AbortTransmitCpltCallback: 5334 .LVL465: 5335 .LFB167: 2709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 5336 .loc 1 2709 1 is_stmt 1 view -0 ARM GAS /tmp/cc4vHZRy.s page 197 5337 .cfi_startproc 5338 @ args = 0, pretend = 0, frame = 0 5339 @ frame_needed = 0, uses_anonymous_args = 0 5340 @ link register save eliminated. 2711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5341 .loc 1 2711 3 view .LVU1748 2716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5342 .loc 1 2716 1 is_stmt 0 view .LVU1749 5343 0000 7047 bx lr 5344 .cfi_endproc 5345 .LFE167: 5347 .section .text.HAL_UART_AbortTransmit_IT,"ax",%progbits 5348 .align 1 5349 .global HAL_UART_AbortTransmit_IT 5350 .syntax unified 5351 .thumb 5352 .thumb_func 5354 HAL_UART_AbortTransmit_IT: 5355 .LVL466: 5356 .LFB158: 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 5357 .loc 1 2201 1 is_stmt 1 view -0 5358 .cfi_startproc 5359 @ args = 0, pretend = 0, frame = 0 5360 @ frame_needed = 0, uses_anonymous_args = 0 2201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable TXEIE and TCIE interrupts */ 5361 .loc 1 2201 1 is_stmt 0 view .LVU1751 5362 0000 10B5 push {r4, lr} 5363 .LCFI42: 5364 .cfi_def_cfa_offset 8 5365 .cfi_offset 4, -8 5366 .cfi_offset 14, -4 5367 0002 0446 mov r4, r0 5368 .L282: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5369 .loc 1 2203 3 is_stmt 1 discriminator 1 view .LVU1752 5370 .LBB478: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5371 .loc 1 2203 3 discriminator 1 view .LVU1753 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5372 .loc 1 2203 3 discriminator 1 view .LVU1754 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5373 .loc 1 2203 3 discriminator 1 view .LVU1755 5374 0004 2268 ldr r2, [r4] 5375 .LVL467: 5376 .LBB479: 5377 .LBI479: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5378 .loc 2 476 31 discriminator 1 view .LVU1756 5379 .LBB480: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5380 .loc 2 478 5 discriminator 1 view .LVU1757 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5381 .loc 2 480 4 discriminator 1 view .LVU1758 5382 0006 02F10C03 add r3, r2, #12 5383 .LVL468: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 198 5384 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1759 5385 .syntax unified 5386 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5387 000a 53E8003F ldrex r3, [r3] 5388 @ 0 "" 2 5389 .LVL469: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5390 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1760 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5391 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1761 5392 .thumb 5393 .syntax unified 5394 .LBE480: 5395 .LBE479: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5396 .loc 1 2203 3 discriminator 1 view .LVU1762 5397 000e 23F0C003 bic r3, r3, #192 5398 .LVL470: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5399 .loc 1 2203 3 is_stmt 1 discriminator 1 view .LVU1763 5400 .LBB481: 5401 .LBI481: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5402 .loc 2 527 31 discriminator 1 view .LVU1764 5403 .LBB482: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5404 .loc 2 529 4 discriminator 1 view .LVU1765 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5405 .loc 2 531 4 discriminator 1 view .LVU1766 5406 0012 0C32 adds r2, r2, #12 5407 .LVL471: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5408 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1767 5409 .syntax unified 5410 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5411 0014 42E80031 strex r1, r3, [r2] 5412 @ 0 "" 2 5413 .LVL472: 5414 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1768 5415 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1769 5416 .thumb 5417 .syntax unified 5418 .LBE482: 5419 .LBE481: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5420 .loc 1 2203 3 discriminator 1 view .LVU1770 5421 0018 0029 cmp r1, #0 5422 001a F3D1 bne .L282 5423 .LBE478: 2203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5424 .loc 1 2203 3 is_stmt 1 discriminator 2 view .LVU1771 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5425 .loc 1 2206 3 discriminator 2 view .LVU1772 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5426 .loc 1 2206 7 is_stmt 0 discriminator 2 view .LVU1773 5427 001c 2368 ldr r3, [r4] 5428 .LVL473: ARM GAS /tmp/cc4vHZRy.s page 199 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5429 .loc 1 2206 7 discriminator 2 view .LVU1774 5430 001e 5B69 ldr r3, [r3, #20] 2206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5431 .loc 1 2206 6 discriminator 2 view .LVU1775 5432 0020 13F0800F tst r3, #128 5433 0024 20D0 beq .L283 5434 .L284: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5435 .loc 1 2208 5 is_stmt 1 discriminator 1 view .LVU1776 5436 .LBB483: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5437 .loc 1 2208 5 discriminator 1 view .LVU1777 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5438 .loc 1 2208 5 discriminator 1 view .LVU1778 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5439 .loc 1 2208 5 discriminator 1 view .LVU1779 5440 0026 2268 ldr r2, [r4] 5441 .LVL474: 5442 .LBB484: 5443 .LBI484: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5444 .loc 2 476 31 discriminator 1 view .LVU1780 5445 .LBB485: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5446 .loc 2 478 5 discriminator 1 view .LVU1781 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5447 .loc 2 480 4 discriminator 1 view .LVU1782 5448 0028 02F11403 add r3, r2, #20 5449 .LVL475: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5450 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1783 5451 .syntax unified 5452 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5453 002c 53E8003F ldrex r3, [r3] 5454 @ 0 "" 2 5455 .LVL476: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5456 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1784 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5457 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1785 5458 .thumb 5459 .syntax unified 5460 .LBE485: 5461 .LBE484: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5462 .loc 1 2208 5 discriminator 1 view .LVU1786 5463 0030 23F08003 bic r3, r3, #128 5464 .LVL477: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5465 .loc 1 2208 5 is_stmt 1 discriminator 1 view .LVU1787 5466 .LBB486: 5467 .LBI486: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5468 .loc 2 527 31 discriminator 1 view .LVU1788 5469 .LBB487: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc4vHZRy.s page 200 5470 .loc 2 529 4 discriminator 1 view .LVU1789 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5471 .loc 2 531 4 discriminator 1 view .LVU1790 5472 0034 1432 adds r2, r2, #20 5473 .LVL478: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5474 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1791 5475 .syntax unified 5476 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5477 0036 42E80031 strex r1, r3, [r2] 5478 @ 0 "" 2 5479 .LVL479: 5480 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1792 5481 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1793 5482 .thumb 5483 .syntax unified 5484 .LBE487: 5485 .LBE486: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5486 .loc 1 2208 5 discriminator 1 view .LVU1794 5487 003a 0029 cmp r1, #0 5488 003c F3D1 bne .L284 5489 .LBE483: 2208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5490 .loc 1 2208 5 is_stmt 1 discriminator 2 view .LVU1795 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5491 .loc 1 2211 5 discriminator 2 view .LVU1796 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5492 .loc 1 2211 14 is_stmt 0 discriminator 2 view .LVU1797 5493 003e A36B ldr r3, [r4, #56] 5494 .LVL480: 2211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5495 .loc 1 2211 8 discriminator 2 view .LVU1798 5496 0040 4BB1 cbz r3, .L285 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5497 .loc 1 2215 7 is_stmt 1 view .LVU1799 2215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5498 .loc 1 2215 40 is_stmt 0 view .LVU1800 5499 0042 0E4A ldr r2, .L288 5500 0044 1A65 str r2, [r3, #80] 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5501 .loc 1 2218 7 is_stmt 1 view .LVU1801 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5502 .loc 1 2218 11 is_stmt 0 view .LVU1802 5503 0046 A06B ldr r0, [r4, #56] 5504 .LVL481: 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5505 .loc 1 2218 11 view .LVU1803 5506 0048 FFF7FEFF bl HAL_DMA_Abort_IT 5507 .LVL482: 2218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5508 .loc 1 2218 10 view .LVU1804 5509 004c A0B1 cbz r0, .L286 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5510 .loc 1 2221 9 is_stmt 1 view .LVU1805 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5511 .loc 1 2221 14 is_stmt 0 view .LVU1806 ARM GAS /tmp/cc4vHZRy.s page 201 5512 004e A06B ldr r0, [r4, #56] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5513 .loc 1 2221 22 view .LVU1807 5514 0050 036D ldr r3, [r0, #80] 2221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5515 .loc 1 2221 9 view .LVU1808 5516 0052 9847 blx r3 5517 .LVL483: 5518 0054 10E0 b .L286 5519 .LVL484: 5520 .L285: 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5521 .loc 1 2227 7 is_stmt 1 view .LVU1809 2227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5522 .loc 1 2227 26 is_stmt 0 view .LVU1810 5523 0056 0023 movs r3, #0 5524 0058 E384 strh r3, [r4, #38] @ movhi 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5525 .loc 1 2230 7 is_stmt 1 view .LVU1811 2230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5526 .loc 1 2230 21 is_stmt 0 view .LVU1812 5527 005a 2023 movs r3, #32 5528 005c 84F84130 strb r3, [r4, #65] 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5529 .loc 1 2238 7 is_stmt 1 view .LVU1813 5530 0060 2046 mov r0, r4 5531 .LVL485: 2238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5532 .loc 1 2238 7 is_stmt 0 view .LVU1814 5533 0062 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5534 .LVL486: 5535 0066 07E0 b .L286 5536 .LVL487: 5537 .L283: 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5538 .loc 1 2245 5 is_stmt 1 view .LVU1815 2245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5539 .loc 1 2245 24 is_stmt 0 view .LVU1816 5540 0068 0023 movs r3, #0 5541 006a E384 strh r3, [r4, #38] @ movhi 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5542 .loc 1 2248 5 is_stmt 1 view .LVU1817 2248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5543 .loc 1 2248 19 is_stmt 0 view .LVU1818 5544 006c 2023 movs r3, #32 5545 006e 84F84130 strb r3, [r4, #65] 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5546 .loc 1 2256 5 is_stmt 1 view .LVU1819 5547 0072 2046 mov r0, r4 5548 .LVL488: 2256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5549 .loc 1 2256 5 is_stmt 0 view .LVU1820 5550 0074 FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5551 .LVL489: 5552 .L286: 2260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5553 .loc 1 2260 3 is_stmt 1 view .LVU1821 ARM GAS /tmp/cc4vHZRy.s page 202 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5554 .loc 1 2261 1 is_stmt 0 view .LVU1822 5555 0078 0020 movs r0, #0 5556 007a 10BD pop {r4, pc} 5557 .LVL490: 5558 .L289: 2261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5559 .loc 1 2261 1 view .LVU1823 5560 .align 2 5561 .L288: 5562 007c 00000000 .word UART_DMATxOnlyAbortCallback 5563 .cfi_endproc 5564 .LFE158: 5566 .section .text.UART_DMATxOnlyAbortCallback,"ax",%progbits 5567 .align 1 5568 .syntax unified 5569 .thumb 5570 .thumb_func 5572 UART_DMATxOnlyAbortCallback: 5573 .LVL491: 5574 .LFB190: 3510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5575 .loc 1 3510 1 is_stmt 1 view -0 5576 .cfi_startproc 5577 @ args = 0, pretend = 0, frame = 0 5578 @ 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; 5579 .loc 1 3510 1 is_stmt 0 view .LVU1825 5580 0000 08B5 push {r3, lr} 5581 .LCFI43: 5582 .cfi_def_cfa_offset 8 5583 .cfi_offset 3, -8 5584 .cfi_offset 14, -4 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5585 .loc 1 3511 3 is_stmt 1 view .LVU1826 3511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5586 .loc 1 3511 23 is_stmt 0 view .LVU1827 5587 0002 806B ldr r0, [r0, #56] 5588 .LVL492: 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5589 .loc 1 3513 3 is_stmt 1 view .LVU1828 3513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5590 .loc 1 3513 22 is_stmt 0 view .LVU1829 5591 0004 0023 movs r3, #0 5592 0006 C384 strh r3, [r0, #38] @ movhi 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5593 .loc 1 3516 3 is_stmt 1 view .LVU1830 3516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5594 .loc 1 3516 17 is_stmt 0 view .LVU1831 5595 0008 2023 movs r3, #32 5596 000a 80F84130 strb r3, [r0, #65] 3524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5597 .loc 1 3524 3 is_stmt 1 view .LVU1832 5598 000e FFF7FEFF bl HAL_UART_AbortTransmitCpltCallback 5599 .LVL493: 3526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5600 .loc 1 3526 1 is_stmt 0 view .LVU1833 ARM GAS /tmp/cc4vHZRy.s page 203 5601 0012 08BD pop {r3, pc} 5602 .cfi_endproc 5603 .LFE190: 5605 .section .text.HAL_UART_AbortReceiveCpltCallback,"ax",%progbits 5606 .align 1 5607 .weak HAL_UART_AbortReceiveCpltCallback 5608 .syntax unified 5609 .thumb 5610 .thumb_func 5612 HAL_UART_AbortReceiveCpltCallback: 5613 .LVL494: 5614 .LFB168: 2724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 5615 .loc 1 2724 1 is_stmt 1 view -0 5616 .cfi_startproc 5617 @ args = 0, pretend = 0, frame = 0 5618 @ frame_needed = 0, uses_anonymous_args = 0 5619 @ link register save eliminated. 2726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5620 .loc 1 2726 3 view .LVU1835 2731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5621 .loc 1 2731 1 is_stmt 0 view .LVU1836 5622 0000 7047 bx lr 5623 .cfi_endproc 5624 .LFE168: 5626 .section .text.HAL_UART_AbortReceive_IT,"ax",%progbits 5627 .align 1 5628 .global HAL_UART_AbortReceive_IT 5629 .syntax unified 5630 .thumb 5631 .thumb_func 5633 HAL_UART_AbortReceive_IT: 5634 .LVL495: 5635 .LFB159: 2278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ 5636 .loc 1 2278 1 is_stmt 1 view -0 5637 .cfi_startproc 5638 @ args = 0, pretend = 0, frame = 0 5639 @ 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 */ 5640 .loc 1 2278 1 is_stmt 0 view .LVU1838 5641 0000 10B5 push {r4, lr} 5642 .LCFI44: 5643 .cfi_def_cfa_offset 8 5644 .cfi_offset 4, -8 5645 .cfi_offset 14, -4 5646 0002 0446 mov r4, r0 5647 .L294: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5648 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1839 5649 .LBB488: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5650 .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); 5651 .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); 5652 .loc 1 2280 3 discriminator 1 view .LVU1842 ARM GAS /tmp/cc4vHZRy.s page 204 5653 0004 2268 ldr r2, [r4] 5654 .LVL496: 5655 .LBB489: 5656 .LBI489: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5657 .loc 2 476 31 discriminator 1 view .LVU1843 5658 .LBB490: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5659 .loc 2 478 5 discriminator 1 view .LVU1844 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5660 .loc 2 480 4 discriminator 1 view .LVU1845 5661 0006 02F10C03 add r3, r2, #12 5662 .LVL497: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5663 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1846 5664 .syntax unified 5665 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5666 000a 53E8003F ldrex r3, [r3] 5667 @ 0 "" 2 5668 .LVL498: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5669 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1847 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5670 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1848 5671 .thumb 5672 .syntax unified 5673 .LBE490: 5674 .LBE489: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5675 .loc 1 2280 3 discriminator 1 view .LVU1849 5676 000e 23F49073 bic r3, r3, #288 5677 .LVL499: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5678 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1850 5679 .LBB491: 5680 .LBI491: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5681 .loc 2 527 31 discriminator 1 view .LVU1851 5682 .LBB492: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5683 .loc 2 529 4 discriminator 1 view .LVU1852 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5684 .loc 2 531 4 discriminator 1 view .LVU1853 5685 0012 0C32 adds r2, r2, #12 5686 .LVL500: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5687 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1854 5688 .syntax unified 5689 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5690 0014 42E80031 strex r1, r3, [r2] 5691 @ 0 "" 2 5692 .LVL501: 5693 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1855 5694 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1856 5695 .thumb 5696 .syntax unified 5697 .LBE492: ARM GAS /tmp/cc4vHZRy.s page 205 5698 .LBE491: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5699 .loc 1 2280 3 discriminator 1 view .LVU1857 5700 0018 0029 cmp r1, #0 5701 001a F3D1 bne .L294 5702 .LVL502: 5703 .L295: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5704 .loc 1 2280 3 discriminator 1 view .LVU1858 5705 .LBE488: 2280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 5706 .loc 1 2280 3 is_stmt 1 discriminator 1 view .LVU1859 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5707 .loc 1 2281 3 discriminator 1 view .LVU1860 5708 .LBB493: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5709 .loc 1 2281 3 discriminator 1 view .LVU1861 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5710 .loc 1 2281 3 discriminator 1 view .LVU1862 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5711 .loc 1 2281 3 discriminator 1 view .LVU1863 5712 001c 2268 ldr r2, [r4] 5713 .LVL503: 5714 .LBB494: 5715 .LBI494: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5716 .loc 2 476 31 discriminator 1 view .LVU1864 5717 .LBB495: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5718 .loc 2 478 5 discriminator 1 view .LVU1865 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5719 .loc 2 480 4 discriminator 1 view .LVU1866 5720 001e 02F11403 add r3, r2, #20 5721 .LVL504: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5722 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1867 5723 .syntax unified 5724 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5725 0022 53E8003F ldrex r3, [r3] 5726 @ 0 "" 2 5727 .LVL505: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5728 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1868 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5729 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1869 5730 .thumb 5731 .syntax unified 5732 .LBE495: 5733 .LBE494: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5734 .loc 1 2281 3 discriminator 1 view .LVU1870 5735 0026 23F00103 bic r3, r3, #1 5736 .LVL506: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5737 .loc 1 2281 3 is_stmt 1 discriminator 1 view .LVU1871 5738 .LBB496: 5739 .LBI496: ARM GAS /tmp/cc4vHZRy.s page 206 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5740 .loc 2 527 31 discriminator 1 view .LVU1872 5741 .LBB497: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5742 .loc 2 529 4 discriminator 1 view .LVU1873 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5743 .loc 2 531 4 discriminator 1 view .LVU1874 5744 002a 1432 adds r2, r2, #20 5745 .LVL507: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5746 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1875 5747 .syntax unified 5748 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5749 002c 42E80031 strex r1, r3, [r2] 5750 @ 0 "" 2 5751 .LVL508: 5752 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1876 5753 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1877 5754 .thumb 5755 .syntax unified 5756 .LBE497: 5757 .LBE496: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5758 .loc 1 2281 3 discriminator 1 view .LVU1878 5759 0030 0029 cmp r1, #0 5760 0032 F3D1 bne .L295 5761 .LBE493: 2281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5762 .loc 1 2281 3 is_stmt 1 discriminator 2 view .LVU1879 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5763 .loc 1 2284 3 discriminator 2 view .LVU1880 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5764 .loc 1 2284 12 is_stmt 0 discriminator 2 view .LVU1881 5765 0034 236B ldr r3, [r4, #48] 5766 .LVL509: 2284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5767 .loc 1 2284 6 discriminator 2 view .LVU1882 5768 0036 012B cmp r3, #1 5769 0038 1CD0 beq .L297 5770 .L296: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5771 .loc 1 2286 5 is_stmt 1 discriminator 2 view .LVU1883 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5772 .loc 1 2290 3 discriminator 2 view .LVU1884 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5773 .loc 1 2290 7 is_stmt 0 discriminator 2 view .LVU1885 5774 003a 2368 ldr r3, [r4] 5775 003c 5B69 ldr r3, [r3, #20] 2290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5776 .loc 1 2290 6 discriminator 2 view .LVU1886 5777 003e 13F0400F tst r3, #64 5778 0042 2ED0 beq .L298 5779 .L299: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5780 .loc 1 2292 5 is_stmt 1 discriminator 1 view .LVU1887 5781 .LBB498: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 207 5782 .loc 1 2292 5 discriminator 1 view .LVU1888 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5783 .loc 1 2292 5 discriminator 1 view .LVU1889 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5784 .loc 1 2292 5 discriminator 1 view .LVU1890 5785 0044 2268 ldr r2, [r4] 5786 .LVL510: 5787 .LBB499: 5788 .LBI499: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5789 .loc 2 476 31 discriminator 1 view .LVU1891 5790 .LBB500: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5791 .loc 2 478 5 discriminator 1 view .LVU1892 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5792 .loc 2 480 4 discriminator 1 view .LVU1893 5793 0046 02F11403 add r3, r2, #20 5794 .LVL511: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5795 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1894 5796 .syntax unified 5797 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5798 004a 53E8003F ldrex r3, [r3] 5799 @ 0 "" 2 5800 .LVL512: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5801 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1895 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5802 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1896 5803 .thumb 5804 .syntax unified 5805 .LBE500: 5806 .LBE499: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5807 .loc 1 2292 5 discriminator 1 view .LVU1897 5808 004e 23F04003 bic r3, r3, #64 5809 .LVL513: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5810 .loc 1 2292 5 is_stmt 1 discriminator 1 view .LVU1898 5811 .LBB501: 5812 .LBI501: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5813 .loc 2 527 31 discriminator 1 view .LVU1899 5814 .LBB502: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5815 .loc 2 529 4 discriminator 1 view .LVU1900 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5816 .loc 2 531 4 discriminator 1 view .LVU1901 5817 0052 1432 adds r2, r2, #20 5818 .LVL514: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5819 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1902 5820 .syntax unified 5821 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5822 0054 42E80031 strex r1, r3, [r2] 5823 @ 0 "" 2 5824 .LVL515: ARM GAS /tmp/cc4vHZRy.s page 208 5825 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1903 5826 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1904 5827 .thumb 5828 .syntax unified 5829 .LBE502: 5830 .LBE501: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5831 .loc 1 2292 5 discriminator 1 view .LVU1905 5832 0058 0029 cmp r1, #0 5833 005a F3D1 bne .L299 5834 .LBE498: 2292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5835 .loc 1 2292 5 is_stmt 1 discriminator 2 view .LVU1906 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5836 .loc 1 2295 5 discriminator 2 view .LVU1907 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5837 .loc 1 2295 14 is_stmt 0 discriminator 2 view .LVU1908 5838 005c E36B ldr r3, [r4, #60] 5839 .LVL516: 2295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5840 .loc 1 2295 8 discriminator 2 view .LVU1909 5841 005e B3B1 cbz r3, .L300 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5842 .loc 1 2299 7 is_stmt 1 view .LVU1910 2299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5843 .loc 1 2299 40 is_stmt 0 view .LVU1911 5844 0060 154A ldr r2, .L303 5845 0062 1A65 str r2, [r3, #80] 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5846 .loc 1 2302 7 is_stmt 1 view .LVU1912 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5847 .loc 1 2302 11 is_stmt 0 view .LVU1913 5848 0064 E06B ldr r0, [r4, #60] 5849 .LVL517: 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5850 .loc 1 2302 11 view .LVU1914 5851 0066 FFF7FEFF bl HAL_DMA_Abort_IT 5852 .LVL518: 2302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 5853 .loc 1 2302 10 view .LVU1915 5854 006a 18B3 cbz r0, .L301 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5855 .loc 1 2305 9 is_stmt 1 view .LVU1916 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5856 .loc 1 2305 14 is_stmt 0 view .LVU1917 5857 006c E06B ldr r0, [r4, #60] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5858 .loc 1 2305 22 view .LVU1918 5859 006e 036D ldr r3, [r0, #80] 2305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5860 .loc 1 2305 9 view .LVU1919 5861 0070 9847 blx r3 5862 .LVL519: 5863 0072 1FE0 b .L301 5864 .LVL520: 5865 .L297: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 209 5866 .loc 1 2286 5 is_stmt 1 discriminator 1 view .LVU1920 5867 .LBB503: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5868 .loc 1 2286 5 discriminator 1 view .LVU1921 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5869 .loc 1 2286 5 discriminator 1 view .LVU1922 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5870 .loc 1 2286 5 discriminator 1 view .LVU1923 5871 0074 2268 ldr r2, [r4] 5872 .LVL521: 5873 .LBB504: 5874 .LBI504: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5875 .loc 2 476 31 discriminator 1 view .LVU1924 5876 .LBB505: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 5877 .loc 2 478 5 discriminator 1 view .LVU1925 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5878 .loc 2 480 4 discriminator 1 view .LVU1926 5879 0076 02F10C03 add r3, r2, #12 5880 .LVL522: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5881 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU1927 5882 .syntax unified 5883 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 5884 007a 53E8003F ldrex r3, [r3] 5885 @ 0 "" 2 5886 .LVL523: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5887 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU1928 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 5888 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU1929 5889 .thumb 5890 .syntax unified 5891 .LBE505: 5892 .LBE504: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5893 .loc 1 2286 5 discriminator 1 view .LVU1930 5894 007e 23F01003 bic r3, r3, #16 5895 .LVL524: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5896 .loc 1 2286 5 is_stmt 1 discriminator 1 view .LVU1931 5897 .LBB506: 5898 .LBI506: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 5899 .loc 2 527 31 discriminator 1 view .LVU1932 5900 .LBB507: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 5901 .loc 2 529 4 discriminator 1 view .LVU1933 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5902 .loc 2 531 4 discriminator 1 view .LVU1934 5903 0082 0C32 adds r2, r2, #12 5904 .LVL525: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 5905 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU1935 5906 .syntax unified 5907 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 ARM GAS /tmp/cc4vHZRy.s page 210 5908 0084 42E80031 strex r1, r3, [r2] 5909 @ 0 "" 2 5910 .LVL526: 5911 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU1936 5912 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU1937 5913 .thumb 5914 .syntax unified 5915 .LBE507: 5916 .LBE506: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5917 .loc 1 2286 5 discriminator 1 view .LVU1938 5918 0088 0029 cmp r1, #0 5919 008a F3D1 bne .L297 5920 008c D5E7 b .L296 5921 .LVL527: 5922 .L300: 2286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5923 .loc 1 2286 5 discriminator 1 view .LVU1939 5924 .LBE503: 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5925 .loc 1 2311 7 is_stmt 1 view .LVU1940 2311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5926 .loc 1 2311 26 is_stmt 0 view .LVU1941 5927 008e 0023 movs r3, #0 5928 0090 E385 strh r3, [r4, #46] @ movhi 2314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5929 .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; 5930 .loc 1 2314 22 is_stmt 0 view .LVU1943 5931 0092 2022 movs r2, #32 5932 0094 84F84220 strb r2, [r4, #66] 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5933 .loc 1 2315 7 is_stmt 1 view .LVU1944 2315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5934 .loc 1 2315 28 is_stmt 0 view .LVU1945 5935 0098 2363 str r3, [r4, #48] 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5936 .loc 1 2323 7 is_stmt 1 view .LVU1946 5937 009a 2046 mov r0, r4 5938 .LVL528: 2323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5939 .loc 1 2323 7 is_stmt 0 view .LVU1947 5940 009c FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 5941 .LVL529: 5942 00a0 08E0 b .L301 5943 .LVL530: 5944 .L298: 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5945 .loc 1 2330 5 is_stmt 1 view .LVU1948 2330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5946 .loc 1 2330 24 is_stmt 0 view .LVU1949 5947 00a2 0023 movs r3, #0 5948 00a4 E385 strh r3, [r4, #46] @ movhi 2333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 5949 .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; 5950 .loc 1 2333 20 is_stmt 0 view .LVU1951 ARM GAS /tmp/cc4vHZRy.s page 211 5951 00a6 2022 movs r2, #32 5952 00a8 84F84220 strb r2, [r4, #66] 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5953 .loc 1 2334 5 is_stmt 1 view .LVU1952 2334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5954 .loc 1 2334 26 is_stmt 0 view .LVU1953 5955 00ac 2363 str r3, [r4, #48] 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5956 .loc 1 2342 5 is_stmt 1 view .LVU1954 5957 00ae 2046 mov r0, r4 5958 .LVL531: 2342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 5959 .loc 1 2342 5 is_stmt 0 view .LVU1955 5960 00b0 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 5961 .LVL532: 5962 .L301: 2346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 5963 .loc 1 2346 3 is_stmt 1 view .LVU1956 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5964 .loc 1 2347 1 is_stmt 0 view .LVU1957 5965 00b4 0020 movs r0, #0 5966 00b6 10BD pop {r4, pc} 5967 .LVL533: 5968 .L304: 2347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5969 .loc 1 2347 1 view .LVU1958 5970 .align 2 5971 .L303: 5972 00b8 00000000 .word UART_DMARxOnlyAbortCallback 5973 .cfi_endproc 5974 .LFE159: 5976 .section .text.UART_DMARxOnlyAbortCallback,"ax",%progbits 5977 .align 1 5978 .syntax unified 5979 .thumb 5980 .thumb_func 5982 UART_DMARxOnlyAbortCallback: 5983 .LVL534: 5984 .LFB191: 3538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 5985 .loc 1 3538 1 is_stmt 1 view -0 5986 .cfi_startproc 5987 @ args = 0, pretend = 0, frame = 0 5988 @ 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; 5989 .loc 1 3538 1 is_stmt 0 view .LVU1960 5990 0000 08B5 push {r3, lr} 5991 .LCFI45: 5992 .cfi_def_cfa_offset 8 5993 .cfi_offset 3, -8 5994 .cfi_offset 14, -4 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5995 .loc 1 3539 3 is_stmt 1 view .LVU1961 3539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5996 .loc 1 3539 23 is_stmt 0 view .LVU1962 5997 0002 806B ldr r0, [r0, #56] 5998 .LVL535: ARM GAS /tmp/cc4vHZRy.s page 212 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 5999 .loc 1 3541 3 is_stmt 1 view .LVU1963 3541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6000 .loc 1 3541 22 is_stmt 0 view .LVU1964 6001 0004 0023 movs r3, #0 6002 0006 C385 strh r3, [r0, #46] @ movhi 3544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6003 .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; 6004 .loc 1 3544 18 is_stmt 0 view .LVU1966 6005 0008 2022 movs r2, #32 6006 000a 80F84220 strb r2, [r0, #66] 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6007 .loc 1 3545 3 is_stmt 1 view .LVU1967 3545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6008 .loc 1 3545 24 is_stmt 0 view .LVU1968 6009 000e 0363 str r3, [r0, #48] 3553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6010 .loc 1 3553 3 is_stmt 1 view .LVU1969 6011 0010 FFF7FEFF bl HAL_UART_AbortReceiveCpltCallback 6012 .LVL536: 3555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6013 .loc 1 3555 1 is_stmt 0 view .LVU1970 6014 0014 08BD pop {r3, pc} 6015 .cfi_endproc 6016 .LFE191: 6018 .section .text.HAL_UARTEx_RxEventCallback,"ax",%progbits 6019 .align 1 6020 .weak HAL_UARTEx_RxEventCallback 6021 .syntax unified 6022 .thumb 6023 .thumb_func 6025 HAL_UARTEx_RxEventCallback: 6026 .LVL537: 6027 .LFB169: 2741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Prevent unused argument(s) compilation warning */ 6028 .loc 1 2741 1 is_stmt 1 view -0 6029 .cfi_startproc 6030 @ args = 0, pretend = 0, frame = 0 6031 @ frame_needed = 0, uses_anonymous_args = 0 6032 @ link register save eliminated. 2743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UNUSED(Size); 6033 .loc 1 2743 3 view .LVU1972 2744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6034 .loc 1 2744 3 view .LVU1973 2749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6035 .loc 1 2749 1 is_stmt 0 view .LVU1974 6036 0000 7047 bx lr 6037 .cfi_endproc 6038 .LFE169: 6040 .section .text.UART_Receive_IT,"ax",%progbits 6041 .align 1 6042 .syntax unified 6043 .thumb 6044 .thumb_func 6046 UART_Receive_IT: 6047 .LVL538: ARM GAS /tmp/cc4vHZRy.s page 213 6048 .LFB194: 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits = NULL; 6049 .loc 1 3629 1 is_stmt 1 view -0 6050 .cfi_startproc 6051 @ args = 0, pretend = 0, frame = 8 6052 @ frame_needed = 0, uses_anonymous_args = 0 3630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint16_t *pdata16bits = NULL; 6053 .loc 1 3630 3 view .LVU1976 3631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6054 .loc 1 3631 3 view .LVU1977 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6055 .loc 1 3634 3 view .LVU1978 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6056 .loc 1 3634 12 is_stmt 0 view .LVU1979 6057 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 6058 0004 DBB2 uxtb r3, r3 3634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6059 .loc 1 3634 6 view .LVU1980 6060 0006 222B cmp r3, #34 6061 0008 69D1 bne .L319 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6062 .loc 1 3636 5 is_stmt 1 view .LVU1981 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6063 .loc 1 3636 21 is_stmt 0 view .LVU1982 6064 000a 8368 ldr r3, [r0, #8] 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6065 .loc 1 3636 8 view .LVU1983 6066 000c B3F5805F cmp r3, #4096 6067 0010 4FD0 beq .L325 6068 .L310: 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata16bits */ 6069 .loc 1 3646 7 is_stmt 1 view .LVU1984 3646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Unused pdata16bits */ 6070 .loc 1 3646 18 is_stmt 0 view .LVU1985 6071 0012 826A ldr r2, [r0, #40] 6072 .LVL539: 3648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6073 .loc 1 3648 7 is_stmt 1 view .LVU1986 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6074 .loc 1 3650 7 view .LVU1987 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6075 .loc 1 3650 10 is_stmt 0 view .LVU1988 6076 0014 B3F5805F cmp r3, #4096 6077 0018 04D0 beq .L312 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6078 .loc 1 3650 58 discriminator 1 view .LVU1989 6079 001a 002B cmp r3, #0 6080 001c 56D1 bne .L313 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6081 .loc 1 3650 124 discriminator 2 view .LVU1990 6082 001e 0369 ldr r3, [r0, #16] 3650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6083 .loc 1 3650 109 discriminator 2 view .LVU1991 6084 0020 002B cmp r3, #0 6085 0022 53D1 bne .L313 6086 .L312: 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 214 6087 .loc 1 3652 9 is_stmt 1 view .LVU1992 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6088 .loc 1 3652 38 is_stmt 0 view .LVU1993 6089 0024 0368 ldr r3, [r0] 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6090 .loc 1 3652 48 view .LVU1994 6091 0026 5B68 ldr r3, [r3, #4] 3652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6092 .loc 1 3652 21 view .LVU1995 6093 0028 1370 strb r3, [r2] 6094 .L314: 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6095 .loc 1 3658 7 is_stmt 1 view .LVU1996 3658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6096 .loc 1 3658 25 is_stmt 0 view .LVU1997 6097 002a 836A ldr r3, [r0, #40] 6098 002c 0133 adds r3, r3, #1 6099 002e 8362 str r3, [r0, #40] 6100 .LVL540: 6101 .L311: 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6102 .loc 1 3661 5 is_stmt 1 view .LVU1998 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6103 .loc 1 3661 16 is_stmt 0 view .LVU1999 6104 0030 C38D ldrh r3, [r0, #46] 6105 0032 9BB2 uxth r3, r3 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6106 .loc 1 3661 9 view .LVU2000 6107 0034 013B subs r3, r3, #1 6108 0036 9BB2 uxth r3, r3 3661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6109 .loc 1 3661 8 view .LVU2001 6110 0038 C385 strh r3, [r0, #46] @ movhi 6111 003a 002B cmp r3, #0 6112 003c 51D1 bne .L320 3629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint8_t *pdata8bits = NULL; 6113 .loc 1 3629 1 view .LVU2002 6114 003e 00B5 push {lr} 6115 .LCFI46: 6116 .cfi_def_cfa_offset 4 6117 .cfi_offset 14, -4 6118 0040 83B0 sub sp, sp, #12 6119 .LCFI47: 6120 .cfi_def_cfa_offset 16 3664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6121 .loc 1 3664 7 is_stmt 1 view .LVU2003 6122 0042 0268 ldr r2, [r0] 6123 0044 D368 ldr r3, [r2, #12] 6124 0046 23F02003 bic r3, r3, #32 6125 004a D360 str r3, [r2, #12] 3667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6126 .loc 1 3667 7 view .LVU2004 6127 004c 0268 ldr r2, [r0] 6128 004e D368 ldr r3, [r2, #12] 6129 0050 23F48073 bic r3, r3, #256 6130 0054 D360 str r3, [r2, #12] 3670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 215 6131 .loc 1 3670 7 view .LVU2005 6132 0056 0268 ldr r2, [r0] 6133 0058 5369 ldr r3, [r2, #20] 6134 005a 23F00103 bic r3, r3, #1 6135 005e 5361 str r3, [r2, #20] 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6136 .loc 1 3673 7 view .LVU2006 3673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6137 .loc 1 3673 22 is_stmt 0 view .LVU2007 6138 0060 2023 movs r3, #32 6139 0062 80F84230 strb r3, [r0, #66] 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6140 .loc 1 3676 7 is_stmt 1 view .LVU2008 3676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6141 .loc 1 3676 26 is_stmt 0 view .LVU2009 6142 0066 0023 movs r3, #0 6143 0068 4363 str r3, [r0, #52] 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6144 .loc 1 3680 7 is_stmt 1 view .LVU2010 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6145 .loc 1 3680 16 is_stmt 0 view .LVU2011 6146 006a 036B ldr r3, [r0, #48] 3680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6147 .loc 1 3680 10 view .LVU2012 6148 006c 012B cmp r3, #1 6149 006e 33D1 bne .L315 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6150 .loc 1 3683 9 is_stmt 1 view .LVU2013 3683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6151 .loc 1 3683 30 is_stmt 0 view .LVU2014 6152 0070 0023 movs r3, #0 6153 0072 0363 str r3, [r0, #48] 6154 .L316: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6155 .loc 1 3686 9 is_stmt 1 discriminator 1 view .LVU2015 6156 .LBB508: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6157 .loc 1 3686 9 discriminator 1 view .LVU2016 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6158 .loc 1 3686 9 discriminator 1 view .LVU2017 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6159 .loc 1 3686 9 discriminator 1 view .LVU2018 6160 0074 0268 ldr r2, [r0] 6161 .LVL541: 6162 .LBB509: 6163 .LBI509: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6164 .loc 2 476 31 discriminator 1 view .LVU2019 6165 .LBB510: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6166 .loc 2 478 5 discriminator 1 view .LVU2020 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6167 .loc 2 480 4 discriminator 1 view .LVU2021 6168 0076 02F10C03 add r3, r2, #12 6169 .LVL542: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6170 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2022 ARM GAS /tmp/cc4vHZRy.s page 216 6171 .syntax unified 6172 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6173 007a 53E8003F ldrex r3, [r3] 6174 @ 0 "" 2 6175 .LVL543: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6176 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2023 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6177 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2024 6178 .thumb 6179 .syntax unified 6180 .LBE510: 6181 .LBE509: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6182 .loc 1 3686 9 discriminator 1 view .LVU2025 6183 007e 23F01003 bic r3, r3, #16 6184 .LVL544: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6185 .loc 1 3686 9 is_stmt 1 discriminator 1 view .LVU2026 6186 .LBB511: 6187 .LBI511: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6188 .loc 2 527 31 discriminator 1 view .LVU2027 6189 .LBB512: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6190 .loc 2 529 4 discriminator 1 view .LVU2028 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6191 .loc 2 531 4 discriminator 1 view .LVU2029 6192 0082 0C32 adds r2, r2, #12 6193 .LVL545: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6194 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2030 6195 .syntax unified 6196 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6197 0084 42E80031 strex r1, r3, [r2] 6198 @ 0 "" 2 6199 .LVL546: 6200 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2031 6201 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2032 6202 .thumb 6203 .syntax unified 6204 .LBE512: 6205 .LBE511: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6206 .loc 1 3686 9 discriminator 1 view .LVU2033 6207 0088 0029 cmp r1, #0 6208 008a F3D1 bne .L316 6209 .LBE508: 3686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6210 .loc 1 3686 9 is_stmt 1 discriminator 2 view .LVU2034 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6211 .loc 1 3689 9 discriminator 2 view .LVU2035 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6212 .loc 1 3689 13 is_stmt 0 discriminator 2 view .LVU2036 6213 008c 0368 ldr r3, [r0] 6214 .LVL547: 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 217 6215 .loc 1 3689 13 discriminator 2 view .LVU2037 6216 008e 1A68 ldr r2, [r3] 3689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6217 .loc 1 3689 12 discriminator 2 view .LVU2038 6218 0090 12F0100F tst r2, #16 6219 0094 06D0 beq .L317 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6220 .loc 1 3692 11 is_stmt 1 view .LVU2039 6221 .LBB513: 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6222 .loc 1 3692 11 view .LVU2040 6223 0096 0022 movs r2, #0 6224 0098 0192 str r2, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6225 .loc 1 3692 11 view .LVU2041 6226 009a 1A68 ldr r2, [r3] 6227 009c 0192 str r2, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6228 .loc 1 3692 11 view .LVU2042 6229 009e 5B68 ldr r3, [r3, #4] 6230 00a0 0193 str r3, [sp, #4] 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6231 .loc 1 3692 11 view .LVU2043 6232 00a2 019B ldr r3, [sp, #4] 6233 .L317: 6234 .LBE513: 3692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6235 .loc 1 3692 11 discriminator 1 view .LVU2044 3700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6236 .loc 1 3700 9 discriminator 1 view .LVU2045 6237 00a4 818D ldrh r1, [r0, #44] 6238 00a6 FFF7FEFF bl HAL_UARTEx_RxEventCallback 6239 .LVL548: 6240 .L318: 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6241 .loc 1 3715 7 view .LVU2046 3715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6242 .loc 1 3715 14 is_stmt 0 view .LVU2047 6243 00aa 0020 movs r0, #0 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6244 .loc 1 3723 1 view .LVU2048 6245 00ac 03B0 add sp, sp, #12 6246 .LCFI48: 6247 .cfi_def_cfa_offset 4 6248 @ sp needed 6249 00ae 5DF804FB ldr pc, [sp], #4 6250 .LVL549: 6251 .L325: 6252 .LCFI49: 6253 .cfi_def_cfa_offset 0 6254 .cfi_restore 14 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6255 .loc 1 3636 71 discriminator 1 view .LVU2049 6256 00b2 0269 ldr r2, [r0, #16] 3636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6257 .loc 1 3636 56 discriminator 1 view .LVU2050 6258 00b4 002A cmp r2, #0 ARM GAS /tmp/cc4vHZRy.s page 218 6259 00b6 ACD1 bne .L310 3639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** pdata16bits = (uint16_t *) huart->pRxBuffPtr; 6260 .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); 6261 .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); 6262 .loc 1 3640 19 is_stmt 0 view .LVU2053 6263 00b8 826A ldr r2, [r0, #40] 6264 .LVL550: 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6265 .loc 1 3641 7 is_stmt 1 view .LVU2054 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6266 .loc 1 3641 38 is_stmt 0 view .LVU2055 6267 00ba 0368 ldr r3, [r0] 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6268 .loc 1 3641 48 view .LVU2056 6269 00bc 5B68 ldr r3, [r3, #4] 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6270 .loc 1 3641 22 view .LVU2057 6271 00be C3F30803 ubfx r3, r3, #0, #9 3641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr += 2U; 6272 .loc 1 3641 20 view .LVU2058 6273 00c2 1380 strh r3, [r2] @ movhi 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6274 .loc 1 3642 7 is_stmt 1 view .LVU2059 3642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6275 .loc 1 3642 25 is_stmt 0 view .LVU2060 6276 00c4 836A ldr r3, [r0, #40] 6277 00c6 0233 adds r3, r3, #2 6278 00c8 8362 str r3, [r0, #40] 6279 00ca B1E7 b .L311 6280 .LVL551: 6281 .L313: 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6282 .loc 1 3656 9 is_stmt 1 view .LVU2061 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6283 .loc 1 3656 38 is_stmt 0 view .LVU2062 6284 00cc 0368 ldr r3, [r0] 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6285 .loc 1 3656 48 view .LVU2063 6286 00ce 5B68 ldr r3, [r3, #4] 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6287 .loc 1 3656 23 view .LVU2064 6288 00d0 03F07F03 and r3, r3, #127 3656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6289 .loc 1 3656 21 view .LVU2065 6290 00d4 1370 strb r3, [r2] 6291 00d6 A8E7 b .L314 6292 .LVL552: 6293 .L315: 6294 .LCFI50: 6295 .cfi_def_cfa_offset 16 6296 .cfi_offset 14, -4 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6297 .loc 1 3711 9 is_stmt 1 view .LVU2066 6298 00d8 FFF7FEFF bl HAL_UART_RxCpltCallback 6299 .LVL553: ARM GAS /tmp/cc4vHZRy.s page 219 3711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6300 .loc 1 3711 9 is_stmt 0 view .LVU2067 6301 00dc E5E7 b .L318 6302 .LVL554: 6303 .L319: 6304 .LCFI51: 6305 .cfi_def_cfa_offset 0 6306 .cfi_restore 14 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6307 .loc 1 3721 12 view .LVU2068 6308 00de 0220 movs r0, #2 6309 .LVL555: 3721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6310 .loc 1 3721 12 view .LVU2069 6311 00e0 7047 bx lr 6312 .LVL556: 6313 .L320: 3717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6314 .loc 1 3717 12 view .LVU2070 6315 00e2 0020 movs r0, #0 6316 .LVL557: 3723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6317 .loc 1 3723 1 view .LVU2071 6318 00e4 7047 bx lr 6319 .cfi_endproc 6320 .LFE194: 6322 .section .text.HAL_UART_IRQHandler,"ax",%progbits 6323 .align 1 6324 .global HAL_UART_IRQHandler 6325 .syntax unified 6326 .thumb 6327 .thumb_func 6329 HAL_UART_IRQHandler: 6330 .LVL558: 6331 .LFB160: 2356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t isrflags = READ_REG(huart->Instance->SR); 6332 .loc 1 2356 1 is_stmt 1 view -0 6333 .cfi_startproc 6334 @ args = 0, pretend = 0, frame = 8 6335 @ 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); 6336 .loc 1 2356 1 is_stmt 0 view .LVU2073 6337 0000 30B5 push {r4, r5, lr} 6338 .LCFI52: 6339 .cfi_def_cfa_offset 12 6340 .cfi_offset 4, -12 6341 .cfi_offset 5, -8 6342 .cfi_offset 14, -4 6343 0002 83B0 sub sp, sp, #12 6344 .LCFI53: 6345 .cfi_def_cfa_offset 24 6346 0004 0446 mov r4, r0 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 6347 .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); 6348 .loc 1 2357 25 is_stmt 0 view .LVU2075 6349 0006 0268 ldr r2, [r0] ARM GAS /tmp/cc4vHZRy.s page 220 2357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr1its = READ_REG(huart->Instance->CR1); 6350 .loc 1 2357 12 view .LVU2076 6351 0008 1368 ldr r3, [r2] 6352 .LVL559: 2358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t cr3its = READ_REG(huart->Instance->CR3); 6353 .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); 6354 .loc 1 2358 12 is_stmt 0 view .LVU2078 6355 000a D068 ldr r0, [r2, #12] 6356 .LVL560: 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 6357 .loc 1 2359 3 is_stmt 1 view .LVU2079 2359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t errorflags = 0x00U; 6358 .loc 1 2359 12 is_stmt 0 view .LVU2080 6359 000c 5169 ldr r1, [r2, #20] 6360 .LVL561: 2360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t dmarequest = 0x00U; 6361 .loc 1 2360 3 is_stmt 1 view .LVU2081 2361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6362 .loc 1 2361 3 view .LVU2082 2364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (errorflags == RESET) 6363 .loc 1 2364 3 view .LVU2083 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6364 .loc 1 2365 3 view .LVU2084 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6365 .loc 1 2365 6 is_stmt 0 view .LVU2085 6366 000e 13F00F05 ands r5, r3, #15 6367 .LVL562: 2365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6368 .loc 1 2365 6 view .LVU2086 6369 0012 05D1 bne .L327 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6370 .loc 1 2368 5 is_stmt 1 view .LVU2087 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6371 .loc 1 2368 8 is_stmt 0 view .LVU2088 6372 0014 13F0200F tst r3, #32 6373 0018 02D0 beq .L327 2368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6374 .loc 1 2368 47 discriminator 1 view .LVU2089 6375 001a 10F0200F tst r0, #32 6376 001e 19D1 bne .L358 6377 .L327: 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6378 .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))) 6379 .loc 1 2376 6 is_stmt 0 view .LVU2091 6380 0020 2DB1 cbz r5, .L329 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6381 .loc 1 2376 29 discriminator 1 view .LVU2092 6382 0022 11F00101 ands r1, r1, #1 6383 .LVL563: 2376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET))) 6384 .loc 1 2376 29 discriminator 1 view .LVU2093 6385 0026 19D1 bne .L330 2377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6386 .loc 1 2377 33 view .LVU2094 6387 0028 10F4907F tst r0, #288 ARM GAS /tmp/cc4vHZRy.s page 221 6388 002c 16D1 bne .L330 6389 .L329: 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6390 .loc 1 2484 3 is_stmt 1 view .LVU2095 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6391 .loc 1 2484 13 is_stmt 0 view .LVU2096 6392 002e 216B ldr r1, [r4, #48] 2484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((isrflags & USART_SR_IDLE) != 0U) 6393 .loc 1 2484 6 view .LVU2097 6394 0030 0129 cmp r1, #1 6395 0032 7DD0 beq .L359 6396 .L343: 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6397 .loc 1 2599 3 is_stmt 1 view .LVU2098 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6398 .loc 1 2599 6 is_stmt 0 view .LVU2099 6399 0034 13F0800F tst r3, #128 6400 0038 03D0 beq .L356 2599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6401 .loc 1 2599 44 discriminator 1 view .LVU2100 6402 003a 10F0800F tst r0, #128 6403 003e 40F02681 bne .L360 6404 .L356: 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6405 .loc 1 2606 3 is_stmt 1 view .LVU2101 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6406 .loc 1 2606 6 is_stmt 0 view .LVU2102 6407 0042 13F0400F tst r3, #64 6408 0046 03D0 beq .L326 2606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6409 .loc 1 2606 43 discriminator 1 view .LVU2103 6410 0048 10F0400F tst r0, #64 6411 004c 40F02381 bne .L361 6412 .LVL564: 6413 .L326: 2611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6414 .loc 1 2611 1 view .LVU2104 6415 0050 03B0 add sp, sp, #12 6416 .LCFI54: 6417 .cfi_remember_state 6418 .cfi_def_cfa_offset 12 6419 @ sp needed 6420 0052 30BD pop {r4, r5, pc} 6421 .LVL565: 6422 .L358: 6423 .LCFI55: 6424 .cfi_restore_state 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6425 .loc 1 2370 7 is_stmt 1 view .LVU2105 6426 0054 2046 mov r0, r4 6427 .LVL566: 2370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 6428 .loc 1 2370 7 is_stmt 0 view .LVU2106 6429 0056 FFF7FEFF bl UART_Receive_IT 6430 .LVL567: 2371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6431 .loc 1 2371 7 is_stmt 1 view .LVU2107 ARM GAS /tmp/cc4vHZRy.s page 222 6432 005a F9E7 b .L326 6433 .LVL568: 6434 .L330: 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6435 .loc 1 2380 5 view .LVU2108 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6436 .loc 1 2380 8 is_stmt 0 view .LVU2109 6437 005c 13F0010F tst r3, #1 6438 0060 06D0 beq .L331 2380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6439 .loc 1 2380 45 discriminator 1 view .LVU2110 6440 0062 10F4807F tst r0, #256 6441 0066 03D0 beq .L331 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6442 .loc 1 2382 7 is_stmt 1 view .LVU2111 2382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6443 .loc 1 2382 24 is_stmt 0 view .LVU2112 6444 0068 626C ldr r2, [r4, #68] 6445 006a 42F00102 orr r2, r2, #1 6446 006e 6264 str r2, [r4, #68] 6447 .L331: 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6448 .loc 1 2386 5 is_stmt 1 view .LVU2113 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6449 .loc 1 2386 8 is_stmt 0 view .LVU2114 6450 0070 13F0040F tst r3, #4 6451 0074 04D0 beq .L332 2386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6452 .loc 1 2386 45 discriminator 1 view .LVU2115 6453 0076 19B1 cbz r1, .L332 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6454 .loc 1 2388 7 is_stmt 1 view .LVU2116 2388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6455 .loc 1 2388 24 is_stmt 0 view .LVU2117 6456 0078 626C ldr r2, [r4, #68] 6457 007a 42F00202 orr r2, r2, #2 6458 007e 6264 str r2, [r4, #68] 6459 .L332: 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6460 .loc 1 2392 5 is_stmt 1 view .LVU2118 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6461 .loc 1 2392 8 is_stmt 0 view .LVU2119 6462 0080 13F0020F tst r3, #2 6463 0084 04D0 beq .L333 2392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6464 .loc 1 2392 45 discriminator 1 view .LVU2120 6465 0086 19B1 cbz r1, .L333 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6466 .loc 1 2394 7 is_stmt 1 view .LVU2121 2394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6467 .loc 1 2394 24 is_stmt 0 view .LVU2122 6468 0088 626C ldr r2, [r4, #68] 6469 008a 42F00402 orr r2, r2, #4 6470 008e 6264 str r2, [r4, #68] 6471 .L333: 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6472 .loc 1 2398 5 is_stmt 1 view .LVU2123 ARM GAS /tmp/cc4vHZRy.s page 223 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6473 .loc 1 2398 8 is_stmt 0 view .LVU2124 6474 0090 13F0080F tst r3, #8 6475 0094 07D0 beq .L334 2398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** || ((cr3its & USART_CR3_EIE) != RESET))) 6476 .loc 1 2398 46 discriminator 1 view .LVU2125 6477 0096 10F0200F tst r0, #32 6478 009a 00D1 bne .L335 2399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6479 .loc 1 2399 50 view .LVU2126 6480 009c 19B1 cbz r1, .L334 6481 .L335: 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6482 .loc 1 2401 7 is_stmt 1 view .LVU2127 2401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6483 .loc 1 2401 24 is_stmt 0 view .LVU2128 6484 009e 626C ldr r2, [r4, #68] 6485 00a0 42F00802 orr r2, r2, #8 6486 00a4 6264 str r2, [r4, #68] 6487 .L334: 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6488 .loc 1 2405 5 is_stmt 1 view .LVU2129 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6489 .loc 1 2405 14 is_stmt 0 view .LVU2130 6490 00a6 626C ldr r2, [r4, #68] 2405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6491 .loc 1 2405 8 view .LVU2131 6492 00a8 002A cmp r2, #0 6493 00aa D1D0 beq .L326 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6494 .loc 1 2408 7 is_stmt 1 view .LVU2132 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6495 .loc 1 2408 10 is_stmt 0 view .LVU2133 6496 00ac 13F0200F tst r3, #32 6497 00b0 02D0 beq .L337 2408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6498 .loc 1 2408 49 discriminator 1 view .LVU2134 6499 00b2 10F0200F tst r0, #32 6500 00b6 29D1 bne .L362 6501 .LVL569: 6502 .L337: 2415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (((huart->ErrorCode & HAL_UART_ERROR_ORE) != RESET) || dmarequest) 6503 .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) 6504 .loc 1 2415 20 is_stmt 0 view .LVU2136 6505 00b8 2368 ldr r3, [r4] 6506 00ba 5B69 ldr r3, [r3, #20] 6507 00bc 03F04003 and r3, r3, #64 6508 .LVL570: 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6509 .loc 1 2416 7 is_stmt 1 view .LVU2137 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6510 .loc 1 2416 18 is_stmt 0 view .LVU2138 6511 00c0 626C ldr r2, [r4, #68] 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6512 .loc 1 2416 10 view .LVU2139 6513 00c2 12F0080F tst r2, #8 ARM GAS /tmp/cc4vHZRy.s page 224 6514 00c6 00D1 bne .L338 2416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6515 .loc 1 2416 62 discriminator 1 view .LVU2140 6516 00c8 63B3 cbz r3, .L339 6517 .L338: 2421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6518 .loc 1 2421 9 is_stmt 1 view .LVU2141 6519 00ca 2046 mov r0, r4 6520 00cc FFF7FEFF bl UART_EndRxTransfer 6521 .LVL571: 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6522 .loc 1 2424 9 view .LVU2142 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6523 .loc 1 2424 13 is_stmt 0 view .LVU2143 6524 00d0 2368 ldr r3, [r4] 6525 00d2 5B69 ldr r3, [r3, #20] 2424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6526 .loc 1 2424 12 view .LVU2144 6527 00d4 13F0400F tst r3, #64 6528 00d8 20D0 beq .L340 6529 .L341: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6530 .loc 1 2426 11 is_stmt 1 discriminator 1 view .LVU2145 6531 .LBB514: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6532 .loc 1 2426 11 discriminator 1 view .LVU2146 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6533 .loc 1 2426 11 discriminator 1 view .LVU2147 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6534 .loc 1 2426 11 discriminator 1 view .LVU2148 6535 00da 2268 ldr r2, [r4] 6536 .LVL572: 6537 .LBB515: 6538 .LBI515: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6539 .loc 2 476 31 discriminator 1 view .LVU2149 6540 .LBB516: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6541 .loc 2 478 5 discriminator 1 view .LVU2150 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6542 .loc 2 480 4 discriminator 1 view .LVU2151 6543 00dc 02F11403 add r3, r2, #20 6544 .LVL573: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6545 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2152 6546 .syntax unified 6547 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6548 00e0 53E8003F ldrex r3, [r3] 6549 @ 0 "" 2 6550 .LVL574: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6551 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2153 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6552 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2154 6553 .thumb 6554 .syntax unified 6555 .LBE516: ARM GAS /tmp/cc4vHZRy.s page 225 6556 .LBE515: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6557 .loc 1 2426 11 discriminator 1 view .LVU2155 6558 00e4 23F04003 bic r3, r3, #64 6559 .LVL575: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6560 .loc 1 2426 11 is_stmt 1 discriminator 1 view .LVU2156 6561 .LBB517: 6562 .LBI517: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6563 .loc 2 527 31 discriminator 1 view .LVU2157 6564 .LBB518: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6565 .loc 2 529 4 discriminator 1 view .LVU2158 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6566 .loc 2 531 4 discriminator 1 view .LVU2159 6567 00e8 1432 adds r2, r2, #20 6568 .LVL576: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6569 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2160 6570 .syntax unified 6571 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6572 00ea 42E80031 strex r1, r3, [r2] 6573 @ 0 "" 2 6574 .LVL577: 6575 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2161 6576 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2162 6577 .thumb 6578 .syntax unified 6579 .LBE518: 6580 .LBE517: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6581 .loc 1 2426 11 discriminator 1 view .LVU2163 6582 00ee 0029 cmp r1, #0 6583 00f0 F3D1 bne .L341 6584 .LBE514: 2426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6585 .loc 1 2426 11 is_stmt 1 discriminator 2 view .LVU2164 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6586 .loc 1 2429 11 discriminator 2 view .LVU2165 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6587 .loc 1 2429 20 is_stmt 0 discriminator 2 view .LVU2166 6588 00f2 E36B ldr r3, [r4, #60] 6589 .LVL578: 2429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6590 .loc 1 2429 14 discriminator 2 view .LVU2167 6591 00f4 73B1 cbz r3, .L342 2433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) 6592 .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) 6593 .loc 1 2433 46 is_stmt 0 view .LVU2169 6594 00f6 6A4A ldr r2, .L363 6595 00f8 1A65 str r2, [r3, #80] 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6596 .loc 1 2434 13 is_stmt 1 view .LVU2170 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6597 .loc 1 2434 17 is_stmt 0 view .LVU2171 ARM GAS /tmp/cc4vHZRy.s page 226 6598 00fa E06B ldr r0, [r4, #60] 6599 00fc FFF7FEFF bl HAL_DMA_Abort_IT 6600 .LVL579: 2434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6601 .loc 1 2434 16 view .LVU2172 6602 0100 0028 cmp r0, #0 6603 0102 A5D0 beq .L326 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6604 .loc 1 2437 15 is_stmt 1 view .LVU2173 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6605 .loc 1 2437 20 is_stmt 0 view .LVU2174 6606 0104 E06B ldr r0, [r4, #60] 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6607 .loc 1 2437 28 view .LVU2175 6608 0106 036D ldr r3, [r0, #80] 2437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6609 .loc 1 2437 15 view .LVU2176 6610 0108 9847 blx r3 6611 .LVL580: 6612 010a A1E7 b .L326 6613 .LVL581: 6614 .L362: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6615 .loc 1 2410 9 is_stmt 1 view .LVU2177 6616 010c 2046 mov r0, r4 6617 .LVL582: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6618 .loc 1 2410 9 is_stmt 0 view .LVU2178 6619 010e FFF7FEFF bl UART_Receive_IT 6620 .LVL583: 2410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6621 .loc 1 2410 9 view .LVU2179 6622 0112 D1E7 b .L337 6623 .LVL584: 6624 .L342: 2448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6625 .loc 1 2448 13 is_stmt 1 view .LVU2180 6626 0114 2046 mov r0, r4 6627 0116 FFF7FEFF bl HAL_UART_ErrorCallback 6628 .LVL585: 6629 011a 99E7 b .L326 6630 .L340: 2460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6631 .loc 1 2460 11 view .LVU2181 6632 011c 2046 mov r0, r4 6633 011e FFF7FEFF bl HAL_UART_ErrorCallback 6634 .LVL586: 6635 0122 95E7 b .L326 6636 .LVL587: 6637 .L339: 2473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6638 .loc 1 2473 9 view .LVU2182 6639 0124 2046 mov r0, r4 6640 0126 FFF7FEFF bl HAL_UART_ErrorCallback 6641 .LVL588: 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6642 .loc 1 2476 9 view .LVU2183 ARM GAS /tmp/cc4vHZRy.s page 227 2476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6643 .loc 1 2476 26 is_stmt 0 view .LVU2184 6644 012a 0023 movs r3, #0 6645 012c 6364 str r3, [r4, #68] 2479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } /* End if some error occurs */ 6646 .loc 1 2479 5 is_stmt 1 view .LVU2185 6647 012e 8FE7 b .L326 6648 .LVL589: 6649 .L359: 2485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && ((cr1its & USART_CR1_IDLEIE) != 0U)) 6650 .loc 1 2485 7 is_stmt 0 view .LVU2186 6651 0130 13F0100F tst r3, #16 6652 0134 3FF47EAF beq .L343 2486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6653 .loc 1 2486 7 view .LVU2187 6654 0138 10F0100F tst r0, #16 6655 013c 3FF47AAF beq .L343 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6656 .loc 1 2488 5 is_stmt 1 view .LVU2188 6657 .LBB519: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6658 .loc 1 2488 5 view .LVU2189 6659 0140 0023 movs r3, #0 6660 .LVL590: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6661 .loc 1 2488 5 is_stmt 0 view .LVU2190 6662 0142 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6663 .loc 1 2488 5 is_stmt 1 view .LVU2191 6664 0144 1368 ldr r3, [r2] 6665 0146 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6666 .loc 1 2488 5 view .LVU2192 6667 0148 5368 ldr r3, [r2, #4] 6668 014a 0193 str r3, [sp, #4] 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6669 .loc 1 2488 5 view .LVU2193 6670 014c 019B ldr r3, [sp, #4] 6671 .LBE519: 2488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6672 .loc 1 2488 5 view .LVU2194 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6673 .loc 1 2491 5 view .LVU2195 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6674 .loc 1 2491 9 is_stmt 0 view .LVU2196 6675 014e 5369 ldr r3, [r2, #20] 2491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6676 .loc 1 2491 8 view .LVU2197 6677 0150 13F0400F tst r3, #64 6678 0154 5FD0 beq .L344 6679 .LBB520: 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 6680 .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) 6681 .loc 1 2497 50 is_stmt 0 view .LVU2199 6682 0156 E26B ldr r2, [r4, #60] 6683 0158 1368 ldr r3, [r2] ARM GAS /tmp/cc4vHZRy.s page 228 6684 015a 5B68 ldr r3, [r3, #4] 2497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((nb_remaining_rx_data > 0U) 6685 .loc 1 2497 16 view .LVU2200 6686 015c 9BB2 uxth r3, r3 6687 .LVL591: 2498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_remaining_rx_data < huart->RxXferSize)) 6688 .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)) 6689 .loc 1 2498 10 is_stmt 0 view .LVU2202 6690 015e 002B cmp r3, #0 6691 0160 4AD0 beq .L345 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6692 .loc 1 2499 43 view .LVU2203 6693 0162 A18D ldrh r1, [r4, #44] 2499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6694 .loc 1 2499 11 view .LVU2204 6695 0164 9942 cmp r1, r3 6696 0166 47D9 bls .L345 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6697 .loc 1 2502 9 is_stmt 1 view .LVU2205 2502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6698 .loc 1 2502 28 is_stmt 0 view .LVU2206 6699 0168 E385 strh r3, [r4, #46] @ movhi 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6700 .loc 1 2505 9 is_stmt 1 view .LVU2207 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6701 .loc 1 2505 32 is_stmt 0 view .LVU2208 6702 016a D369 ldr r3, [r2, #28] 6703 .LVL592: 2505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6704 .loc 1 2505 12 view .LVU2209 6705 016c B3F5807F cmp r3, #256 6706 0170 37D0 beq .L346 6707 .L347: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6708 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2210 6709 .LBB521: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6710 .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); 6711 .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); 6712 .loc 1 2508 11 discriminator 1 view .LVU2213 6713 0172 2268 ldr r2, [r4] 6714 .LVL593: 6715 .LBB522: 6716 .LBI522: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6717 .loc 2 476 31 discriminator 1 view .LVU2214 6718 .LBB523: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6719 .loc 2 478 5 discriminator 1 view .LVU2215 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6720 .loc 2 480 4 discriminator 1 view .LVU2216 6721 0174 02F10C03 add r3, r2, #12 6722 .LVL594: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 229 6723 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2217 6724 .syntax unified 6725 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6726 0178 53E8003F ldrex r3, [r3] 6727 @ 0 "" 2 6728 .LVL595: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6729 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2218 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6730 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2219 6731 .thumb 6732 .syntax unified 6733 .LBE523: 6734 .LBE522: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6735 .loc 1 2508 11 discriminator 1 view .LVU2220 6736 017c 23F48073 bic r3, r3, #256 6737 .LVL596: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6738 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2221 6739 .LBB524: 6740 .LBI524: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6741 .loc 2 527 31 discriminator 1 view .LVU2222 6742 .LBB525: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6743 .loc 2 529 4 discriminator 1 view .LVU2223 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6744 .loc 2 531 4 discriminator 1 view .LVU2224 6745 0180 0C32 adds r2, r2, #12 6746 .LVL597: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6747 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2225 6748 .syntax unified 6749 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6750 0182 42E80031 strex r1, r3, [r2] 6751 @ 0 "" 2 6752 .LVL598: 6753 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2226 6754 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2227 6755 .thumb 6756 .syntax unified 6757 .LBE525: 6758 .LBE524: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6759 .loc 1 2508 11 discriminator 1 view .LVU2228 6760 0186 0029 cmp r1, #0 6761 0188 F3D1 bne .L347 6762 .LVL599: 6763 .L348: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6764 .loc 1 2508 11 discriminator 1 view .LVU2229 6765 .LBE521: 2508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 6766 .loc 1 2508 11 is_stmt 1 discriminator 1 view .LVU2230 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6767 .loc 1 2509 11 discriminator 1 view .LVU2231 ARM GAS /tmp/cc4vHZRy.s page 230 6768 .LBB526: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6769 .loc 1 2509 11 discriminator 1 view .LVU2232 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6770 .loc 1 2509 11 discriminator 1 view .LVU2233 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6771 .loc 1 2509 11 discriminator 1 view .LVU2234 6772 018a 2268 ldr r2, [r4] 6773 .LVL600: 6774 .LBB527: 6775 .LBI527: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6776 .loc 2 476 31 discriminator 1 view .LVU2235 6777 .LBB528: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6778 .loc 2 478 5 discriminator 1 view .LVU2236 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6779 .loc 2 480 4 discriminator 1 view .LVU2237 6780 018c 02F11403 add r3, r2, #20 6781 .LVL601: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6782 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2238 6783 .syntax unified 6784 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6785 0190 53E8003F ldrex r3, [r3] 6786 @ 0 "" 2 6787 .LVL602: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6788 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2239 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6789 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2240 6790 .thumb 6791 .syntax unified 6792 .LBE528: 6793 .LBE527: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6794 .loc 1 2509 11 discriminator 1 view .LVU2241 6795 0194 23F00103 bic r3, r3, #1 6796 .LVL603: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6797 .loc 1 2509 11 is_stmt 1 discriminator 1 view .LVU2242 6798 .LBB529: 6799 .LBI529: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6800 .loc 2 527 31 discriminator 1 view .LVU2243 6801 .LBB530: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6802 .loc 2 529 4 discriminator 1 view .LVU2244 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6803 .loc 2 531 4 discriminator 1 view .LVU2245 6804 0198 1432 adds r2, r2, #20 6805 .LVL604: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6806 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2246 6807 .syntax unified 6808 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6809 019a 42E80031 strex r1, r3, [r2] ARM GAS /tmp/cc4vHZRy.s page 231 6810 @ 0 "" 2 6811 .LVL605: 6812 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2247 6813 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2248 6814 .thumb 6815 .syntax unified 6816 .LBE530: 6817 .LBE529: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6818 .loc 1 2509 11 discriminator 1 view .LVU2249 6819 019e 0029 cmp r1, #0 6820 01a0 F3D1 bne .L348 6821 .LVL606: 6822 .L349: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6823 .loc 1 2509 11 discriminator 1 view .LVU2250 6824 .LBE526: 2509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6825 .loc 1 2509 11 is_stmt 1 discriminator 1 view .LVU2251 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6826 .loc 1 2513 11 discriminator 1 view .LVU2252 6827 .LBB531: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6828 .loc 1 2513 11 discriminator 1 view .LVU2253 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6829 .loc 1 2513 11 discriminator 1 view .LVU2254 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6830 .loc 1 2513 11 discriminator 1 view .LVU2255 6831 01a2 2268 ldr r2, [r4] 6832 .LVL607: 6833 .LBB532: 6834 .LBI532: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6835 .loc 2 476 31 discriminator 1 view .LVU2256 6836 .LBB533: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6837 .loc 2 478 5 discriminator 1 view .LVU2257 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6838 .loc 2 480 4 discriminator 1 view .LVU2258 6839 01a4 02F11403 add r3, r2, #20 6840 .LVL608: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6841 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2259 6842 .syntax unified 6843 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6844 01a8 53E8003F ldrex r3, [r3] 6845 @ 0 "" 2 6846 .LVL609: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6847 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2260 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6848 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2261 6849 .thumb 6850 .syntax unified 6851 .LBE533: 6852 .LBE532: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 232 6853 .loc 1 2513 11 discriminator 1 view .LVU2262 6854 01ac 23F04003 bic r3, r3, #64 6855 .LVL610: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6856 .loc 1 2513 11 is_stmt 1 discriminator 1 view .LVU2263 6857 .LBB534: 6858 .LBI534: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6859 .loc 2 527 31 discriminator 1 view .LVU2264 6860 .LBB535: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6861 .loc 2 529 4 discriminator 1 view .LVU2265 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6862 .loc 2 531 4 discriminator 1 view .LVU2266 6863 01b0 1432 adds r2, r2, #20 6864 .LVL611: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6865 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2267 6866 .syntax unified 6867 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6868 01b2 42E80031 strex r1, r3, [r2] 6869 @ 0 "" 2 6870 .LVL612: 6871 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2268 6872 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2269 6873 .thumb 6874 .syntax unified 6875 .LBE535: 6876 .LBE534: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6877 .loc 1 2513 11 discriminator 1 view .LVU2270 6878 01b6 0029 cmp r1, #0 6879 01b8 F3D1 bne .L349 6880 .LBE531: 2513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6881 .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; 6882 .loc 1 2516 11 discriminator 2 view .LVU2272 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6883 .loc 1 2516 26 is_stmt 0 discriminator 2 view .LVU2273 6884 01ba 2023 movs r3, #32 6885 .LVL613: 2516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 6886 .loc 1 2516 26 discriminator 2 view .LVU2274 6887 01bc 84F84230 strb r3, [r4, #66] 6888 .LVL614: 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6889 .loc 1 2517 11 is_stmt 1 discriminator 2 view .LVU2275 2517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6890 .loc 1 2517 32 is_stmt 0 discriminator 2 view .LVU2276 6891 01c0 0023 movs r3, #0 6892 01c2 2363 str r3, [r4, #48] 6893 .L350: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6894 .loc 1 2519 11 is_stmt 1 discriminator 1 view .LVU2277 6895 .LBB536: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 233 6896 .loc 1 2519 11 discriminator 1 view .LVU2278 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6897 .loc 1 2519 11 discriminator 1 view .LVU2279 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6898 .loc 1 2519 11 discriminator 1 view .LVU2280 6899 01c4 2268 ldr r2, [r4] 6900 .LVL615: 6901 .LBB537: 6902 .LBI537: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6903 .loc 2 476 31 discriminator 1 view .LVU2281 6904 .LBB538: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 6905 .loc 2 478 5 discriminator 1 view .LVU2282 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6906 .loc 2 480 4 discriminator 1 view .LVU2283 6907 01c6 02F10C03 add r3, r2, #12 6908 .LVL616: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6909 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2284 6910 .syntax unified 6911 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6912 01ca 53E8003F ldrex r3, [r3] 6913 @ 0 "" 2 6914 .LVL617: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6915 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2285 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 6916 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2286 6917 .thumb 6918 .syntax unified 6919 .LBE538: 6920 .LBE537: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6921 .loc 1 2519 11 discriminator 1 view .LVU2287 6922 01ce 23F01003 bic r3, r3, #16 6923 .LVL618: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6924 .loc 1 2519 11 is_stmt 1 discriminator 1 view .LVU2288 6925 .LBB539: 6926 .LBI539: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 6927 .loc 2 527 31 discriminator 1 view .LVU2289 6928 .LBB540: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 6929 .loc 2 529 4 discriminator 1 view .LVU2290 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6930 .loc 2 531 4 discriminator 1 view .LVU2291 6931 01d2 0C32 adds r2, r2, #12 6932 .LVL619: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 6933 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2292 6934 .syntax unified 6935 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 6936 01d4 42E80031 strex r1, r3, [r2] 6937 @ 0 "" 2 6938 .LVL620: ARM GAS /tmp/cc4vHZRy.s page 234 6939 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2293 6940 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2294 6941 .thumb 6942 .syntax unified 6943 .LBE540: 6944 .LBE539: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6945 .loc 1 2519 11 discriminator 1 view .LVU2295 6946 01d8 0029 cmp r1, #0 6947 01da F3D1 bne .L350 6948 .LBE536: 2519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6949 .loc 1 2519 11 is_stmt 1 discriminator 2 view .LVU2296 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6950 .loc 1 2522 11 discriminator 2 view .LVU2297 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6951 .loc 1 2522 17 is_stmt 0 discriminator 2 view .LVU2298 6952 01dc E06B ldr r0, [r4, #60] 6953 .LVL621: 2522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 6954 .loc 1 2522 17 discriminator 2 view .LVU2299 6955 01de FFF7FEFF bl HAL_DMA_Abort 6956 .LVL622: 6957 .L346: 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6958 .loc 1 2527 9 is_stmt 1 view .LVU2300 2527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6959 .loc 1 2527 28 is_stmt 0 view .LVU2301 6960 01e2 0223 movs r3, #2 6961 01e4 6363 str r3, [r4, #52] 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6962 .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 */ 6963 .loc 1 2534 49 is_stmt 0 view .LVU2303 6964 01e6 A18D ldrh r1, [r4, #44] 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6965 .loc 1 2534 69 view .LVU2304 6966 01e8 E38D ldrh r3, [r4, #46] 6967 01ea 9BB2 uxth r3, r3 2534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 6968 .loc 1 2534 9 view .LVU2305 6969 01ec C91A subs r1, r1, r3 6970 01ee 89B2 uxth r1, r1 6971 01f0 2046 mov r0, r4 6972 01f2 FFF7FEFF bl HAL_UARTEx_RxEventCallback 6973 .LVL623: 6974 01f6 2BE7 b .L326 6975 .LVL624: 6976 .L345: 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6977 .loc 1 2541 9 is_stmt 1 view .LVU2306 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6978 .loc 1 2541 42 is_stmt 0 view .LVU2307 6979 01f8 A18D ldrh r1, [r4, #44] 2541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6980 .loc 1 2541 12 view .LVU2308 6981 01fa 9942 cmp r1, r3 ARM GAS /tmp/cc4vHZRy.s page 235 6982 01fc 7FF428AF bne .L326 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6983 .loc 1 2543 11 is_stmt 1 view .LVU2309 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6984 .loc 1 2543 34 is_stmt 0 view .LVU2310 6985 0200 D369 ldr r3, [r2, #28] 6986 .LVL625: 2543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 6987 .loc 1 2543 14 view .LVU2311 6988 0202 B3F5807F cmp r3, #256 6989 0206 7FF423AF bne .L326 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6990 .loc 1 2547 13 is_stmt 1 view .LVU2312 2547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 6991 .loc 1 2547 32 is_stmt 0 view .LVU2313 6992 020a 0223 movs r3, #2 6993 020c 6363 str r3, [r4, #52] 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 6994 .loc 1 2554 13 is_stmt 1 view .LVU2314 6995 020e 2046 mov r0, r4 6996 .LVL626: 2554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ 6997 .loc 1 2554 13 is_stmt 0 view .LVU2315 6998 0210 FFF7FEFF bl HAL_UARTEx_RxEventCallback 6999 .LVL627: 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7000 .loc 1 2559 7 is_stmt 1 view .LVU2316 7001 0214 1CE7 b .L326 7002 .LVL628: 7003 .L344: 2559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7004 .loc 1 2559 7 is_stmt 0 view .LVU2317 7005 .LBE520: 7006 .LBB541: 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7007 .loc 1 2566 7 is_stmt 1 view .LVU2318 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7008 .loc 1 2566 34 is_stmt 0 view .LVU2319 7009 0216 A18D ldrh r1, [r4, #44] 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7010 .loc 1 2566 54 view .LVU2320 7011 0218 E38D ldrh r3, [r4, #46] 7012 021a 9BB2 uxth r3, r3 2566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** if ((huart->RxXferCount > 0U) 7013 .loc 1 2566 16 view .LVU2321 7014 021c C91A subs r1, r1, r3 7015 021e 89B2 uxth r1, r1 7016 .LVL629: 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7017 .loc 1 2567 7 is_stmt 1 view .LVU2322 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7018 .loc 1 2567 17 is_stmt 0 view .LVU2323 7019 0220 E38D ldrh r3, [r4, #46] 7020 0222 9BB2 uxth r3, r3 2567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** && (nb_rx_data > 0U)) 7021 .loc 1 2567 10 view .LVU2324 7022 0224 002B cmp r3, #0 ARM GAS /tmp/cc4vHZRy.s page 236 7023 0226 3FF413AF beq .L326 2568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7024 .loc 1 2568 11 view .LVU2325 7025 022a 0029 cmp r1, #0 7026 022c 3FF410AF beq .L326 7027 .LVL630: 7028 .L353: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7029 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2326 7030 .LBB542: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7031 .loc 1 2571 9 discriminator 1 view .LVU2327 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7032 .loc 1 2571 9 discriminator 1 view .LVU2328 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7033 .loc 1 2571 9 discriminator 1 view .LVU2329 7034 0230 2268 ldr r2, [r4] 7035 .LVL631: 7036 .LBB543: 7037 .LBI543: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7038 .loc 2 476 31 discriminator 1 view .LVU2330 7039 .LBB544: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7040 .loc 2 478 5 discriminator 1 view .LVU2331 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7041 .loc 2 480 4 discriminator 1 view .LVU2332 7042 0232 02F10C03 add r3, r2, #12 7043 .LVL632: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7044 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2333 7045 .syntax unified 7046 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7047 0236 53E8003F ldrex r3, [r3] 7048 @ 0 "" 2 7049 .LVL633: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7050 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2334 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7051 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2335 7052 .thumb 7053 .syntax unified 7054 .LBE544: 7055 .LBE543: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7056 .loc 1 2571 9 discriminator 1 view .LVU2336 7057 023a 23F49073 bic r3, r3, #288 7058 .LVL634: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7059 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2337 7060 .LBB545: 7061 .LBI545: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7062 .loc 2 527 31 discriminator 1 view .LVU2338 7063 .LBB546: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7064 .loc 2 529 4 discriminator 1 view .LVU2339 ARM GAS /tmp/cc4vHZRy.s page 237 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7065 .loc 2 531 4 discriminator 1 view .LVU2340 7066 023e 0C32 adds r2, r2, #12 7067 .LVL635: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7068 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2341 7069 .syntax unified 7070 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7071 0240 42E80030 strex r0, r3, [r2] 7072 @ 0 "" 2 7073 .LVL636: 7074 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2342 7075 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2343 7076 .thumb 7077 .syntax unified 7078 .LBE546: 7079 .LBE545: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7080 .loc 1 2571 9 discriminator 1 view .LVU2344 7081 0244 0028 cmp r0, #0 7082 0246 F3D1 bne .L353 7083 .LVL637: 7084 .L354: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7085 .loc 1 2571 9 discriminator 1 view .LVU2345 7086 .LBE542: 2571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7087 .loc 1 2571 9 is_stmt 1 discriminator 1 view .LVU2346 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7088 .loc 1 2574 9 discriminator 1 view .LVU2347 7089 .LBB547: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7090 .loc 1 2574 9 discriminator 1 view .LVU2348 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7091 .loc 1 2574 9 discriminator 1 view .LVU2349 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7092 .loc 1 2574 9 discriminator 1 view .LVU2350 7093 0248 2268 ldr r2, [r4] 7094 .LVL638: 7095 .LBB548: 7096 .LBI548: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7097 .loc 2 476 31 discriminator 1 view .LVU2351 7098 .LBB549: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7099 .loc 2 478 5 discriminator 1 view .LVU2352 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7100 .loc 2 480 4 discriminator 1 view .LVU2353 7101 024a 02F11403 add r3, r2, #20 7102 .LVL639: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7103 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2354 7104 .syntax unified 7105 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7106 024e 53E8003F ldrex r3, [r3] 7107 @ 0 "" 2 7108 .LVL640: ARM GAS /tmp/cc4vHZRy.s page 238 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7109 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2355 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7110 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2356 7111 .thumb 7112 .syntax unified 7113 .LBE549: 7114 .LBE548: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7115 .loc 1 2574 9 discriminator 1 view .LVU2357 7116 0252 23F00103 bic r3, r3, #1 7117 .LVL641: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7118 .loc 1 2574 9 is_stmt 1 discriminator 1 view .LVU2358 7119 .LBB550: 7120 .LBI550: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7121 .loc 2 527 31 discriminator 1 view .LVU2359 7122 .LBB551: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7123 .loc 2 529 4 discriminator 1 view .LVU2360 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7124 .loc 2 531 4 discriminator 1 view .LVU2361 7125 0256 1432 adds r2, r2, #20 7126 .LVL642: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7127 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2362 7128 .syntax unified 7129 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7130 0258 42E80030 strex r0, r3, [r2] 7131 @ 0 "" 2 7132 .LVL643: 7133 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2363 7134 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2364 7135 .thumb 7136 .syntax unified 7137 .LBE551: 7138 .LBE550: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7139 .loc 1 2574 9 discriminator 1 view .LVU2365 7140 025c 0028 cmp r0, #0 7141 025e F3D1 bne .L354 7142 .LBE547: 2574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7143 .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; 7144 .loc 1 2577 9 discriminator 2 view .LVU2367 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7145 .loc 1 2577 24 is_stmt 0 discriminator 2 view .LVU2368 7146 0260 2023 movs r3, #32 7147 .LVL644: 2577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->ReceptionType = HAL_UART_RECEPTION_STANDARD; 7148 .loc 1 2577 24 discriminator 2 view .LVU2369 7149 0262 84F84230 strb r3, [r4, #66] 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7150 .loc 1 2578 9 is_stmt 1 discriminator 2 view .LVU2370 2578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 239 7151 .loc 1 2578 30 is_stmt 0 discriminator 2 view .LVU2371 7152 0266 0023 movs r3, #0 7153 0268 2363 str r3, [r4, #48] 7154 .L355: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7155 .loc 1 2580 9 is_stmt 1 discriminator 1 view .LVU2372 7156 .LBB552: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7157 .loc 1 2580 9 discriminator 1 view .LVU2373 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7158 .loc 1 2580 9 discriminator 1 view .LVU2374 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7159 .loc 1 2580 9 discriminator 1 view .LVU2375 7160 026a 2268 ldr r2, [r4] 7161 .LVL645: 7162 .LBB553: 7163 .LBI553: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7164 .loc 2 476 31 discriminator 1 view .LVU2376 7165 .LBB554: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7166 .loc 2 478 5 discriminator 1 view .LVU2377 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7167 .loc 2 480 4 discriminator 1 view .LVU2378 7168 026c 02F10C03 add r3, r2, #12 7169 .LVL646: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7170 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2379 7171 .syntax unified 7172 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7173 0270 53E8003F ldrex r3, [r3] 7174 @ 0 "" 2 7175 .LVL647: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7176 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2380 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7177 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2381 7178 .thumb 7179 .syntax unified 7180 .LBE554: 7181 .LBE553: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7182 .loc 1 2580 9 discriminator 1 view .LVU2382 7183 0274 23F01003 bic r3, r3, #16 7184 .LVL648: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7185 .loc 1 2580 9 is_stmt 1 discriminator 1 view .LVU2383 7186 .LBB555: 7187 .LBI555: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7188 .loc 2 527 31 discriminator 1 view .LVU2384 7189 .LBB556: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7190 .loc 2 529 4 discriminator 1 view .LVU2385 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7191 .loc 2 531 4 discriminator 1 view .LVU2386 7192 0278 0C32 adds r2, r2, #12 ARM GAS /tmp/cc4vHZRy.s page 240 7193 .LVL649: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7194 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2387 7195 .syntax unified 7196 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7197 027a 42E80030 strex r0, r3, [r2] 7198 @ 0 "" 2 7199 .LVL650: 7200 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2388 7201 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2389 7202 .thumb 7203 .syntax unified 7204 .LBE556: 7205 .LBE555: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7206 .loc 1 2580 9 discriminator 1 view .LVU2390 7207 027e 0028 cmp r0, #0 7208 0280 F3D1 bne .L355 7209 .LBE552: 2580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7210 .loc 1 2580 9 is_stmt 1 discriminator 2 view .LVU2391 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7211 .loc 1 2584 9 discriminator 2 view .LVU2392 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7212 .loc 1 2584 28 is_stmt 0 discriminator 2 view .LVU2393 7213 0282 0223 movs r3, #2 7214 .LVL651: 2584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7215 .loc 1 2584 28 discriminator 2 view .LVU2394 7216 0284 6363 str r3, [r4, #52] 2591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7217 .loc 1 2591 9 is_stmt 1 discriminator 2 view .LVU2395 7218 0286 2046 mov r0, r4 7219 0288 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7220 .LVL652: 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7221 .loc 1 2594 7 discriminator 2 view .LVU2396 7222 028c E0E6 b .L326 7223 .LVL653: 7224 .L360: 2594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7225 .loc 1 2594 7 is_stmt 0 discriminator 2 view .LVU2397 7226 .LBE541: 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7227 .loc 1 2601 5 is_stmt 1 view .LVU2398 7228 028e 2046 mov r0, r4 7229 .LVL654: 2601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7230 .loc 1 2601 5 is_stmt 0 view .LVU2399 7231 0290 FFF7FEFF bl UART_Transmit_IT 7232 .LVL655: 2602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7233 .loc 1 2602 5 is_stmt 1 view .LVU2400 7234 0294 DCE6 b .L326 7235 .LVL656: 7236 .L361: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; ARM GAS /tmp/cc4vHZRy.s page 241 7237 .loc 1 2608 5 view .LVU2401 7238 0296 2046 mov r0, r4 7239 .LVL657: 2608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return; 7240 .loc 1 2608 5 is_stmt 0 view .LVU2402 7241 0298 FFF7FEFF bl UART_EndTransmit_IT 7242 .LVL658: 2609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7243 .loc 1 2609 5 is_stmt 1 view .LVU2403 7244 029c D8E6 b .L326 7245 .L364: 7246 029e 00BF .align 2 7247 .L363: 7248 02a0 00000000 .word UART_DMAAbortOnError 7249 .cfi_endproc 7250 .LFE160: 7252 .section .text.UART_DMARxHalfCplt,"ax",%progbits 7253 .align 1 7254 .syntax unified 7255 .thumb 7256 .thumb_func 7258 UART_DMARxHalfCplt: 7259 .LVL659: 7260 .LFB180: 3132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7261 .loc 1 3132 1 view -0 7262 .cfi_startproc 7263 @ args = 0, pretend = 0, frame = 0 7264 @ 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; 7265 .loc 1 3132 1 is_stmt 0 view .LVU2405 7266 0000 08B5 push {r3, lr} 7267 .LCFI56: 7268 .cfi_def_cfa_offset 8 7269 .cfi_offset 3, -8 7270 .cfi_offset 14, -4 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7271 .loc 1 3133 3 is_stmt 1 view .LVU2406 3133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7272 .loc 1 3133 23 is_stmt 0 view .LVU2407 7273 0002 806B ldr r0, [r0, #56] 7274 .LVL660: 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7275 .loc 1 3137 3 is_stmt 1 view .LVU2408 3137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7276 .loc 1 3137 22 is_stmt 0 view .LVU2409 7277 0004 0123 movs r3, #1 7278 0006 4363 str r3, [r0, #52] 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7279 .loc 1 3141 3 is_stmt 1 view .LVU2410 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7280 .loc 1 3141 12 is_stmt 0 view .LVU2411 7281 0008 036B ldr r3, [r0, #48] 3141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7282 .loc 1 3141 6 view .LVU2412 7283 000a 012B cmp r3, #1 7284 000c 02D0 beq .L369 ARM GAS /tmp/cc4vHZRy.s page 242 3159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7285 .loc 1 3159 5 is_stmt 1 view .LVU2413 7286 000e FFF7FEFF bl HAL_UART_RxHalfCpltCallback 7287 .LVL661: 7288 .L365: 3162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7289 .loc 1 3162 1 is_stmt 0 view .LVU2414 7290 0012 08BD pop {r3, pc} 7291 .LVL662: 7292 .L369: 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7293 .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 */ 7294 .loc 1 3148 44 is_stmt 0 view .LVU2416 7295 0014 818D ldrh r1, [r0, #44] 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7296 .loc 1 3148 5 view .LVU2417 7297 0016 4908 lsrs r1, r1, #1 7298 0018 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7299 .LVL663: 3148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7300 .loc 1 3148 5 view .LVU2418 7301 001c F9E7 b .L365 7302 .cfi_endproc 7303 .LFE180: 7305 .section .text.UART_DMAReceiveCplt,"ax",%progbits 7306 .align 1 7307 .syntax unified 7308 .thumb 7309 .thumb_func 7311 UART_DMAReceiveCplt: 7312 .LVL664: 7313 .LFB179: 3070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** UART_HandleTypeDef *huart = (UART_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 7314 .loc 1 3070 1 is_stmt 1 view -0 7315 .cfi_startproc 7316 @ args = 0, pretend = 0, frame = 0 7317 @ 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; 7318 .loc 1 3070 1 is_stmt 0 view .LVU2420 7319 0000 08B5 push {r3, lr} 7320 .LCFI57: 7321 .cfi_def_cfa_offset 8 7322 .cfi_offset 3, -8 7323 .cfi_offset 14, -4 7324 0002 0346 mov r3, r0 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7325 .loc 1 3071 3 is_stmt 1 view .LVU2421 3071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7326 .loc 1 3071 23 is_stmt 0 view .LVU2422 7327 0004 806B ldr r0, [r0, #56] 7328 .LVL665: 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7329 .loc 1 3074 3 is_stmt 1 view .LVU2423 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7330 .loc 1 3074 12 is_stmt 0 view .LVU2424 7331 0006 1B68 ldr r3, [r3] ARM GAS /tmp/cc4vHZRy.s page 243 7332 .LVL666: 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7333 .loc 1 3074 22 view .LVU2425 7334 0008 1B68 ldr r3, [r3] 3074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7335 .loc 1 3074 6 view .LVU2426 7336 000a 13F4807F tst r3, #256 7337 000e 2BD1 bne .L371 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7338 .loc 1 3076 5 is_stmt 1 view .LVU2427 3076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7339 .loc 1 3076 24 is_stmt 0 view .LVU2428 7340 0010 0023 movs r3, #0 7341 0012 C385 strh r3, [r0, #46] @ movhi 7342 .L372: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7343 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2429 7344 .LBB557: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7345 .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); 7346 .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); 7347 .loc 1 3079 5 discriminator 1 view .LVU2432 7348 0014 0268 ldr r2, [r0] 7349 .LVL667: 7350 .LBB558: 7351 .LBI558: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7352 .loc 2 476 31 discriminator 1 view .LVU2433 7353 .LBB559: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7354 .loc 2 478 5 discriminator 1 view .LVU2434 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7355 .loc 2 480 4 discriminator 1 view .LVU2435 7356 0016 02F10C03 add r3, r2, #12 7357 .LVL668: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7358 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2436 7359 .syntax unified 7360 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7361 001a 53E8003F ldrex r3, [r3] 7362 @ 0 "" 2 7363 .LVL669: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7364 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2437 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7365 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2438 7366 .thumb 7367 .syntax unified 7368 .LBE559: 7369 .LBE558: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7370 .loc 1 3079 5 discriminator 1 view .LVU2439 7371 001e 23F48073 bic r3, r3, #256 7372 .LVL670: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); ARM GAS /tmp/cc4vHZRy.s page 244 7373 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2440 7374 .LBB560: 7375 .LBI560: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7376 .loc 2 527 31 discriminator 1 view .LVU2441 7377 .LBB561: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7378 .loc 2 529 4 discriminator 1 view .LVU2442 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7379 .loc 2 531 4 discriminator 1 view .LVU2443 7380 0022 0C32 adds r2, r2, #12 7381 .LVL671: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7382 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2444 7383 .syntax unified 7384 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7385 0024 42E80031 strex r1, r3, [r2] 7386 @ 0 "" 2 7387 .LVL672: 7388 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2445 7389 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2446 7390 .thumb 7391 .syntax unified 7392 .LBE561: 7393 .LBE560: 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 .LVU2447 7395 0028 0029 cmp r1, #0 7396 002a F3D1 bne .L372 7397 .LVL673: 7398 .L373: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7399 .loc 1 3079 5 discriminator 1 view .LVU2448 7400 .LBE557: 3079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); 7401 .loc 1 3079 5 is_stmt 1 discriminator 1 view .LVU2449 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7402 .loc 1 3080 5 discriminator 1 view .LVU2450 7403 .LBB562: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7404 .loc 1 3080 5 discriminator 1 view .LVU2451 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7405 .loc 1 3080 5 discriminator 1 view .LVU2452 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7406 .loc 1 3080 5 discriminator 1 view .LVU2453 7407 002c 0268 ldr r2, [r0] 7408 .LVL674: 7409 .LBB563: 7410 .LBI563: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7411 .loc 2 476 31 discriminator 1 view .LVU2454 7412 .LBB564: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7413 .loc 2 478 5 discriminator 1 view .LVU2455 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7414 .loc 2 480 4 discriminator 1 view .LVU2456 7415 002e 02F11403 add r3, r2, #20 ARM GAS /tmp/cc4vHZRy.s page 245 7416 .LVL675: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7417 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2457 7418 .syntax unified 7419 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7420 0032 53E8003F ldrex r3, [r3] 7421 @ 0 "" 2 7422 .LVL676: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7423 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2458 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7424 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2459 7425 .thumb 7426 .syntax unified 7427 .LBE564: 7428 .LBE563: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7429 .loc 1 3080 5 discriminator 1 view .LVU2460 7430 0036 23F00103 bic r3, r3, #1 7431 .LVL677: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7432 .loc 1 3080 5 is_stmt 1 discriminator 1 view .LVU2461 7433 .LBB565: 7434 .LBI565: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7435 .loc 2 527 31 discriminator 1 view .LVU2462 7436 .LBB566: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7437 .loc 2 529 4 discriminator 1 view .LVU2463 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7438 .loc 2 531 4 discriminator 1 view .LVU2464 7439 003a 1432 adds r2, r2, #20 7440 .LVL678: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7441 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2465 7442 .syntax unified 7443 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7444 003c 42E80031 strex r1, r3, [r2] 7445 @ 0 "" 2 7446 .LVL679: 7447 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2466 7448 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2467 7449 .thumb 7450 .syntax unified 7451 .LBE566: 7452 .LBE565: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7453 .loc 1 3080 5 discriminator 1 view .LVU2468 7454 0040 0029 cmp r1, #0 7455 0042 F3D1 bne .L373 7456 .LVL680: 7457 .L374: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7458 .loc 1 3080 5 discriminator 1 view .LVU2469 7459 .LBE562: 3080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7460 .loc 1 3080 5 is_stmt 1 discriminator 1 view .LVU2470 ARM GAS /tmp/cc4vHZRy.s page 246 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7461 .loc 1 3084 5 discriminator 1 view .LVU2471 7462 .LBB567: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7463 .loc 1 3084 5 discriminator 1 view .LVU2472 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7464 .loc 1 3084 5 discriminator 1 view .LVU2473 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7465 .loc 1 3084 5 discriminator 1 view .LVU2474 7466 0044 0268 ldr r2, [r0] 7467 .LVL681: 7468 .LBB568: 7469 .LBI568: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7470 .loc 2 476 31 discriminator 1 view .LVU2475 7471 .LBB569: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7472 .loc 2 478 5 discriminator 1 view .LVU2476 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7473 .loc 2 480 4 discriminator 1 view .LVU2477 7474 0046 02F11403 add r3, r2, #20 7475 .LVL682: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7476 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2478 7477 .syntax unified 7478 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7479 004a 53E8003F ldrex r3, [r3] 7480 @ 0 "" 2 7481 .LVL683: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7482 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2479 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7483 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2480 7484 .thumb 7485 .syntax unified 7486 .LBE569: 7487 .LBE568: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7488 .loc 1 3084 5 discriminator 1 view .LVU2481 7489 004e 23F04003 bic r3, r3, #64 7490 .LVL684: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7491 .loc 1 3084 5 is_stmt 1 discriminator 1 view .LVU2482 7492 .LBB570: 7493 .LBI570: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7494 .loc 2 527 31 discriminator 1 view .LVU2483 7495 .LBB571: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7496 .loc 2 529 4 discriminator 1 view .LVU2484 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7497 .loc 2 531 4 discriminator 1 view .LVU2485 7498 0052 1432 adds r2, r2, #20 7499 .LVL685: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7500 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2486 7501 .syntax unified ARM GAS /tmp/cc4vHZRy.s page 247 7502 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7503 0054 42E80031 strex r1, r3, [r2] 7504 @ 0 "" 2 7505 .LVL686: 7506 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2487 7507 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2488 7508 .thumb 7509 .syntax unified 7510 .LBE571: 7511 .LBE570: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7512 .loc 1 3084 5 discriminator 1 view .LVU2489 7513 0058 0029 cmp r1, #0 7514 005a F3D1 bne .L374 7515 .LBE567: 3084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7516 .loc 1 3084 5 is_stmt 1 discriminator 2 view .LVU2490 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7517 .loc 1 3087 5 discriminator 2 view .LVU2491 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7518 .loc 1 3087 20 is_stmt 0 discriminator 2 view .LVU2492 7519 005c 2023 movs r3, #32 7520 .LVL687: 3087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7521 .loc 1 3087 20 discriminator 2 view .LVU2493 7522 005e 80F84230 strb r3, [r0, #66] 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7523 .loc 1 3090 5 is_stmt 1 discriminator 2 view .LVU2494 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7524 .loc 1 3090 14 is_stmt 0 discriminator 2 view .LVU2495 7525 0062 036B ldr r3, [r0, #48] 3090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7526 .loc 1 3090 8 discriminator 2 view .LVU2496 7527 0064 012B cmp r3, #1 7528 0066 07D0 beq .L375 7529 .L371: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7530 .loc 1 3092 7 is_stmt 1 discriminator 2 view .LVU2497 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7531 .loc 1 3098 3 discriminator 2 view .LVU2498 3098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7532 .loc 1 3098 22 is_stmt 0 discriminator 2 view .LVU2499 7533 0068 0023 movs r3, #0 7534 006a 4363 str r3, [r0, #52] 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7535 .loc 1 3102 3 is_stmt 1 discriminator 2 view .LVU2500 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7536 .loc 1 3102 12 is_stmt 0 discriminator 2 view .LVU2501 7537 006c 036B ldr r3, [r0, #48] 3102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 7538 .loc 1 3102 6 discriminator 2 view .LVU2502 7539 006e 012B cmp r3, #1 7540 0070 0FD0 beq .L379 3120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7541 .loc 1 3120 5 is_stmt 1 view .LVU2503 7542 0072 FFF7FEFF bl HAL_UART_RxCpltCallback 7543 .LVL688: ARM GAS /tmp/cc4vHZRy.s page 248 7544 .L370: 3123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7545 .loc 1 3123 1 is_stmt 0 view .LVU2504 7546 0076 08BD pop {r3, pc} 7547 .LVL689: 7548 .L375: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7549 .loc 1 3092 7 is_stmt 1 discriminator 1 view .LVU2505 7550 .LBB572: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7551 .loc 1 3092 7 discriminator 1 view .LVU2506 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7552 .loc 1 3092 7 discriminator 1 view .LVU2507 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7553 .loc 1 3092 7 discriminator 1 view .LVU2508 7554 0078 0268 ldr r2, [r0] 7555 .LVL690: 7556 .LBB573: 7557 .LBI573: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7558 .loc 2 476 31 discriminator 1 view .LVU2509 7559 .LBB574: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7560 .loc 2 478 5 discriminator 1 view .LVU2510 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7561 .loc 2 480 4 discriminator 1 view .LVU2511 7562 007a 02F10C03 add r3, r2, #12 7563 .LVL691: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7564 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2512 7565 .syntax unified 7566 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7567 007e 53E8003F ldrex r3, [r3] 7568 @ 0 "" 2 7569 .LVL692: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7570 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2513 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7571 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2514 7572 .thumb 7573 .syntax unified 7574 .LBE574: 7575 .LBE573: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7576 .loc 1 3092 7 discriminator 1 view .LVU2515 7577 0082 23F01003 bic r3, r3, #16 7578 .LVL693: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7579 .loc 1 3092 7 is_stmt 1 discriminator 1 view .LVU2516 7580 .LBB575: 7581 .LBI575: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7582 .loc 2 527 31 discriminator 1 view .LVU2517 7583 .LBB576: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7584 .loc 2 529 4 discriminator 1 view .LVU2518 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); ARM GAS /tmp/cc4vHZRy.s page 249 7585 .loc 2 531 4 discriminator 1 view .LVU2519 7586 0086 0C32 adds r2, r2, #12 7587 .LVL694: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7588 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2520 7589 .syntax unified 7590 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7591 0088 42E80031 strex r1, r3, [r2] 7592 @ 0 "" 2 7593 .LVL695: 7594 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2521 7595 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2522 7596 .thumb 7597 .syntax unified 7598 .LBE576: 7599 .LBE575: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7600 .loc 1 3092 7 discriminator 1 view .LVU2523 7601 008c 0029 cmp r1, #0 7602 008e F3D1 bne .L375 7603 0090 EAE7 b .L371 7604 .LVL696: 7605 .L379: 3092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7606 .loc 1 3092 7 discriminator 1 view .LVU2524 7607 .LBE572: 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7608 .loc 1 3109 5 is_stmt 1 view .LVU2525 7609 0092 818D ldrh r1, [r0, #44] 7610 0094 FFF7FEFF bl HAL_UARTEx_RxEventCallback 7611 .LVL697: 3109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ 7612 .loc 1 3109 5 is_stmt 0 view .LVU2526 7613 0098 EDE7 b .L370 7614 .cfi_endproc 7615 .LFE179: 7617 .section .text.HAL_LIN_SendBreak,"ax",%progbits 7618 .align 1 7619 .global HAL_LIN_SendBreak 7620 .syntax unified 7621 .thumb 7622 .thumb_func 7624 HAL_LIN_SendBreak: 7625 .LVL698: 7626 .LFB170: 2781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7627 .loc 1 2781 1 is_stmt 1 view -0 7628 .cfi_startproc 7629 @ args = 0, pretend = 0, frame = 0 7630 @ frame_needed = 0, uses_anonymous_args = 0 7631 @ link register save eliminated. 2783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7632 .loc 1 2783 3 view .LVU2528 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7633 .loc 1 2786 3 view .LVU2529 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7634 .loc 1 2786 3 view .LVU2530 ARM GAS /tmp/cc4vHZRy.s page 250 7635 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7636 0004 012B cmp r3, #1 7637 0006 19D0 beq .L383 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7638 .loc 1 2786 3 discriminator 2 view .LVU2531 7639 0008 0123 movs r3, #1 7640 000a 80F84030 strb r3, [r0, #64] 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7641 .loc 1 2786 3 discriminator 2 view .LVU2532 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7642 .loc 1 2788 3 discriminator 2 view .LVU2533 2788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7643 .loc 1 2788 17 is_stmt 0 discriminator 2 view .LVU2534 7644 000e 2423 movs r3, #36 7645 0010 80F84130 strb r3, [r0, #65] 7646 .L382: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7647 .loc 1 2791 3 is_stmt 1 discriminator 1 view .LVU2535 7648 .LBB577: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7649 .loc 1 2791 3 discriminator 1 view .LVU2536 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7650 .loc 1 2791 3 discriminator 1 view .LVU2537 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7651 .loc 1 2791 3 discriminator 1 view .LVU2538 7652 0014 0268 ldr r2, [r0] 7653 .LVL699: 7654 .LBB578: 7655 .LBI578: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7656 .loc 2 476 31 discriminator 1 view .LVU2539 7657 .LBB579: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7658 .loc 2 478 5 discriminator 1 view .LVU2540 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7659 .loc 2 480 4 discriminator 1 view .LVU2541 7660 0016 02F10C03 add r3, r2, #12 7661 .LVL700: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7662 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2542 7663 .syntax unified 7664 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7665 001a 53E8003F ldrex r3, [r3] 7666 @ 0 "" 2 7667 .LVL701: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7668 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2543 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7669 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2544 7670 .thumb 7671 .syntax unified 7672 .LBE579: 7673 .LBE578: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7674 .loc 1 2791 3 discriminator 1 view .LVU2545 7675 001e 43F00103 orr r3, r3, #1 7676 .LVL702: ARM GAS /tmp/cc4vHZRy.s page 251 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7677 .loc 1 2791 3 is_stmt 1 discriminator 1 view .LVU2546 7678 .LBB580: 7679 .LBI580: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7680 .loc 2 527 31 discriminator 1 view .LVU2547 7681 .LBB581: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7682 .loc 2 529 4 discriminator 1 view .LVU2548 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7683 .loc 2 531 4 discriminator 1 view .LVU2549 7684 0022 0C32 adds r2, r2, #12 7685 .LVL703: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7686 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2550 7687 .syntax unified 7688 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7689 0024 42E80031 strex r1, r3, [r2] 7690 @ 0 "" 2 7691 .LVL704: 7692 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2551 7693 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2552 7694 .thumb 7695 .syntax unified 7696 .LBE581: 7697 .LBE580: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7698 .loc 1 2791 3 discriminator 1 view .LVU2553 7699 0028 0029 cmp r1, #0 7700 002a F3D1 bne .L382 7701 .LBE577: 2791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7702 .loc 1 2791 3 is_stmt 1 discriminator 2 view .LVU2554 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7703 .loc 1 2793 3 discriminator 2 view .LVU2555 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7704 .loc 1 2793 17 is_stmt 0 discriminator 2 view .LVU2556 7705 002c 2023 movs r3, #32 7706 .LVL705: 2793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7707 .loc 1 2793 17 discriminator 2 view .LVU2557 7708 002e 80F84130 strb r3, [r0, #65] 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7709 .loc 1 2796 3 is_stmt 1 discriminator 2 view .LVU2558 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7710 .loc 1 2796 3 discriminator 2 view .LVU2559 7711 0032 0023 movs r3, #0 7712 0034 80F84030 strb r3, [r0, #64] 2796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7713 .loc 1 2796 3 discriminator 2 view .LVU2560 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7714 .loc 1 2798 3 discriminator 2 view .LVU2561 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7715 .loc 1 2798 10 is_stmt 0 discriminator 2 view .LVU2562 7716 0038 1846 mov r0, r3 7717 .LVL706: 2798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 252 7718 .loc 1 2798 10 discriminator 2 view .LVU2563 7719 003a 7047 bx lr 7720 .LVL707: 7721 .L383: 2786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7722 .loc 1 2786 3 view .LVU2564 7723 003c 0220 movs r0, #2 7724 .LVL708: 2799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7725 .loc 1 2799 1 view .LVU2565 7726 003e 7047 bx lr 7727 .cfi_endproc 7728 .LFE170: 7730 .section .text.HAL_MultiProcessor_EnterMuteMode,"ax",%progbits 7731 .align 1 7732 .global HAL_MultiProcessor_EnterMuteMode 7733 .syntax unified 7734 .thumb 7735 .thumb_func 7737 HAL_MultiProcessor_EnterMuteMode: 7738 .LVL709: 7739 .LFB171: 2808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7740 .loc 1 2808 1 is_stmt 1 view -0 7741 .cfi_startproc 7742 @ args = 0, pretend = 0, frame = 0 7743 @ frame_needed = 0, uses_anonymous_args = 0 7744 @ link register save eliminated. 2810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7745 .loc 1 2810 3 view .LVU2567 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7746 .loc 1 2813 3 view .LVU2568 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7747 .loc 1 2813 3 view .LVU2569 7748 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7749 0004 012B cmp r3, #1 7750 0006 1AD0 beq .L387 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7751 .loc 1 2813 3 discriminator 2 view .LVU2570 7752 0008 0123 movs r3, #1 7753 000a 80F84030 strb r3, [r0, #64] 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7754 .loc 1 2813 3 discriminator 2 view .LVU2571 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7755 .loc 1 2815 3 discriminator 2 view .LVU2572 2815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7756 .loc 1 2815 17 is_stmt 0 discriminator 2 view .LVU2573 7757 000e 2423 movs r3, #36 7758 0010 80F84130 strb r3, [r0, #65] 7759 .L386: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7760 .loc 1 2818 3 is_stmt 1 discriminator 1 view .LVU2574 7761 .LBB582: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7762 .loc 1 2818 3 discriminator 1 view .LVU2575 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7763 .loc 1 2818 3 discriminator 1 view .LVU2576 ARM GAS /tmp/cc4vHZRy.s page 253 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7764 .loc 1 2818 3 discriminator 1 view .LVU2577 7765 0014 0268 ldr r2, [r0] 7766 .LVL710: 7767 .LBB583: 7768 .LBI583: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7769 .loc 2 476 31 discriminator 1 view .LVU2578 7770 .LBB584: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7771 .loc 2 478 5 discriminator 1 view .LVU2579 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7772 .loc 2 480 4 discriminator 1 view .LVU2580 7773 0016 02F10C03 add r3, r2, #12 7774 .LVL711: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7775 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2581 7776 .syntax unified 7777 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7778 001a 53E8003F ldrex r3, [r3] 7779 @ 0 "" 2 7780 .LVL712: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7781 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2582 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7782 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2583 7783 .thumb 7784 .syntax unified 7785 .LBE584: 7786 .LBE583: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7787 .loc 1 2818 3 discriminator 1 view .LVU2584 7788 001e 43F00203 orr r3, r3, #2 7789 .LVL713: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7790 .loc 1 2818 3 is_stmt 1 discriminator 1 view .LVU2585 7791 .LBB585: 7792 .LBI585: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7793 .loc 2 527 31 discriminator 1 view .LVU2586 7794 .LBB586: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7795 .loc 2 529 4 discriminator 1 view .LVU2587 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7796 .loc 2 531 4 discriminator 1 view .LVU2588 7797 0022 0C32 adds r2, r2, #12 7798 .LVL714: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7799 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2589 7800 .syntax unified 7801 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7802 0024 42E80031 strex r1, r3, [r2] 7803 @ 0 "" 2 7804 .LVL715: 7805 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2590 7806 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2591 7807 .thumb ARM GAS /tmp/cc4vHZRy.s page 254 7808 .syntax unified 7809 .LBE586: 7810 .LBE585: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7811 .loc 1 2818 3 discriminator 1 view .LVU2592 7812 0028 0029 cmp r1, #0 7813 002a F3D1 bne .L386 7814 .LBE582: 2818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7815 .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; 7816 .loc 1 2820 3 discriminator 2 view .LVU2594 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7817 .loc 1 2820 17 is_stmt 0 discriminator 2 view .LVU2595 7818 002c 2023 movs r3, #32 7819 .LVL716: 2820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7820 .loc 1 2820 17 discriminator 2 view .LVU2596 7821 002e 80F84130 strb r3, [r0, #65] 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7822 .loc 1 2821 3 is_stmt 1 discriminator 2 view .LVU2597 2821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7823 .loc 1 2821 22 is_stmt 0 discriminator 2 view .LVU2598 7824 0032 0023 movs r3, #0 7825 0034 4363 str r3, [r0, #52] 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7826 .loc 1 2824 3 is_stmt 1 discriminator 2 view .LVU2599 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7827 .loc 1 2824 3 discriminator 2 view .LVU2600 7828 0036 80F84030 strb r3, [r0, #64] 2824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7829 .loc 1 2824 3 discriminator 2 view .LVU2601 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7830 .loc 1 2826 3 discriminator 2 view .LVU2602 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7831 .loc 1 2826 10 is_stmt 0 discriminator 2 view .LVU2603 7832 003a 1846 mov r0, r3 7833 .LVL717: 2826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7834 .loc 1 2826 10 discriminator 2 view .LVU2604 7835 003c 7047 bx lr 7836 .LVL718: 7837 .L387: 2813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7838 .loc 1 2813 3 view .LVU2605 7839 003e 0220 movs r0, #2 7840 .LVL719: 2827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7841 .loc 1 2827 1 view .LVU2606 7842 0040 7047 bx lr 7843 .cfi_endproc 7844 .LFE171: 7846 .section .text.HAL_MultiProcessor_ExitMuteMode,"ax",%progbits 7847 .align 1 7848 .global HAL_MultiProcessor_ExitMuteMode 7849 .syntax unified 7850 .thumb ARM GAS /tmp/cc4vHZRy.s page 255 7851 .thumb_func 7853 HAL_MultiProcessor_ExitMuteMode: 7854 .LVL720: 7855 .LFB172: 2836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check the parameters */ 7856 .loc 1 2836 1 is_stmt 1 view -0 7857 .cfi_startproc 7858 @ args = 0, pretend = 0, frame = 0 7859 @ frame_needed = 0, uses_anonymous_args = 0 7860 @ link register save eliminated. 2838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7861 .loc 1 2838 3 view .LVU2608 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7862 .loc 1 2841 3 view .LVU2609 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7863 .loc 1 2841 3 view .LVU2610 7864 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7865 0004 012B cmp r3, #1 7866 0006 1AD0 beq .L391 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7867 .loc 1 2841 3 discriminator 2 view .LVU2611 7868 0008 0123 movs r3, #1 7869 000a 80F84030 strb r3, [r0, #64] 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7870 .loc 1 2841 3 discriminator 2 view .LVU2612 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7871 .loc 1 2843 3 discriminator 2 view .LVU2613 2843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7872 .loc 1 2843 17 is_stmt 0 discriminator 2 view .LVU2614 7873 000e 2423 movs r3, #36 7874 0010 80F84130 strb r3, [r0, #65] 7875 .L390: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7876 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU2615 7877 .LBB587: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7878 .loc 1 2846 3 discriminator 1 view .LVU2616 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7879 .loc 1 2846 3 discriminator 1 view .LVU2617 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7880 .loc 1 2846 3 discriminator 1 view .LVU2618 7881 0014 0268 ldr r2, [r0] 7882 .LVL721: 7883 .LBB588: 7884 .LBI588: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7885 .loc 2 476 31 discriminator 1 view .LVU2619 7886 .LBB589: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 7887 .loc 2 478 5 discriminator 1 view .LVU2620 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7888 .loc 2 480 4 discriminator 1 view .LVU2621 7889 0016 02F10C03 add r3, r2, #12 7890 .LVL722: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7891 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2622 7892 .syntax unified ARM GAS /tmp/cc4vHZRy.s page 256 7893 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7894 001a 53E8003F ldrex r3, [r3] 7895 @ 0 "" 2 7896 .LVL723: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7897 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2623 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 7898 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2624 7899 .thumb 7900 .syntax unified 7901 .LBE589: 7902 .LBE588: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7903 .loc 1 2846 3 discriminator 1 view .LVU2625 7904 001e 23F00203 bic r3, r3, #2 7905 .LVL724: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7906 .loc 1 2846 3 is_stmt 1 discriminator 1 view .LVU2626 7907 .LBB590: 7908 .LBI590: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 7909 .loc 2 527 31 discriminator 1 view .LVU2627 7910 .LBB591: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 7911 .loc 2 529 4 discriminator 1 view .LVU2628 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7912 .loc 2 531 4 discriminator 1 view .LVU2629 7913 0022 0C32 adds r2, r2, #12 7914 .LVL725: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 7915 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2630 7916 .syntax unified 7917 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 7918 0024 42E80031 strex r1, r3, [r2] 7919 @ 0 "" 2 7920 .LVL726: 7921 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2631 7922 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2632 7923 .thumb 7924 .syntax unified 7925 .LBE591: 7926 .LBE590: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7927 .loc 1 2846 3 discriminator 1 view .LVU2633 7928 0028 0029 cmp r1, #0 7929 002a F3D1 bne .L390 7930 .LBE587: 2846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7931 .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; 7932 .loc 1 2848 3 discriminator 2 view .LVU2635 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7933 .loc 1 2848 17 is_stmt 0 discriminator 2 view .LVU2636 7934 002c 2023 movs r3, #32 7935 .LVL727: 2848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 7936 .loc 1 2848 17 discriminator 2 view .LVU2637 ARM GAS /tmp/cc4vHZRy.s page 257 7937 002e 80F84130 strb r3, [r0, #65] 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7938 .loc 1 2849 3 is_stmt 1 discriminator 2 view .LVU2638 2849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7939 .loc 1 2849 22 is_stmt 0 discriminator 2 view .LVU2639 7940 0032 0023 movs r3, #0 7941 0034 4363 str r3, [r0, #52] 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7942 .loc 1 2852 3 is_stmt 1 discriminator 2 view .LVU2640 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7943 .loc 1 2852 3 discriminator 2 view .LVU2641 7944 0036 80F84030 strb r3, [r0, #64] 2852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7945 .loc 1 2852 3 discriminator 2 view .LVU2642 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7946 .loc 1 2854 3 discriminator 2 view .LVU2643 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7947 .loc 1 2854 10 is_stmt 0 discriminator 2 view .LVU2644 7948 003a 1846 mov r0, r3 7949 .LVL728: 2854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 7950 .loc 1 2854 10 discriminator 2 view .LVU2645 7951 003c 7047 bx lr 7952 .LVL729: 7953 .L391: 2841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7954 .loc 1 2841 3 view .LVU2646 7955 003e 0220 movs r0, #2 7956 .LVL730: 2855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7957 .loc 1 2855 1 view .LVU2647 7958 0040 7047 bx lr 7959 .cfi_endproc 7960 .LFE172: 7962 .section .text.HAL_HalfDuplex_EnableTransmitter,"ax",%progbits 7963 .align 1 7964 .global HAL_HalfDuplex_EnableTransmitter 7965 .syntax unified 7966 .thumb 7967 .thumb_func 7969 HAL_HalfDuplex_EnableTransmitter: 7970 .LVL731: 7971 .LFB173: 2864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 7972 .loc 1 2864 1 is_stmt 1 view -0 7973 .cfi_startproc 7974 @ args = 0, pretend = 0, frame = 0 7975 @ frame_needed = 0, uses_anonymous_args = 0 7976 @ link register save eliminated. 2865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7977 .loc 1 2865 3 view .LVU2649 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7978 .loc 1 2868 3 view .LVU2650 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7979 .loc 1 2868 3 view .LVU2651 7980 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 7981 0004 012B cmp r3, #1 ARM GAS /tmp/cc4vHZRy.s page 258 7982 0006 14D0 beq .L394 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7983 .loc 1 2868 3 discriminator 2 view .LVU2652 7984 0008 0123 movs r3, #1 7985 000a 80F84030 strb r3, [r0, #64] 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7986 .loc 1 2868 3 discriminator 2 view .LVU2653 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7987 .loc 1 2870 3 discriminator 2 view .LVU2654 2870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7988 .loc 1 2870 17 is_stmt 0 discriminator 2 view .LVU2655 7989 000e 2423 movs r3, #36 7990 0010 80F84130 strb r3, [r0, #65] 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7991 .loc 1 2873 3 is_stmt 1 discriminator 2 view .LVU2656 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7992 .loc 1 2873 17 is_stmt 0 discriminator 2 view .LVU2657 7993 0014 0268 ldr r2, [r0] 2873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7994 .loc 1 2873 10 discriminator 2 view .LVU2658 7995 0016 D368 ldr r3, [r2, #12] 7996 .LVL732: 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7997 .loc 1 2876 3 is_stmt 1 discriminator 2 view .LVU2659 2876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 7998 .loc 1 2876 10 is_stmt 0 discriminator 2 view .LVU2660 7999 0018 23F00C03 bic r3, r3, #12 8000 .LVL733: 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8001 .loc 1 2879 3 is_stmt 1 discriminator 2 view .LVU2661 2879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8002 .loc 1 2879 10 is_stmt 0 discriminator 2 view .LVU2662 8003 001c 43F00803 orr r3, r3, #8 8004 .LVL734: 2882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8005 .loc 1 2882 3 is_stmt 1 discriminator 2 view .LVU2663 8006 0020 D360 str r3, [r2, #12] 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8007 .loc 1 2884 3 discriminator 2 view .LVU2664 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8008 .loc 1 2884 17 is_stmt 0 discriminator 2 view .LVU2665 8009 0022 2023 movs r3, #32 8010 .LVL735: 2884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8011 .loc 1 2884 17 discriminator 2 view .LVU2666 8012 0024 80F84130 strb r3, [r0, #65] 8013 .LVL736: 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8014 .loc 1 2887 3 is_stmt 1 discriminator 2 view .LVU2667 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8015 .loc 1 2887 3 discriminator 2 view .LVU2668 8016 0028 0023 movs r3, #0 8017 002a 80F84030 strb r3, [r0, #64] 2887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8018 .loc 1 2887 3 discriminator 2 view .LVU2669 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8019 .loc 1 2889 3 discriminator 2 view .LVU2670 ARM GAS /tmp/cc4vHZRy.s page 259 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8020 .loc 1 2889 10 is_stmt 0 discriminator 2 view .LVU2671 8021 002e 1846 mov r0, r3 8022 .LVL737: 2889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8023 .loc 1 2889 10 discriminator 2 view .LVU2672 8024 0030 7047 bx lr 8025 .LVL738: 8026 .L394: 2868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8027 .loc 1 2868 3 view .LVU2673 8028 0032 0220 movs r0, #2 8029 .LVL739: 2890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8030 .loc 1 2890 1 view .LVU2674 8031 0034 7047 bx lr 8032 .cfi_endproc 8033 .LFE173: 8035 .section .text.HAL_HalfDuplex_EnableReceiver,"ax",%progbits 8036 .align 1 8037 .global HAL_HalfDuplex_EnableReceiver 8038 .syntax unified 8039 .thumb 8040 .thumb_func 8042 HAL_HalfDuplex_EnableReceiver: 8043 .LVL740: 8044 .LFB174: 2899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t tmpreg = 0x00U; 8045 .loc 1 2899 1 is_stmt 1 view -0 8046 .cfi_startproc 8047 @ args = 0, pretend = 0, frame = 0 8048 @ frame_needed = 0, uses_anonymous_args = 0 8049 @ link register save eliminated. 2900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8050 .loc 1 2900 3 view .LVU2676 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8051 .loc 1 2903 3 view .LVU2677 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8052 .loc 1 2903 3 view .LVU2678 8053 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 8054 0004 012B cmp r3, #1 8055 0006 14D0 beq .L397 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8056 .loc 1 2903 3 discriminator 2 view .LVU2679 8057 0008 0123 movs r3, #1 8058 000a 80F84030 strb r3, [r0, #64] 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8059 .loc 1 2903 3 discriminator 2 view .LVU2680 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8060 .loc 1 2905 3 discriminator 2 view .LVU2681 2905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8061 .loc 1 2905 17 is_stmt 0 discriminator 2 view .LVU2682 8062 000e 2423 movs r3, #36 8063 0010 80F84130 strb r3, [r0, #65] 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8064 .loc 1 2908 3 is_stmt 1 discriminator 2 view .LVU2683 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ARM GAS /tmp/cc4vHZRy.s page 260 8065 .loc 1 2908 17 is_stmt 0 discriminator 2 view .LVU2684 8066 0014 0268 ldr r2, [r0] 2908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8067 .loc 1 2908 10 discriminator 2 view .LVU2685 8068 0016 D368 ldr r3, [r2, #12] 8069 .LVL741: 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8070 .loc 1 2911 3 is_stmt 1 discriminator 2 view .LVU2686 2911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8071 .loc 1 2911 10 is_stmt 0 discriminator 2 view .LVU2687 8072 0018 23F00C03 bic r3, r3, #12 8073 .LVL742: 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8074 .loc 1 2914 3 is_stmt 1 discriminator 2 view .LVU2688 2914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8075 .loc 1 2914 10 is_stmt 0 discriminator 2 view .LVU2689 8076 001c 43F00403 orr r3, r3, #4 8077 .LVL743: 2917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8078 .loc 1 2917 3 is_stmt 1 discriminator 2 view .LVU2690 8079 0020 D360 str r3, [r2, #12] 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8080 .loc 1 2919 3 discriminator 2 view .LVU2691 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8081 .loc 1 2919 17 is_stmt 0 discriminator 2 view .LVU2692 8082 0022 2023 movs r3, #32 8083 .LVL744: 2919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8084 .loc 1 2919 17 discriminator 2 view .LVU2693 8085 0024 80F84130 strb r3, [r0, #65] 8086 .LVL745: 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8087 .loc 1 2922 3 is_stmt 1 discriminator 2 view .LVU2694 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8088 .loc 1 2922 3 discriminator 2 view .LVU2695 8089 0028 0023 movs r3, #0 8090 002a 80F84030 strb r3, [r0, #64] 2922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8091 .loc 1 2922 3 discriminator 2 view .LVU2696 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8092 .loc 1 2924 3 discriminator 2 view .LVU2697 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8093 .loc 1 2924 10 is_stmt 0 discriminator 2 view .LVU2698 8094 002e 1846 mov r0, r3 8095 .LVL746: 2924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8096 .loc 1 2924 10 discriminator 2 view .LVU2699 8097 0030 7047 bx lr 8098 .LVL747: 8099 .L397: 2903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8100 .loc 1 2903 3 view .LVU2700 8101 0032 0220 movs r0, #2 8102 .LVL748: 2925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8103 .loc 1 2925 1 view .LVU2701 8104 0034 7047 bx lr ARM GAS /tmp/cc4vHZRy.s page 261 8105 .cfi_endproc 8106 .LFE174: 8108 .section .text.HAL_UART_GetState,"ax",%progbits 8109 .align 1 8110 .global HAL_UART_GetState 8111 .syntax unified 8112 .thumb 8113 .thumb_func 8115 HAL_UART_GetState: 8116 .LVL749: 8117 .LFB175: 2956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t temp1 = 0x00U, temp2 = 0x00U; 8118 .loc 1 2956 1 is_stmt 1 view -0 8119 .cfi_startproc 8120 @ args = 0, pretend = 0, frame = 0 8121 @ frame_needed = 0, uses_anonymous_args = 0 8122 @ link register save eliminated. 2957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp1 = huart->gState; 8123 .loc 1 2957 3 view .LVU2703 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 8124 .loc 1 2958 3 view .LVU2704 2958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** temp2 = huart->RxState; 8125 .loc 1 2958 16 is_stmt 0 view .LVU2705 8126 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 8127 .LVL750: 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8128 .loc 1 2959 3 is_stmt 1 view .LVU2706 2959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8129 .loc 1 2959 16 is_stmt 0 view .LVU2707 8130 0004 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 8131 .LVL751: 2961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8132 .loc 1 2961 3 is_stmt 1 view .LVU2708 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8133 .loc 1 2962 1 is_stmt 0 view .LVU2709 8134 0008 1843 orrs r0, r0, r3 8135 .LVL752: 2962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8136 .loc 1 2962 1 view .LVU2710 8137 000a 7047 bx lr 8138 .cfi_endproc 8139 .LFE175: 8141 .section .text.HAL_UART_GetError,"ax",%progbits 8142 .align 1 8143 .global HAL_UART_GetError 8144 .syntax unified 8145 .thumb 8146 .thumb_func 8148 HAL_UART_GetError: 8149 .LVL753: 8150 .LFB176: 2971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** return huart->ErrorCode; 8151 .loc 1 2971 1 is_stmt 1 view -0 8152 .cfi_startproc 8153 @ args = 0, pretend = 0, frame = 0 8154 @ frame_needed = 0, uses_anonymous_args = 0 8155 @ link register save eliminated. ARM GAS /tmp/cc4vHZRy.s page 262 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8156 .loc 1 2972 3 view .LVU2712 2972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8157 .loc 1 2972 15 is_stmt 0 view .LVU2713 8158 0000 406C ldr r0, [r0, #68] 8159 .LVL754: 2973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8160 .loc 1 2973 1 view .LVU2714 8161 0002 7047 bx lr 8162 .cfi_endproc 8163 .LFE176: 8165 .section .text.UART_Start_Receive_IT,"ax",%progbits 8166 .align 1 8167 .global UART_Start_Receive_IT 8168 .syntax unified 8169 .thumb 8170 .thumb_func 8172 UART_Start_Receive_IT: 8173 .LVL755: 8174 .LFB183: 3264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->pRxBuffPtr = pData; 8175 .loc 1 3264 1 is_stmt 1 view -0 8176 .cfi_startproc 8177 @ args = 0, pretend = 0, frame = 0 8178 @ frame_needed = 0, uses_anonymous_args = 0 8179 @ link register save eliminated. 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8180 .loc 1 3265 3 view .LVU2716 3265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8181 .loc 1 3265 21 is_stmt 0 view .LVU2717 8182 0000 8162 str r1, [r0, #40] 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 8183 .loc 1 3266 3 is_stmt 1 view .LVU2718 3266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferCount = Size; 8184 .loc 1 3266 21 is_stmt 0 view .LVU2719 8185 0002 8285 strh r2, [r0, #44] @ movhi 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8186 .loc 1 3267 3 is_stmt 1 view .LVU2720 3267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8187 .loc 1 3267 22 is_stmt 0 view .LVU2721 8188 0004 C285 strh r2, [r0, #46] @ movhi 3269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8189 .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; 8190 .loc 1 3269 20 is_stmt 0 view .LVU2723 8191 0006 0023 movs r3, #0 8192 0008 4364 str r3, [r0, #68] 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8193 .loc 1 3270 3 is_stmt 1 view .LVU2724 3270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8194 .loc 1 3270 18 is_stmt 0 view .LVU2725 8195 000a 2223 movs r3, #34 8196 000c 80F84230 strb r3, [r0, #66] 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8197 .loc 1 3272 3 is_stmt 1 view .LVU2726 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8198 .loc 1 3272 18 is_stmt 0 view .LVU2727 ARM GAS /tmp/cc4vHZRy.s page 263 8199 0010 0369 ldr r3, [r0, #16] 3272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8200 .loc 1 3272 6 view .LVU2728 8201 0012 23B1 cbz r3, .L401 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8202 .loc 1 3275 5 is_stmt 1 view .LVU2729 8203 0014 0268 ldr r2, [r0] 8204 .LVL756: 3275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8205 .loc 1 3275 5 is_stmt 0 view .LVU2730 8206 0016 D368 ldr r3, [r2, #12] 8207 0018 43F48073 orr r3, r3, #256 8208 001c D360 str r3, [r2, #12] 8209 .LVL757: 8210 .L401: 3279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8211 .loc 1 3279 3 is_stmt 1 view .LVU2731 8212 001e 0268 ldr r2, [r0] 8213 0020 5369 ldr r3, [r2, #20] 8214 0022 43F00103 orr r3, r3, #1 8215 0026 5361 str r3, [r2, #20] 3282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8216 .loc 1 3282 3 view .LVU2732 8217 0028 0268 ldr r2, [r0] 8218 002a D368 ldr r3, [r2, #12] 8219 002c 43F02003 orr r3, r3, #32 8220 0030 D360 str r3, [r2, #12] 3284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8221 .loc 1 3284 3 view .LVU2733 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8222 .loc 1 3285 1 is_stmt 0 view .LVU2734 8223 0032 0020 movs r0, #0 8224 .LVL758: 3285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8225 .loc 1 3285 1 view .LVU2735 8226 0034 7047 bx lr 8227 .cfi_endproc 8228 .LFE183: 8230 .section .text.HAL_UART_Receive_IT,"ax",%progbits 8231 .align 1 8232 .global HAL_UART_Receive_IT 8233 .syntax unified 8234 .thumb 8235 .thumb_func 8237 HAL_UART_Receive_IT: 8238 .LVL759: 8239 .LFB144: 1348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8240 .loc 1 1348 1 is_stmt 1 view -0 8241 .cfi_startproc 8242 @ args = 0, pretend = 0, frame = 0 8243 @ 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 */ 8244 .loc 1 1348 1 is_stmt 0 view .LVU2737 8245 0000 08B5 push {r3, lr} 8246 .LCFI58: 8247 .cfi_def_cfa_offset 8 ARM GAS /tmp/cc4vHZRy.s page 264 8248 .cfi_offset 3, -8 8249 .cfi_offset 14, -4 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8250 .loc 1 1350 3 is_stmt 1 view .LVU2738 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8251 .loc 1 1350 12 is_stmt 0 view .LVU2739 8252 0002 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8253 0006 DBB2 uxtb r3, r3 1350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8254 .loc 1 1350 6 view .LVU2740 8255 0008 202B cmp r3, #32 8256 000a 08D1 bne .L404 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8257 .loc 1 1352 5 is_stmt 1 view .LVU2741 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8258 .loc 1 1352 8 is_stmt 0 view .LVU2742 8259 000c 49B1 cbz r1, .L405 1352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8260 .loc 1 1352 25 discriminator 1 view .LVU2743 8261 000e 0AB9 cbnz r2, .L408 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8262 .loc 1 1354 14 view .LVU2744 8263 0010 0120 movs r0, #1 8264 .LVL760: 8265 .L403: 1366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8266 .loc 1 1366 1 view .LVU2745 8267 0012 08BD pop {r3, pc} 8268 .LVL761: 8269 .L408: 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8270 .loc 1 1358 5 is_stmt 1 view .LVU2746 1358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8271 .loc 1 1358 26 is_stmt 0 view .LVU2747 8272 0014 0023 movs r3, #0 8273 0016 0363 str r3, [r0, #48] 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8274 .loc 1 1360 5 is_stmt 1 view .LVU2748 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8275 .loc 1 1360 13 is_stmt 0 view .LVU2749 8276 0018 FFF7FEFF bl UART_Start_Receive_IT 8277 .LVL762: 1360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8278 .loc 1 1360 13 view .LVU2750 8279 001c F9E7 b .L403 8280 .LVL763: 8281 .L404: 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8282 .loc 1 1364 12 view .LVU2751 8283 001e 0220 movs r0, #2 8284 .LVL764: 1364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8285 .loc 1 1364 12 view .LVU2752 8286 0020 F7E7 b .L403 8287 .LVL765: 8288 .L405: 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } ARM GAS /tmp/cc4vHZRy.s page 265 8289 .loc 1 1354 14 view .LVU2753 8290 0022 0120 movs r0, #1 8291 .LVL766: 1354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8292 .loc 1 1354 14 view .LVU2754 8293 0024 F5E7 b .L403 8294 .cfi_endproc 8295 .LFE144: 8297 .section .text.HAL_UARTEx_ReceiveToIdle_IT,"ax",%progbits 8298 .align 1 8299 .global HAL_UARTEx_ReceiveToIdle_IT 8300 .syntax unified 8301 .thumb 8302 .thumb_func 8304 HAL_UARTEx_ReceiveToIdle_IT: 8305 .LVL767: 8306 .LFB151: 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8307 .loc 1 1722 1 is_stmt 1 view -0 8308 .cfi_startproc 8309 @ args = 0, pretend = 0, frame = 8 8310 @ frame_needed = 0, uses_anonymous_args = 0 1723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8311 .loc 1 1723 3 view .LVU2756 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8312 .loc 1 1726 3 view .LVU2757 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8313 .loc 1 1726 12 is_stmt 0 view .LVU2758 8314 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8315 0004 DBB2 uxtb r3, r3 1726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8316 .loc 1 1726 6 view .LVU2759 8317 0006 202B cmp r3, #32 8318 0008 29D1 bne .L413 1722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8319 .loc 1 1722 1 view .LVU2760 8320 000a 10B5 push {r4, lr} 8321 .LCFI59: 8322 .cfi_def_cfa_offset 8 8323 .cfi_offset 4, -8 8324 .cfi_offset 14, -4 8325 000c 82B0 sub sp, sp, #8 8326 .LCFI60: 8327 .cfi_def_cfa_offset 16 8328 000e 0446 mov r4, r0 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8329 .loc 1 1728 5 is_stmt 1 view .LVU2761 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8330 .loc 1 1728 8 is_stmt 0 view .LVU2762 8331 0010 39B3 cbz r1, .L414 1728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8332 .loc 1 1728 25 discriminator 1 view .LVU2763 8333 0012 12B9 cbnz r2, .L421 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8334 .loc 1 1730 14 view .LVU2764 8335 0014 0120 movs r0, #1 8336 .LVL768: ARM GAS /tmp/cc4vHZRy.s page 266 8337 .L410: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8338 .loc 1 1763 1 view .LVU2765 8339 0016 02B0 add sp, sp, #8 8340 .LCFI61: 8341 .cfi_remember_state 8342 .cfi_def_cfa_offset 8 8343 @ sp needed 8344 0018 10BD pop {r4, pc} 8345 .LVL769: 8346 .L421: 8347 .LCFI62: 8348 .cfi_restore_state 1734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8349 .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; 8350 .loc 1 1734 26 is_stmt 0 view .LVU2767 8351 001a 0123 movs r3, #1 8352 001c 0363 str r3, [r0, #48] 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8353 .loc 1 1735 5 is_stmt 1 view .LVU2768 1735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8354 .loc 1 1735 24 is_stmt 0 view .LVU2769 8355 001e 0023 movs r3, #0 8356 0020 4363 str r3, [r0, #52] 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8357 .loc 1 1737 5 is_stmt 1 view .LVU2770 1737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8358 .loc 1 1737 15 is_stmt 0 view .LVU2771 8359 0022 FFF7FEFF bl UART_Start_Receive_IT 8360 .LVL770: 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8361 .loc 1 1740 5 is_stmt 1 view .LVU2772 1740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8362 .loc 1 1740 8 is_stmt 0 view .LVU2773 8363 0026 0028 cmp r0, #0 8364 0028 F5D1 bne .L410 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8365 .loc 1 1742 7 is_stmt 1 view .LVU2774 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8366 .loc 1 1742 16 is_stmt 0 view .LVU2775 8367 002a 236B ldr r3, [r4, #48] 1742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8368 .loc 1 1742 10 view .LVU2776 8369 002c 012B cmp r3, #1 8370 002e 01D0 beq .L422 1753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8371 .loc 1 1753 16 view .LVU2777 8372 0030 0120 movs r0, #1 8373 .LVL771: 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8374 .loc 1 1757 5 is_stmt 1 view .LVU2778 1757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8375 .loc 1 1757 12 is_stmt 0 view .LVU2779 8376 0032 F0E7 b .L410 8377 .LVL772: 8378 .L422: ARM GAS /tmp/cc4vHZRy.s page 267 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8379 .loc 1 1744 9 is_stmt 1 view .LVU2780 8380 .LBB592: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8381 .loc 1 1744 9 view .LVU2781 8382 0034 0023 movs r3, #0 8383 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); 8384 .loc 1 1744 9 view .LVU2782 8385 0038 2368 ldr r3, [r4] 8386 003a 1A68 ldr r2, [r3] 8387 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); 8388 .loc 1 1744 9 view .LVU2783 8389 003e 5B68 ldr r3, [r3, #4] 8390 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); 8391 .loc 1 1744 9 view .LVU2784 8392 0042 019B ldr r3, [sp, #4] 8393 .L412: 8394 .LBE592: 1744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8395 .loc 1 1744 9 discriminator 1 view .LVU2785 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8396 .loc 1 1745 9 discriminator 1 view .LVU2786 8397 .LBB593: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8398 .loc 1 1745 9 discriminator 1 view .LVU2787 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8399 .loc 1 1745 9 discriminator 1 view .LVU2788 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8400 .loc 1 1745 9 discriminator 1 view .LVU2789 8401 0044 2268 ldr r2, [r4] 8402 .LVL773: 8403 .LBB594: 8404 .LBI594: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8405 .loc 2 476 31 discriminator 1 view .LVU2790 8406 .LBB595: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8407 .loc 2 478 5 discriminator 1 view .LVU2791 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8408 .loc 2 480 4 discriminator 1 view .LVU2792 8409 0046 02F10C03 add r3, r2, #12 8410 .LVL774: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8411 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2793 8412 .syntax unified 8413 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8414 004a 53E8003F ldrex r3, [r3] 8415 @ 0 "" 2 8416 .LVL775: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8417 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2794 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8418 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2795 8419 .thumb ARM GAS /tmp/cc4vHZRy.s page 268 8420 .syntax unified 8421 .LBE595: 8422 .LBE594: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8423 .loc 1 1745 9 discriminator 1 view .LVU2796 8424 004e 43F01003 orr r3, r3, #16 8425 .LVL776: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8426 .loc 1 1745 9 is_stmt 1 discriminator 1 view .LVU2797 8427 .LBB596: 8428 .LBI596: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8429 .loc 2 527 31 discriminator 1 view .LVU2798 8430 .LBB597: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8431 .loc 2 529 4 discriminator 1 view .LVU2799 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8432 .loc 2 531 4 discriminator 1 view .LVU2800 8433 0052 0C32 adds r2, r2, #12 8434 .LVL777: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8435 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2801 8436 .syntax unified 8437 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8438 0054 42E80031 strex r1, r3, [r2] 8439 @ 0 "" 2 8440 .LVL778: 8441 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2802 8442 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2803 8443 .thumb 8444 .syntax unified 8445 .LBE597: 8446 .LBE596: 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8447 .loc 1 1745 9 discriminator 1 view .LVU2804 8448 0058 0029 cmp r1, #0 8449 005a F3D1 bne .L412 8450 005c DBE7 b .L410 8451 .LVL779: 8452 .L413: 8453 .LCFI63: 8454 .cfi_def_cfa_offset 0 8455 .cfi_restore 4 8456 .cfi_restore 14 1745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8457 .loc 1 1745 9 discriminator 1 view .LVU2805 8458 .LBE593: 1761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8459 .loc 1 1761 12 view .LVU2806 8460 005e 0220 movs r0, #2 8461 .LVL780: 1763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8462 .loc 1 1763 1 view .LVU2807 8463 0060 7047 bx lr 8464 .LVL781: 8465 .L414: 8466 .LCFI64: ARM GAS /tmp/cc4vHZRy.s page 269 8467 .cfi_def_cfa_offset 16 8468 .cfi_offset 4, -8 8469 .cfi_offset 14, -4 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8470 .loc 1 1730 14 view .LVU2808 8471 0062 0120 movs r0, #1 8472 .LVL782: 1730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8473 .loc 1 1730 14 view .LVU2809 8474 0064 D7E7 b .L410 8475 .cfi_endproc 8476 .LFE151: 8478 .section .text.UART_Start_Receive_DMA,"ax",%progbits 8479 .align 1 8480 .global UART_Start_Receive_DMA 8481 .syntax unified 8482 .thumb 8483 .thumb_func 8485 UART_Start_Receive_DMA: 8486 .LVL783: 8487 .LFB184: 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 8488 .loc 1 3299 1 is_stmt 1 view -0 8489 .cfi_startproc 8490 @ args = 0, pretend = 0, frame = 8 8491 @ frame_needed = 0, uses_anonymous_args = 0 3299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** uint32_t *tmp; 8492 .loc 1 3299 1 is_stmt 0 view .LVU2811 8493 0000 30B5 push {r4, r5, lr} 8494 .LCFI65: 8495 .cfi_def_cfa_offset 12 8496 .cfi_offset 4, -12 8497 .cfi_offset 5, -8 8498 .cfi_offset 14, -4 8499 0002 83B0 sub sp, sp, #12 8500 .LCFI66: 8501 .cfi_def_cfa_offset 24 8502 0004 0446 mov r4, r0 8503 0006 1346 mov r3, r2 3300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8504 .loc 1 3300 3 is_stmt 1 view .LVU2812 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8505 .loc 1 3302 3 view .LVU2813 3302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxXferSize = Size; 8506 .loc 1 3302 21 is_stmt 0 view .LVU2814 8507 0008 8162 str r1, [r0, #40] 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8508 .loc 1 3303 3 is_stmt 1 view .LVU2815 3303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8509 .loc 1 3303 21 is_stmt 0 view .LVU2816 8510 000a 8285 strh r2, [r0, #44] @ movhi 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8511 .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; 8512 .loc 1 3305 20 is_stmt 0 view .LVU2818 8513 000c 0022 movs r2, #0 8514 .LVL784: ARM GAS /tmp/cc4vHZRy.s page 270 3305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxState = HAL_UART_STATE_BUSY_RX; 8515 .loc 1 3305 20 view .LVU2819 8516 000e 4264 str r2, [r0, #68] 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8517 .loc 1 3306 3 is_stmt 1 view .LVU2820 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8518 .loc 1 3306 18 is_stmt 0 view .LVU2821 8519 0010 2220 movs r0, #34 8520 .LVL785: 3306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8521 .loc 1 3306 18 view .LVU2822 8522 0012 84F84200 strb r0, [r4, #66] 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8523 .loc 1 3309 3 is_stmt 1 view .LVU2823 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8524 .loc 1 3309 8 is_stmt 0 view .LVU2824 8525 0016 E06B ldr r0, [r4, #60] 3309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8526 .loc 1 3309 35 view .LVU2825 8527 0018 244D ldr r5, .L432 8528 001a C563 str r5, [r0, #60] 8529 .LVL786: 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8530 .loc 1 3312 3 is_stmt 1 view .LVU2826 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8531 .loc 1 3312 8 is_stmt 0 view .LVU2827 8532 001c E06B ldr r0, [r4, #60] 3312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8533 .loc 1 3312 39 view .LVU2828 8534 001e 244D ldr r5, .L432+4 8535 0020 0564 str r5, [r0, #64] 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8536 .loc 1 3315 3 is_stmt 1 view .LVU2829 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8537 .loc 1 3315 8 is_stmt 0 view .LVU2830 8538 0022 E06B ldr r0, [r4, #60] 3315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8539 .loc 1 3315 36 view .LVU2831 8540 0024 234D ldr r5, .L432+8 8541 0026 C564 str r5, [r0, #76] 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8542 .loc 1 3318 3 is_stmt 1 view .LVU2832 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8543 .loc 1 3318 8 is_stmt 0 view .LVU2833 8544 0028 E06B ldr r0, [r4, #60] 3318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8545 .loc 1 3318 36 view .LVU2834 8546 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 8547 .loc 1 3321 3 is_stmt 1 view .LVU2835 8548 .LVL787: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8549 .loc 1 3322 3 view .LVU2836 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8550 .loc 1 3322 55 is_stmt 0 view .LVU2837 8551 002c 2068 ldr r0, [r4] 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 271 8552 .loc 1 3322 7 view .LVU2838 8553 002e 0A46 mov r2, r1 8554 0030 011D adds r1, r0, #4 8555 .LVL788: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8556 .loc 1 3322 7 view .LVU2839 8557 0032 E06B ldr r0, [r4, #60] 8558 0034 FFF7FEFF bl HAL_DMA_Start_IT 8559 .LVL789: 3322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8560 .loc 1 3322 6 view .LVU2840 8561 0038 0028 cmp r0, #0 8562 003a 2FD1 bne .L431 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8563 .loc 1 3333 3 is_stmt 1 view .LVU2841 8564 .LBB598: 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8565 .loc 1 3333 3 view .LVU2842 8566 003c 0023 movs r3, #0 8567 003e 0193 str r3, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8568 .loc 1 3333 3 view .LVU2843 8569 0040 2368 ldr r3, [r4] 8570 0042 1A68 ldr r2, [r3] 8571 0044 0192 str r2, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8572 .loc 1 3333 3 view .LVU2844 8573 0046 5B68 ldr r3, [r3, #4] 8574 0048 0193 str r3, [sp, #4] 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8575 .loc 1 3333 3 view .LVU2845 8576 004a 019B ldr r3, [sp, #4] 8577 .LBE598: 3333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8578 .loc 1 3333 3 view .LVU2846 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8579 .loc 1 3335 3 view .LVU2847 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8580 .loc 1 3335 18 is_stmt 0 view .LVU2848 8581 004c 2369 ldr r3, [r4, #16] 3335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8582 .loc 1 3335 6 view .LVU2849 8583 004e 5BB1 cbz r3, .L428 8584 .L427: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8585 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2850 8586 .LBB599: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8587 .loc 1 3338 5 discriminator 1 view .LVU2851 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8588 .loc 1 3338 5 discriminator 1 view .LVU2852 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8589 .loc 1 3338 5 discriminator 1 view .LVU2853 8590 0050 2268 ldr r2, [r4] 8591 .LVL790: 8592 .LBB600: 8593 .LBI600: ARM GAS /tmp/cc4vHZRy.s page 272 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8594 .loc 2 476 31 discriminator 1 view .LVU2854 8595 .LBB601: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8596 .loc 2 478 5 discriminator 1 view .LVU2855 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8597 .loc 2 480 4 discriminator 1 view .LVU2856 8598 0052 02F10C03 add r3, r2, #12 8599 .LVL791: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8600 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2857 8601 .syntax unified 8602 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8603 0056 53E8003F ldrex r3, [r3] 8604 @ 0 "" 2 8605 .LVL792: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8606 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2858 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8607 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2859 8608 .thumb 8609 .syntax unified 8610 .LBE601: 8611 .LBE600: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8612 .loc 1 3338 5 discriminator 1 view .LVU2860 8613 005a 43F48073 orr r3, r3, #256 8614 .LVL793: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8615 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2861 8616 .LBB602: 8617 .LBI602: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8618 .loc 2 527 31 discriminator 1 view .LVU2862 8619 .LBB603: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8620 .loc 2 529 4 discriminator 1 view .LVU2863 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8621 .loc 2 531 4 discriminator 1 view .LVU2864 8622 005e 0C32 adds r2, r2, #12 8623 .LVL794: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8624 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2865 8625 .syntax unified 8626 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8627 0060 42E80031 strex r1, r3, [r2] 8628 @ 0 "" 2 8629 .LVL795: 8630 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2866 8631 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2867 8632 .thumb 8633 .syntax unified 8634 .LBE603: 8635 .LBE602: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8636 .loc 1 3338 5 discriminator 1 view .LVU2868 8637 0064 0029 cmp r1, #0 ARM GAS /tmp/cc4vHZRy.s page 273 8638 0066 F3D1 bne .L427 8639 .LVL796: 8640 .L428: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8641 .loc 1 3338 5 discriminator 1 view .LVU2869 8642 .LBE599: 3338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8643 .loc 1 3338 5 is_stmt 1 discriminator 1 view .LVU2870 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8644 .loc 1 3342 3 discriminator 1 view .LVU2871 8645 .LBB604: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8646 .loc 1 3342 3 discriminator 1 view .LVU2872 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8647 .loc 1 3342 3 discriminator 1 view .LVU2873 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8648 .loc 1 3342 3 discriminator 1 view .LVU2874 8649 0068 2268 ldr r2, [r4] 8650 .LVL797: 8651 .LBB605: 8652 .LBI605: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8653 .loc 2 476 31 discriminator 1 view .LVU2875 8654 .LBB606: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8655 .loc 2 478 5 discriminator 1 view .LVU2876 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8656 .loc 2 480 4 discriminator 1 view .LVU2877 8657 006a 02F11403 add r3, r2, #20 8658 .LVL798: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8659 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2878 8660 .syntax unified 8661 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8662 006e 53E8003F ldrex r3, [r3] 8663 @ 0 "" 2 8664 .LVL799: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8665 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2879 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8666 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2880 8667 .thumb 8668 .syntax unified 8669 .LBE606: 8670 .LBE605: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8671 .loc 1 3342 3 discriminator 1 view .LVU2881 8672 0072 43F00103 orr r3, r3, #1 8673 .LVL800: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8674 .loc 1 3342 3 is_stmt 1 discriminator 1 view .LVU2882 8675 .LBB607: 8676 .LBI607: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8677 .loc 2 527 31 discriminator 1 view .LVU2883 8678 .LBB608: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc4vHZRy.s page 274 8679 .loc 2 529 4 discriminator 1 view .LVU2884 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8680 .loc 2 531 4 discriminator 1 view .LVU2885 8681 0076 1432 adds r2, r2, #20 8682 .LVL801: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8683 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2886 8684 .syntax unified 8685 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8686 0078 42E80031 strex r1, r3, [r2] 8687 @ 0 "" 2 8688 .LVL802: 8689 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2887 8690 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2888 8691 .thumb 8692 .syntax unified 8693 .LBE608: 8694 .LBE607: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8695 .loc 1 3342 3 discriminator 1 view .LVU2889 8696 007c 0029 cmp r1, #0 8697 007e F3D1 bne .L428 8698 .LVL803: 8699 .L429: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8700 .loc 1 3342 3 discriminator 1 view .LVU2890 8701 .LBE604: 3342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8702 .loc 1 3342 3 is_stmt 1 discriminator 1 view .LVU2891 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8703 .loc 1 3346 3 discriminator 1 view .LVU2892 8704 .LBB609: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8705 .loc 1 3346 3 discriminator 1 view .LVU2893 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8706 .loc 1 3346 3 discriminator 1 view .LVU2894 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8707 .loc 1 3346 3 discriminator 1 view .LVU2895 8708 0080 2268 ldr r2, [r4] 8709 .LVL804: 8710 .LBB610: 8711 .LBI610: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8712 .loc 2 476 31 discriminator 1 view .LVU2896 8713 .LBB611: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8714 .loc 2 478 5 discriminator 1 view .LVU2897 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8715 .loc 2 480 4 discriminator 1 view .LVU2898 8716 0082 02F11403 add r3, r2, #20 8717 .LVL805: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8718 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2899 8719 .syntax unified 8720 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8721 0086 53E8003F ldrex r3, [r3] 8722 @ 0 "" 2 ARM GAS /tmp/cc4vHZRy.s page 275 8723 .LVL806: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8724 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2900 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8725 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2901 8726 .thumb 8727 .syntax unified 8728 .LBE611: 8729 .LBE610: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8730 .loc 1 3346 3 discriminator 1 view .LVU2902 8731 008a 43F04003 orr r3, r3, #64 8732 .LVL807: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8733 .loc 1 3346 3 is_stmt 1 discriminator 1 view .LVU2903 8734 .LBB612: 8735 .LBI612: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8736 .loc 2 527 31 discriminator 1 view .LVU2904 8737 .LBB613: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** 8738 .loc 2 529 4 discriminator 1 view .LVU2905 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8739 .loc 2 531 4 discriminator 1 view .LVU2906 8740 008e 1432 adds r2, r2, #20 8741 .LVL808: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8742 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2907 8743 .syntax unified 8744 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8745 0090 42E80031 strex r1, r3, [r2] 8746 @ 0 "" 2 8747 .LVL809: 8748 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2908 8749 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2909 8750 .thumb 8751 .syntax unified 8752 .LBE613: 8753 .LBE612: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8754 .loc 1 3346 3 discriminator 1 view .LVU2910 8755 0094 0029 cmp r1, #0 8756 0096 F3D1 bne .L429 8757 .LVL810: 8758 .L425: 3346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8759 .loc 1 3346 3 discriminator 1 view .LVU2911 8760 .LBE609: 3349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8761 .loc 1 3349 1 view .LVU2912 8762 0098 03B0 add sp, sp, #12 8763 .LCFI67: 8764 .cfi_remember_state 8765 .cfi_def_cfa_offset 12 8766 @ sp needed 8767 009a 30BD pop {r4, r5, pc} 8768 .LVL811: ARM GAS /tmp/cc4vHZRy.s page 276 8769 .L431: 8770 .LCFI68: 8771 .cfi_restore_state 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8772 .loc 1 3325 5 is_stmt 1 view .LVU2913 3325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8773 .loc 1 3325 22 is_stmt 0 view .LVU2914 8774 009c 1023 movs r3, #16 8775 009e 6364 str r3, [r4, #68] 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8776 .loc 1 3328 5 is_stmt 1 view .LVU2915 3328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8777 .loc 1 3328 20 is_stmt 0 view .LVU2916 8778 00a0 2023 movs r3, #32 8779 00a2 84F84230 strb r3, [r4, #66] 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8780 .loc 1 3330 5 is_stmt 1 view .LVU2917 3330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8781 .loc 1 3330 12 is_stmt 0 view .LVU2918 8782 00a6 0120 movs r0, #1 8783 00a8 F6E7 b .L425 8784 .L433: 8785 00aa 00BF .align 2 8786 .L432: 8787 00ac 00000000 .word UART_DMAReceiveCplt 8788 00b0 00000000 .word UART_DMARxHalfCplt 8789 00b4 00000000 .word UART_DMAError 8790 .cfi_endproc 8791 .LFE184: 8793 .section .text.HAL_UART_Receive_DMA,"ax",%progbits 8794 .align 1 8795 .global HAL_UART_Receive_DMA 8796 .syntax unified 8797 .thumb 8798 .thumb_func 8800 HAL_UART_Receive_DMA: 8801 .LVL812: 8802 .LFB146: 1450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** /* Check that a Rx process is not already ongoing */ 8803 .loc 1 1450 1 is_stmt 1 view -0 8804 .cfi_startproc 8805 @ args = 0, pretend = 0, frame = 0 8806 @ 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 */ 8807 .loc 1 1450 1 is_stmt 0 view .LVU2920 8808 0000 08B5 push {r3, lr} 8809 .LCFI69: 8810 .cfi_def_cfa_offset 8 8811 .cfi_offset 3, -8 8812 .cfi_offset 14, -4 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8813 .loc 1 1452 3 is_stmt 1 view .LVU2921 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8814 .loc 1 1452 12 is_stmt 0 view .LVU2922 8815 0002 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8816 0006 DBB2 uxtb r3, r3 1452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { ARM GAS /tmp/cc4vHZRy.s page 277 8817 .loc 1 1452 6 view .LVU2923 8818 0008 202B cmp r3, #32 8819 000a 08D1 bne .L436 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8820 .loc 1 1454 5 is_stmt 1 view .LVU2924 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8821 .loc 1 1454 8 is_stmt 0 view .LVU2925 8822 000c 49B1 cbz r1, .L437 1454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8823 .loc 1 1454 25 discriminator 1 view .LVU2926 8824 000e 0AB9 cbnz r2, .L440 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8825 .loc 1 1456 14 view .LVU2927 8826 0010 0120 movs r0, #1 8827 .LVL813: 8828 .L435: 1468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8829 .loc 1 1468 1 view .LVU2928 8830 0012 08BD pop {r3, pc} 8831 .LVL814: 8832 .L440: 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8833 .loc 1 1460 5 is_stmt 1 view .LVU2929 1460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8834 .loc 1 1460 26 is_stmt 0 view .LVU2930 8835 0014 0023 movs r3, #0 8836 0016 0363 str r3, [r0, #48] 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8837 .loc 1 1462 5 is_stmt 1 view .LVU2931 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8838 .loc 1 1462 13 is_stmt 0 view .LVU2932 8839 0018 FFF7FEFF bl UART_Start_Receive_DMA 8840 .LVL815: 1462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8841 .loc 1 1462 13 view .LVU2933 8842 001c F9E7 b .L435 8843 .LVL816: 8844 .L436: 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8845 .loc 1 1466 12 view .LVU2934 8846 001e 0220 movs r0, #2 8847 .LVL817: 1466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8848 .loc 1 1466 12 view .LVU2935 8849 0020 F7E7 b .L435 8850 .LVL818: 8851 .L437: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8852 .loc 1 1456 14 view .LVU2936 8853 0022 0120 movs r0, #1 8854 .LVL819: 1456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8855 .loc 1 1456 14 view .LVU2937 8856 0024 F5E7 b .L435 8857 .cfi_endproc 8858 .LFE146: 8860 .section .text.HAL_UARTEx_ReceiveToIdle_DMA,"ax",%progbits ARM GAS /tmp/cc4vHZRy.s page 278 8861 .align 1 8862 .global HAL_UARTEx_ReceiveToIdle_DMA 8863 .syntax unified 8864 .thumb 8865 .thumb_func 8867 HAL_UARTEx_ReceiveToIdle_DMA: 8868 .LVL820: 8869 .LFB152: 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8870 .loc 1 1782 1 is_stmt 1 view -0 8871 .cfi_startproc 8872 @ args = 0, pretend = 0, frame = 8 8873 @ frame_needed = 0, uses_anonymous_args = 0 1783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8874 .loc 1 1783 3 view .LVU2939 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8875 .loc 1 1786 3 view .LVU2940 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8876 .loc 1 1786 12 is_stmt 0 view .LVU2941 8877 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 8878 0004 DBB2 uxtb r3, r3 1786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8879 .loc 1 1786 6 view .LVU2942 8880 0006 202B cmp r3, #32 8881 0008 27D1 bne .L445 1782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** HAL_StatusTypeDef status; 8882 .loc 1 1782 1 view .LVU2943 8883 000a 10B5 push {r4, lr} 8884 .LCFI70: 8885 .cfi_def_cfa_offset 8 8886 .cfi_offset 4, -8 8887 .cfi_offset 14, -4 8888 000c 82B0 sub sp, sp, #8 8889 .LCFI71: 8890 .cfi_def_cfa_offset 16 8891 000e 0446 mov r4, r0 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8892 .loc 1 1788 5 is_stmt 1 view .LVU2944 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8893 .loc 1 1788 8 is_stmt 0 view .LVU2945 8894 0010 29B3 cbz r1, .L446 1788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8895 .loc 1 1788 25 discriminator 1 view .LVU2946 8896 0012 12B9 cbnz r2, .L453 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8897 .loc 1 1790 14 view .LVU2947 8898 0014 0120 movs r0, #1 8899 .LVL821: 8900 .L442: 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8901 .loc 1 1820 1 view .LVU2948 8902 0016 02B0 add sp, sp, #8 8903 .LCFI72: 8904 .cfi_remember_state 8905 .cfi_def_cfa_offset 8 8906 @ sp needed 8907 0018 10BD pop {r4, pc} ARM GAS /tmp/cc4vHZRy.s page 279 8908 .LVL822: 8909 .L453: 8910 .LCFI73: 8911 .cfi_restore_state 1794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** huart->RxEventType = HAL_UART_RXEVENT_TC; 8912 .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; 8913 .loc 1 1794 26 is_stmt 0 view .LVU2950 8914 001a 0123 movs r3, #1 8915 001c 0363 str r3, [r0, #48] 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8916 .loc 1 1795 5 is_stmt 1 view .LVU2951 1795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8917 .loc 1 1795 24 is_stmt 0 view .LVU2952 8918 001e 0023 movs r3, #0 8919 0020 4363 str r3, [r0, #52] 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8920 .loc 1 1797 5 is_stmt 1 view .LVU2953 1797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 8921 .loc 1 1797 15 is_stmt 0 view .LVU2954 8922 0022 FFF7FEFF bl UART_Start_Receive_DMA 8923 .LVL823: 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8924 .loc 1 1800 5 is_stmt 1 view .LVU2955 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8925 .loc 1 1800 14 is_stmt 0 view .LVU2956 8926 0026 236B ldr r3, [r4, #48] 1800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** { 8927 .loc 1 1800 8 view .LVU2957 8928 0028 012B cmp r3, #1 8929 002a 01D0 beq .L454 1811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8930 .loc 1 1811 14 view .LVU2958 8931 002c 0120 movs r0, #1 8932 .LVL824: 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8933 .loc 1 1814 5 is_stmt 1 view .LVU2959 1814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8934 .loc 1 1814 12 is_stmt 0 view .LVU2960 8935 002e F2E7 b .L442 8936 .LVL825: 8937 .L454: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8938 .loc 1 1802 7 is_stmt 1 view .LVU2961 8939 .LBB614: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8940 .loc 1 1802 7 view .LVU2962 8941 0030 0023 movs r3, #0 8942 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); 8943 .loc 1 1802 7 view .LVU2963 8944 0034 2368 ldr r3, [r4] 8945 0036 1A68 ldr r2, [r3] 8946 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); 8947 .loc 1 1802 7 view .LVU2964 8948 003a 5B68 ldr r3, [r3, #4] ARM GAS /tmp/cc4vHZRy.s page 280 8949 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); 8950 .loc 1 1802 7 view .LVU2965 8951 003e 019B ldr r3, [sp, #4] 8952 .L444: 8953 .LBE614: 1802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_IDLEIE); 8954 .loc 1 1802 7 discriminator 1 view .LVU2966 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8955 .loc 1 1803 7 discriminator 1 view .LVU2967 8956 .LBB615: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8957 .loc 1 1803 7 discriminator 1 view .LVU2968 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8958 .loc 1 1803 7 discriminator 1 view .LVU2969 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8959 .loc 1 1803 7 discriminator 1 view .LVU2970 8960 0040 2268 ldr r2, [r4] 8961 .LVL826: 8962 .LBB616: 8963 .LBI616: 476:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8964 .loc 2 476 31 discriminator 1 view .LVU2971 8965 .LBB617: 478:Drivers/CMSIS/Include/cmsis_gcc.h **** 8966 .loc 2 478 5 discriminator 1 view .LVU2972 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8967 .loc 2 480 4 discriminator 1 view .LVU2973 8968 0042 02F10C03 add r3, r2, #12 8969 .LVL827: 480:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8970 .loc 2 480 4 is_stmt 0 discriminator 1 view .LVU2974 8971 .syntax unified 8972 @ 480 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8973 0046 53E8003F ldrex r3, [r3] 8974 @ 0 "" 2 8975 .LVL828: 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8976 .loc 2 481 4 is_stmt 1 discriminator 1 view .LVU2975 481:Drivers/CMSIS/Include/cmsis_gcc.h **** } 8977 .loc 2 481 4 is_stmt 0 discriminator 1 view .LVU2976 8978 .thumb 8979 .syntax unified 8980 .LBE617: 8981 .LBE616: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8982 .loc 1 1803 7 discriminator 1 view .LVU2977 8983 004a 43F01003 orr r3, r3, #16 8984 .LVL829: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 8985 .loc 1 1803 7 is_stmt 1 discriminator 1 view .LVU2978 8986 .LBB618: 8987 .LBI618: 527:Drivers/CMSIS/Include/cmsis_gcc.h **** { 8988 .loc 2 527 31 discriminator 1 view .LVU2979 8989 .LBB619: 529:Drivers/CMSIS/Include/cmsis_gcc.h **** ARM GAS /tmp/cc4vHZRy.s page 281 8990 .loc 2 529 4 discriminator 1 view .LVU2980 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8991 .loc 2 531 4 discriminator 1 view .LVU2981 8992 004e 0C32 adds r2, r2, #12 8993 .LVL830: 531:Drivers/CMSIS/Include/cmsis_gcc.h **** return(result); 8994 .loc 2 531 4 is_stmt 0 discriminator 1 view .LVU2982 8995 .syntax unified 8996 @ 531 "Drivers/CMSIS/Include/cmsis_gcc.h" 1 8997 0050 42E80031 strex r1, r3, [r2] 8998 @ 0 "" 2 8999 .LVL831: 9000 .loc 2 532 4 is_stmt 1 discriminator 1 view .LVU2983 9001 .loc 2 532 4 is_stmt 0 discriminator 1 view .LVU2984 9002 .thumb 9003 .syntax unified 9004 .LBE619: 9005 .LBE618: 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9006 .loc 1 1803 7 discriminator 1 view .LVU2985 9007 0054 0029 cmp r1, #0 9008 0056 F3D1 bne .L444 9009 0058 DDE7 b .L442 9010 .LVL832: 9011 .L445: 9012 .LCFI74: 9013 .cfi_def_cfa_offset 0 9014 .cfi_restore 4 9015 .cfi_restore 14 1803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9016 .loc 1 1803 7 discriminator 1 view .LVU2986 9017 .LBE615: 1818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9018 .loc 1 1818 12 view .LVU2987 9019 005a 0220 movs r0, #2 9020 .LVL833: 1820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** 9021 .loc 1 1820 1 view .LVU2988 9022 005c 7047 bx lr 9023 .LVL834: 9024 .L446: 9025 .LCFI75: 9026 .cfi_def_cfa_offset 16 9027 .cfi_offset 4, -8 9028 .cfi_offset 14, -4 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9029 .loc 1 1790 14 view .LVU2989 9030 005e 0120 movs r0, #1 9031 .LVL835: 1790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c **** } 9032 .loc 1 1790 14 view .LVU2990 9033 0060 D9E7 b .L442 9034 .cfi_endproc 9035 .LFE152: 9037 .text 9038 .Letext0: 9039 .file 3 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/machine/_defaul ARM GAS /tmp/cc4vHZRy.s page 282 9040 .file 4 "/home/jfen/toolchain/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/_stdint.h" 9041 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h" 9042 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 9043 .file 7 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 9044 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 9045 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h" 9046 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h" 9047 .file 11 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" ARM GAS /tmp/cc4vHZRy.s page 283 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_uart.c /tmp/cc4vHZRy.s:20 .text.UART_EndTxTransfer:0000000000000000 $t /tmp/cc4vHZRy.s:25 .text.UART_EndTxTransfer:0000000000000000 UART_EndTxTransfer /tmp/cc4vHZRy.s:104 .text.UART_EndRxTransfer:0000000000000000 $t /tmp/cc4vHZRy.s:109 .text.UART_EndRxTransfer:0000000000000000 UART_EndRxTransfer /tmp/cc4vHZRy.s:313 .text.UART_Transmit_IT:0000000000000000 $t /tmp/cc4vHZRy.s:318 .text.UART_Transmit_IT:0000000000000000 UART_Transmit_IT /tmp/cc4vHZRy.s:421 .text.UART_SetConfig:0000000000000000 $t /tmp/cc4vHZRy.s:426 .text.UART_SetConfig:0000000000000000 UART_SetConfig /tmp/cc4vHZRy.s:601 .text.UART_SetConfig:0000000000000108 $d /tmp/cc4vHZRy.s:607 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/cc4vHZRy.s:612 .text.UART_WaitOnFlagUntilTimeout:0000000000000000 UART_WaitOnFlagUntilTimeout /tmp/cc4vHZRy.s:744 .text.HAL_UART_MspInit:0000000000000000 $t /tmp/cc4vHZRy.s:750 .text.HAL_UART_MspInit:0000000000000000 HAL_UART_MspInit /tmp/cc4vHZRy.s:765 .text.HAL_UART_Init:0000000000000000 $t /tmp/cc4vHZRy.s:771 .text.HAL_UART_Init:0000000000000000 HAL_UART_Init /tmp/cc4vHZRy.s:869 .text.HAL_HalfDuplex_Init:0000000000000000 $t /tmp/cc4vHZRy.s:875 .text.HAL_HalfDuplex_Init:0000000000000000 HAL_HalfDuplex_Init /tmp/cc4vHZRy.s:978 .text.HAL_LIN_Init:0000000000000000 $t /tmp/cc4vHZRy.s:984 .text.HAL_LIN_Init:0000000000000000 HAL_LIN_Init /tmp/cc4vHZRy.s:1106 .text.HAL_MultiProcessor_Init:0000000000000000 $t /tmp/cc4vHZRy.s:1112 .text.HAL_MultiProcessor_Init:0000000000000000 HAL_MultiProcessor_Init /tmp/cc4vHZRy.s:1241 .text.HAL_UART_MspDeInit:0000000000000000 $t /tmp/cc4vHZRy.s:1247 .text.HAL_UART_MspDeInit:0000000000000000 HAL_UART_MspDeInit /tmp/cc4vHZRy.s:1262 .text.HAL_UART_DeInit:0000000000000000 $t /tmp/cc4vHZRy.s:1268 .text.HAL_UART_DeInit:0000000000000000 HAL_UART_DeInit /tmp/cc4vHZRy.s:1336 .text.HAL_UART_Transmit:0000000000000000 $t /tmp/cc4vHZRy.s:1342 .text.HAL_UART_Transmit:0000000000000000 HAL_UART_Transmit /tmp/cc4vHZRy.s:1562 .text.HAL_UART_Receive:0000000000000000 $t /tmp/cc4vHZRy.s:1568 .text.HAL_UART_Receive:0000000000000000 HAL_UART_Receive /tmp/cc4vHZRy.s:1798 .text.HAL_UART_Transmit_IT:0000000000000000 $t /tmp/cc4vHZRy.s:1804 .text.HAL_UART_Transmit_IT:0000000000000000 HAL_UART_Transmit_IT /tmp/cc4vHZRy.s:1882 .text.HAL_UART_Transmit_DMA:0000000000000000 $t /tmp/cc4vHZRy.s:1888 .text.HAL_UART_Transmit_DMA:0000000000000000 HAL_UART_Transmit_DMA /tmp/cc4vHZRy.s:2075 .text.HAL_UART_Transmit_DMA:0000000000000084 $d /tmp/cc4vHZRy.s:4230 .text.UART_DMATransmitCplt:0000000000000000 UART_DMATransmitCplt /tmp/cc4vHZRy.s:4456 .text.UART_DMATxHalfCplt:0000000000000000 UART_DMATxHalfCplt /tmp/cc4vHZRy.s:4551 .text.UART_DMAError:0000000000000000 UART_DMAError /tmp/cc4vHZRy.s:2082 .text.HAL_UART_DMAPause:0000000000000000 $t /tmp/cc4vHZRy.s:2088 .text.HAL_UART_DMAPause:0000000000000000 HAL_UART_DMAPause /tmp/cc4vHZRy.s:2384 .text.HAL_UART_DMAResume:0000000000000000 $t /tmp/cc4vHZRy.s:2390 .text.HAL_UART_DMAResume:0000000000000000 HAL_UART_DMAResume /tmp/cc4vHZRy.s:2696 .text.HAL_UART_DMAStop:0000000000000000 $t /tmp/cc4vHZRy.s:2702 .text.HAL_UART_DMAStop:0000000000000000 HAL_UART_DMAStop /tmp/cc4vHZRy.s:2912 .text.HAL_UARTEx_ReceiveToIdle:0000000000000000 $t /tmp/cc4vHZRy.s:2918 .text.HAL_UARTEx_ReceiveToIdle:0000000000000000 HAL_UARTEx_ReceiveToIdle /tmp/cc4vHZRy.s:3225 .text.HAL_UARTEx_GetRxEventType:0000000000000000 $t /tmp/cc4vHZRy.s:3231 .text.HAL_UARTEx_GetRxEventType:0000000000000000 HAL_UARTEx_GetRxEventType /tmp/cc4vHZRy.s:3249 .text.HAL_UART_Abort:0000000000000000 $t /tmp/cc4vHZRy.s:3255 .text.HAL_UART_Abort:0000000000000000 HAL_UART_Abort /tmp/cc4vHZRy.s:3682 .text.HAL_UART_AbortTransmit:0000000000000000 $t /tmp/cc4vHZRy.s:3688 .text.HAL_UART_AbortTransmit:0000000000000000 HAL_UART_AbortTransmit /tmp/cc4vHZRy.s:3879 .text.HAL_UART_AbortReceive:0000000000000000 $t /tmp/cc4vHZRy.s:3885 .text.HAL_UART_AbortReceive:0000000000000000 HAL_UART_AbortReceive /tmp/cc4vHZRy.s:4204 .text.HAL_UART_TxCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4210 .text.HAL_UART_TxCpltCallback:0000000000000000 HAL_UART_TxCpltCallback ARM GAS /tmp/cc4vHZRy.s page 284 /tmp/cc4vHZRy.s:4225 .text.UART_DMATransmitCplt:0000000000000000 $t /tmp/cc4vHZRy.s:4392 .text.UART_EndTransmit_IT:0000000000000000 $t /tmp/cc4vHZRy.s:4397 .text.UART_EndTransmit_IT:0000000000000000 UART_EndTransmit_IT /tmp/cc4vHZRy.s:4430 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4436 .text.HAL_UART_TxHalfCpltCallback:0000000000000000 HAL_UART_TxHalfCpltCallback /tmp/cc4vHZRy.s:4451 .text.UART_DMATxHalfCplt:0000000000000000 $t /tmp/cc4vHZRy.s:4483 .text.HAL_UART_RxCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4489 .text.HAL_UART_RxCpltCallback:0000000000000000 HAL_UART_RxCpltCallback /tmp/cc4vHZRy.s:4504 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4510 .text.HAL_UART_RxHalfCpltCallback:0000000000000000 HAL_UART_RxHalfCpltCallback /tmp/cc4vHZRy.s:4525 .text.HAL_UART_ErrorCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4531 .text.HAL_UART_ErrorCallback:0000000000000000 HAL_UART_ErrorCallback /tmp/cc4vHZRy.s:4546 .text.UART_DMAError:0000000000000000 $t /tmp/cc4vHZRy.s:4648 .text.UART_DMAAbortOnError:0000000000000000 $t /tmp/cc4vHZRy.s:4653 .text.UART_DMAAbortOnError:0000000000000000 UART_DMAAbortOnError /tmp/cc4vHZRy.s:4683 .text.HAL_UART_AbortCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:4689 .text.HAL_UART_AbortCpltCallback:0000000000000000 HAL_UART_AbortCpltCallback /tmp/cc4vHZRy.s:4704 .text.HAL_UART_Abort_IT:0000000000000000 $t /tmp/cc4vHZRy.s:4710 .text.HAL_UART_Abort_IT:0000000000000000 HAL_UART_Abort_IT /tmp/cc4vHZRy.s:5183 .text.HAL_UART_Abort_IT:000000000000011c $d /tmp/cc4vHZRy.s:5263 .text.UART_DMATxAbortCallback:0000000000000000 UART_DMATxAbortCallback /tmp/cc4vHZRy.s:5194 .text.UART_DMARxAbortCallback:0000000000000000 UART_DMARxAbortCallback /tmp/cc4vHZRy.s:5189 .text.UART_DMARxAbortCallback:0000000000000000 $t /tmp/cc4vHZRy.s:5258 .text.UART_DMATxAbortCallback:0000000000000000 $t /tmp/cc4vHZRy.s:5327 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:5333 .text.HAL_UART_AbortTransmitCpltCallback:0000000000000000 HAL_UART_AbortTransmitCpltCallback /tmp/cc4vHZRy.s:5348 .text.HAL_UART_AbortTransmit_IT:0000000000000000 $t /tmp/cc4vHZRy.s:5354 .text.HAL_UART_AbortTransmit_IT:0000000000000000 HAL_UART_AbortTransmit_IT /tmp/cc4vHZRy.s:5562 .text.HAL_UART_AbortTransmit_IT:000000000000007c $d /tmp/cc4vHZRy.s:5572 .text.UART_DMATxOnlyAbortCallback:0000000000000000 UART_DMATxOnlyAbortCallback /tmp/cc4vHZRy.s:5567 .text.UART_DMATxOnlyAbortCallback:0000000000000000 $t /tmp/cc4vHZRy.s:5606 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 $t /tmp/cc4vHZRy.s:5612 .text.HAL_UART_AbortReceiveCpltCallback:0000000000000000 HAL_UART_AbortReceiveCpltCallback /tmp/cc4vHZRy.s:5627 .text.HAL_UART_AbortReceive_IT:0000000000000000 $t /tmp/cc4vHZRy.s:5633 .text.HAL_UART_AbortReceive_IT:0000000000000000 HAL_UART_AbortReceive_IT /tmp/cc4vHZRy.s:5972 .text.HAL_UART_AbortReceive_IT:00000000000000b8 $d /tmp/cc4vHZRy.s:5982 .text.UART_DMARxOnlyAbortCallback:0000000000000000 UART_DMARxOnlyAbortCallback /tmp/cc4vHZRy.s:5977 .text.UART_DMARxOnlyAbortCallback:0000000000000000 $t /tmp/cc4vHZRy.s:6019 .text.HAL_UARTEx_RxEventCallback:0000000000000000 $t /tmp/cc4vHZRy.s:6025 .text.HAL_UARTEx_RxEventCallback:0000000000000000 HAL_UARTEx_RxEventCallback /tmp/cc4vHZRy.s:6041 .text.UART_Receive_IT:0000000000000000 $t /tmp/cc4vHZRy.s:6046 .text.UART_Receive_IT:0000000000000000 UART_Receive_IT /tmp/cc4vHZRy.s:6323 .text.HAL_UART_IRQHandler:0000000000000000 $t /tmp/cc4vHZRy.s:6329 .text.HAL_UART_IRQHandler:0000000000000000 HAL_UART_IRQHandler /tmp/cc4vHZRy.s:7248 .text.HAL_UART_IRQHandler:00000000000002a0 $d /tmp/cc4vHZRy.s:7253 .text.UART_DMARxHalfCplt:0000000000000000 $t /tmp/cc4vHZRy.s:7258 .text.UART_DMARxHalfCplt:0000000000000000 UART_DMARxHalfCplt /tmp/cc4vHZRy.s:7306 .text.UART_DMAReceiveCplt:0000000000000000 $t /tmp/cc4vHZRy.s:7311 .text.UART_DMAReceiveCplt:0000000000000000 UART_DMAReceiveCplt /tmp/cc4vHZRy.s:7618 .text.HAL_LIN_SendBreak:0000000000000000 $t /tmp/cc4vHZRy.s:7624 .text.HAL_LIN_SendBreak:0000000000000000 HAL_LIN_SendBreak /tmp/cc4vHZRy.s:7731 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 $t /tmp/cc4vHZRy.s:7737 .text.HAL_MultiProcessor_EnterMuteMode:0000000000000000 HAL_MultiProcessor_EnterMuteMode /tmp/cc4vHZRy.s:7847 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 $t /tmp/cc4vHZRy.s:7853 .text.HAL_MultiProcessor_ExitMuteMode:0000000000000000 HAL_MultiProcessor_ExitMuteMode /tmp/cc4vHZRy.s:7963 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 $t /tmp/cc4vHZRy.s:7969 .text.HAL_HalfDuplex_EnableTransmitter:0000000000000000 HAL_HalfDuplex_EnableTransmitter ARM GAS /tmp/cc4vHZRy.s page 285 /tmp/cc4vHZRy.s:8036 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 $t /tmp/cc4vHZRy.s:8042 .text.HAL_HalfDuplex_EnableReceiver:0000000000000000 HAL_HalfDuplex_EnableReceiver /tmp/cc4vHZRy.s:8109 .text.HAL_UART_GetState:0000000000000000 $t /tmp/cc4vHZRy.s:8115 .text.HAL_UART_GetState:0000000000000000 HAL_UART_GetState /tmp/cc4vHZRy.s:8142 .text.HAL_UART_GetError:0000000000000000 $t /tmp/cc4vHZRy.s:8148 .text.HAL_UART_GetError:0000000000000000 HAL_UART_GetError /tmp/cc4vHZRy.s:8166 .text.UART_Start_Receive_IT:0000000000000000 $t /tmp/cc4vHZRy.s:8172 .text.UART_Start_Receive_IT:0000000000000000 UART_Start_Receive_IT /tmp/cc4vHZRy.s:8231 .text.HAL_UART_Receive_IT:0000000000000000 $t /tmp/cc4vHZRy.s:8237 .text.HAL_UART_Receive_IT:0000000000000000 HAL_UART_Receive_IT /tmp/cc4vHZRy.s:8298 .text.HAL_UARTEx_ReceiveToIdle_IT:0000000000000000 $t /tmp/cc4vHZRy.s:8304 .text.HAL_UARTEx_ReceiveToIdle_IT:0000000000000000 HAL_UARTEx_ReceiveToIdle_IT /tmp/cc4vHZRy.s:8479 .text.UART_Start_Receive_DMA:0000000000000000 $t /tmp/cc4vHZRy.s:8485 .text.UART_Start_Receive_DMA:0000000000000000 UART_Start_Receive_DMA /tmp/cc4vHZRy.s:8787 .text.UART_Start_Receive_DMA:00000000000000ac $d /tmp/cc4vHZRy.s:8794 .text.HAL_UART_Receive_DMA:0000000000000000 $t /tmp/cc4vHZRy.s:8800 .text.HAL_UART_Receive_DMA:0000000000000000 HAL_UART_Receive_DMA /tmp/cc4vHZRy.s:8861 .text.HAL_UARTEx_ReceiveToIdle_DMA:0000000000000000 $t /tmp/cc4vHZRy.s:8867 .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